MySQLの準リアルタイム同期データElasticsearchへ

4. JDK8、MySQL5.6 -6.0.0ドライブをインストールし、Logstash
ECSはJDK8、MySQL5.6ドライブとLogstashを設置している-6.0.0。図は次のとおりです。

 

インストールLogstash入力、出力プラグ、入力データがケースのMySQLであり、出力ESので、対応するプラグlogstash入力-JDBCおよびlogstash-出力elasticsearchであるべきです。

それぞれのプラグをインストールするコマンド(メインディレクトリLogstashで実行されている):
インストールlogstash-INPUT-JDBCを./bin/logstash-plugin
インストールlogstash-出力-elasticsearch ./bin/logstash-plugin


5. MySQLデータベース作成、テストデータ表
に示すように。


(updatetimeは、データ更新のタイムスタンプを記録するために使用)table文の構築:

表のjm_es_employeeを作成します(
ID VARCHAR(10)、
FIRST_NAME VARCHAR(20)と、
LAST_NAME VARCHAR(20)で、
年齢はint(10)は、
VARCHAR(100)については、
VARCHAR(100)、興味
更新CURRENT_TIMESTAMP ON updatetimeタイムスタンプヌルデフォルトのCURRENT_TIMESTAMPを)。
6. Logstashジョブがファイルに設定
ECSはlogstash-mysqlの-es.confという名前Logstashジョブ設定ファイルを作成しました。

コンフィギュレーションファイルの内容:

入力{
JDBC {
jdbc_driver_library => "のmysql-コネクタのjava-5.1.44-bin.jarを"
jdbc_driver_class => "はcom.mysql.jdbc.Driver"
jdbc_connection_stringは=>「JDBCます。mysql:// RM - ***。 mysql.rds.aliyuncs.com:3306/db_name "
jdbc_user => "DB_USER"
jdbc_password => "DB_PASSWORD"
jdbc_paging_enabled => "真"
jdbc_page_size => "1000"
jdbc_default_timezone => "アジア/上海"
=>スケジュール" * * * * *」
声明=> "を選択* jm_es_employeeからupdatetime>:sql_last_value"
use_column_value =>真
tracking_column => "updatetime"
last_run_metadata_path =>"./logstash_jdbc_last_run"
}
}
出力{
elasticsearch {
=ホスト> "ES-CN - elasticsearch.aliyuncs.com:9200 ***"
USER => "弾性"
パスワード=> "ES_PASSWORD"
インデックス=> "従業員"
DOCUMENT_ID => "%{ID}"
}
STDOUT {
= CODEC> json_lines
}
}
赤い部分は、リフレッシュレート、入力データのパラメータを設定するための対応する置換、スケジュールを行う場合、スケジュールは=>「*」最小周波数MySQLデータ同期でリフレッシュ毎分を示しています。Logstashが豊富な設定パラメータをサポートし、公式サイトElasitcドキュメントを参照してください。

7.データ同期
コマンドを実行し、Logstash ECSサービスを開始し、指定されたパラメータを:

logstash -f logstash-mysqlの-es.conf


分あたりのMySQLのデータをリフレッシュしようとした後、

 

次のようにいくつかのテストデータを書き込んだRDS、スクリプトは次のとおりです。

(ID、FIRST_NAME、jm_es_employee。INSERT INTO LAST_NAME、年齢、程度、利益)VALUES( '001'、 'ジョン'、 'スミス'、25、 '私はロッククライミングに行くのが大好き'、「[ "スポーツ"、 "音楽" ] ');
INSERT INTOのjm_es_employee(ID、FIRST_NAME、LAST_NAME、年齢、について、興味)VALUES('コレクトロックアルバムに同様002 ''ジェーン''スミス'32' I '' [ "音楽" ] ');
INSERT INTOのjm_es_employee(ID、FIRST_NAME、LAST_NAME、年齢、について、興味)VALUES(' 003 ''ダグラス''モミ'35、'私はキャビネットを構築したい'' [ "林業"] 「);
Logstashプロファイル前ので、出力部への出力は、コンソールの両方ES、また出力を配置しました。更新がMySQLへの検出された場合、以下に示すように、データは、コンソールに出力されます。

 

MySQLのLogstash更新されたデータの記述のこの時点でESサービスをプッシュ。ESは、サービスインデックスはECSの実装により作成されたかどうかを確認するためのコマンド。コマンドを実行します。

-uカール弾性:ES_PASSWORD -XGET 'のhttp://es-cn-***.elasticsearch.aliyuncs.com:?9200 / _cat /インデックスV'


我々はESインデックスが正常に作成されたことを示す、インデックスに設定ファイル名で指定されている赤枠の従業員。

8.結果は、
キーワード検索ESサービスを介して、書き込みMySQLのデータが正常に取得し、ESにインデックスされているかどうかを確認し、キーワード「スミス」でデータを取得するためのコマンドを実行します。

ES_PASSWORD -XGET 'のhttp://es-cn-***.elasticsearch.aliyuncs.com:?9200 /従業員/ _search Q = LAST_NAME:スミス&かわいい' -u弾性カール


この時点で、MySQLでデータが正常に、Elasticsearchにほぼリアルタイムにインデックス化されてきたとも取得することができます。
---------------------
著者:weixin_34109408
出典:CSDN
オリジナルます。https://blog.csdn.net/weixin_34109408/article/details/85072527
免責事項:この記事ブロガーのオリジナルの記事、複製など、ボーエンのリンクを添付してください!

おすすめ

転載: www.cnblogs.com/HKROnline-SyncNavigator/p/10972511.html