Logstash同步MySQL資料到ES

2021-09-24 03:57:37 字數 2636 閱讀 3308

資料放在mysql上不好進行分析,且查詢的還比較慢。就想著把資料同步到es上,利用es的高效查詢功能進行資料分析。

一、logstash配置mysql資料來源接入
create table `t_ex_deal` (

`deal_id` varchar(50) not null,

`back` decimal(36,18) default null,

`created_date` datetime default null,

`fee` decimal(36,18) default null,

`fee_rate` double default null,

`fee_coin` varchar(50) default null,

`gain_coin` varchar(50) default null,

`gain_volume` decimal(36,18) default null,

`member_id` int(11) default null,

`order_id` varchar(30) default null,

`order_price` decimal(36,18) default null,

`pay_coin` varchar(50) default null,

`pay_volume` decimal(36,18) default null,

`price` decimal(36,18) default null,

`side` varchar(20) default null,

`symbol` varchar(50) default null,

`trade_id` varchar(50) default null,

`transaction_id` varchar(50) default null,

`updated_date` datetime default null,

`volume` decimal(36,18) default null,

`is_archived` bit(1) default null,

primary key (`deal_id`),

unique key `idx_unique` (`trade_id`,`side`),

unique key `idx_transaction` (`transaction_id`),

key `idx_symbol` (`symbol`),

key `idx_member` (`member_id`),

key `idx_order` (`order_id`),

key `idx_archived` (`is_archived`)

) engine=innodb default charset=utf8mb4 row_format=dynamic;

二、logstash配置(全量同步,增量更新)

# 欄位中的 deal_id 是雪花id,前面幾位代表的是時間

# document_id 採用 deal_id 防止資料重複插入

# 會根據輪詢時間以及分頁大小輪詢,輪詢一遍之後又從新開始,在資料量本身存量大的情況下,後面的更新不及時。

# mysql資料庫時間存的是cst時間(東八區),es收入時預設時間是utc時間,所以filter中 -8 小時

# vim logstash.conf

input

beats

}filter %%"]

}ruby

ruby

mutate

}}output "

index => "logstash-ex-deal-%-%-%"

}

}}

# 

# vim logstash.conf

input

上面新增引數詳解

# 是否需要記錄某個column 的值,如果 record_last_run 為真,可以自定義我們需要 track 的 column 名稱,此時該引數就要為 true. 否則預設 track 的是 timestamp 的值。

use_column_value => true

# 如果 use_column_value 為真,需配置此引數. track 的資料庫 column 名,該 column 必須是遞增的.比如:id.

use_column_value => true

# 追蹤的字段值

tracking_column => member_id

# 是否記錄上次執行結果, 如果為真,將會把上次執行到的 tracking_column 欄位的值記錄下來,儲存到 last_run_metadata_path 指定的檔案中

record_last_run => true

last_run_metadata_path => "./config/station_parameter.txt"

# 是否清除 last_run_metadata_path 的記錄,如果為真那麼每次都相當於從頭開始查詢所有的資料庫記錄

clean_run => false

三、kibana上顯示交易資料資訊

logstash同步mysql到es 配置

0.準備mysql的驅動 1.logstash配置檔案 mysql.conf input output hosts es 9200 2.引數配置說明 dbc driver library 資料庫驅動路徑,這裡我填寫的是絕對路徑,可自行嘗試相對路徑 jdbc driver class 驅動名稱 jdb...

Logstash同步sql資料到Es

安裝好elasticsearch和logstash 把mysql驅動放到logstash的bin目錄下新建的資料夾mysq test下 在mysql test資料夾下面建立mysql.config檔案 input jdbc filter output stdout mysql.sql檔案如下 sel...

mysql同步資料 MySQL同步資料

mysql dump工具用於匯出現有資料,匯出結果為sql檔案 目前dump工具支援整庫dump以及單錶dump。下面為單錶dump操作過程 1 選擇匯出目標目錄 確保該目錄有足夠的儲存空間。mkdir opt bas backup 2 使用mysqldump命令匯出表資料 mysqldump u ...