阿里云分析型数据库AnalyticDB:使用Logstash插件进行高效数据写入
前言
AnalyticDB(簡稱ADB,ADS,早期項目名Garuda)是阿里巴巴自主研發的海量數據實時高并發在線實時分析型數據庫(Real-Time OLAP)。自2012年第一次在集團發布上線以來(初期內部命名Garuda),至今已累計迭代發布一百多個版本,支撐起集團內的電商、廣告、菜鳥、文娛、飛豬等眾多在線數據分析業務。AnalyticDB 于2014年在阿里云開始正式對外輸出,包括公共云和專有云,支撐行業既包括傳統的大中型企業和政府機構,也包括眾多的互聯網公司。每年集團雙十一、電商、廣告投放、游戲和物流等公有云和專有云大量用戶和大量業務的實時分析業務高峰都驅動著AnalyticDB不斷的架構演進,技術創新。
背景
眾所周知,Logstash是一個開源的服務器端數據處理管道,起初是為了處理日志類數據寫入到ES中,但隨著開源社區的不斷發展,如今可以同時從多個數據源獲取數據,并對其進行轉換,然后將其發送到你想要的“存儲”。就日志數據為例,我們如果想要把log數據導入ADB中進行進一步分析,因為ADB支持原生JDBC方式訪問,所以目前可以通過開源logstash output插件logstash-output-jdbc進行數據的導入,但是在使用過程中發現,在日志量非常大的情況下,jdbc方式寫入ADB的性能是比較低的,并且會非常消耗CPU的資源(因為jdbc是單條記錄寫入的方式)。在日志量非常大的時候,這種方式性價比明顯是很低的,因此,我們基于jdbc插件的方式優化了一個專門支持ADB的聚合寫入方式的output plugin——logstash-ouput-analyticdb,在此就簡單介紹一下logstash通過logstash-output-analyticdb插件寫入ADB的使用方式。
安裝
Logstash的安裝流程可以參見傳送門,這里不多敘,我們主要介紹一下安裝logstash-output-analyticdb的流程:
- 進入logstash根目錄:cd logstash
- 安裝logstash-output-analyticdb:bin/logstash-plugin install logstash-output-analyticdb
- 在logstash目錄下創建vendor/jar/jdbc目錄:mkdir -p vendor/jar/jdbc
- 將jdbc jar拷貝到vendor/jar/jdbc中:cd vendor/jar/jdbc; wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.36/mysql-connector-java-5.1.36.jar
至此,logstash-output-analyticdb的安裝步驟就都完成了!
使用方式
上面我們已經安裝好了logstash-output-analyticdb插件,下面我們看看怎么使用呢?
和大多數logstash案例的使用方式一樣,我們在config目錄下創建一個logstash-analyticdb.conf(名字可以自行定義)的配置文件,此處我們貼一個簡單的example:
connection_string:連接你的AnalyticDB的jdbc url
statement:insert SQL的聲明數組,要提前在你的AnalyticDB上創建對應的表哦,不然往哪兒寫呢?
此配置文件的內容只是一個例子,具體配置文件的內容根據各使用者的實際使用場景決定。其他analyticdb相關的配置項請看README。
logstash的原有使用配置項,大家可以看看logstash的文檔(因為配置項和規則太多了,就不在此贅述了)
至此,我們使用前的配置任務都已經做完,下面我們來啟動任務,在logstash安裝目錄執行:bin/logstash -f config/logstash-analyticdb.conf即可
后記
我們在使用logstash-output-analyticdb寫入AnalyticDB的性能相較于logstash-output-jdbc會有5倍的提升,并且對于CPU的使用也有明顯的降低。
如果大家在使用過程中遇到任何問題,歡迎issue拋過來
總結
以上是生活随笔為你收集整理的阿里云分析型数据库AnalyticDB:使用Logstash插件进行高效数据写入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 16.04上搭建CDH5.
- 下一篇: Index.get_indexer 方法