elasticsearchでのデータ抽出に同期mysqlの

いくつかの方法を学ぼう:

    1.、MySQLのバイナリログログを使って、これはESに同期して、アリの運河を使用することができます

    2.公式ESは、送信元アドレスlogstash入力-JDBCのプラグインlogstashあるlogstash入力-JDBCを、推奨される使用

まず、これもルビーをインストールする必要がありlogstash入力-JDBC用ルビーの髪速いので、インストールが成功したかどうかを確認するためにCMD入力ルビー-vをダウンロードしてインストール、インストール、開くことを選択し、ここでそれらを繰り返さない、logstashをインストール

 

そして、宝石のソース、宝石・ソースを変更-l

オリジナルのソースを削除します。

宝石の源は--remove https://rubygems.org/
新しいソースを追加します

宝石源-a http://gems.ruby-china.org/
宝石源-l


修正が成功した後、データもGemfileの送信元アドレスを変更する必要があります。

GEMインストールバンドラ
バンドル設定mirror.httpsを://rubygems.org https://gems.ruby-china.org
して実装されlogstash入力-JDBC、binディレクトリにlogstash、次のコマンドを実行します。

 

。\ logstash-plugin.batがlogstash-インストール入力-JDBCを
、しばらく正常にインストールに表示され、インストールが成功し、それが使用する方法、あり、そして

公式文書には対処します。https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html

MySQLなど、binディレクトリのフォルダに新しいファイルを作成します。

 

次のように新しいファイルを作成Jdbc.conf、構成は次のとおりです。

    

入力{
STDIN {
}
JDBC {
jdbc_connection_stringは=> "JDBC:MySQLの://127.0.0.1:3306 /試験"
jdbc_user => "ルート"
jdbc_password => "123456"
jdbc_driver_library =>「F:\プログラムファイル\ logstash-6.2 0.4 \ binに\ mysqlの\ mysqlのコネクタ-javaの-5.1.30.jar」
jdbc_driver_class => "はcom.mysql.jdbc.Driver"
jdbc_paging_enabled => "真"
jdbc_page_size => "300000"
use_column_value => "真"
tracking_column => "ID"
statement_filepath => "F:\プログラムファイル\のlogstash-6.2.4のbin \ \ mysqlの\ jdbc.sql"
スケジュール=> "* * * * *"
タイプ=> "JDBC"
jdbc_default_timezone => "アジア/上海"
}
}


{フィルタリング
{JSONを
ソース=> "メッセージ"
remove_field => [ "メッセージ"]
}
}


の出力{
elasticsearch {
ホスト=> [ "はlocalhost:9200"]
インデックス=> "TEST_OUT"
テンプレート=>「F:\プログラムファイル\ logstash-6.2。 4 \ビン\のMySQL \ ES-template.json "
テンプレート名=>" T-統計-OUT-logstash "
template_overwrite => trueに
DOCUMENT_TYPE =>" OUT "
DOCUMENT_ID =>" %{ID} "
}
STDOUT {
CODEC => json_lines
}
}
sql_last_value変化をIDに基づいてされた後:ジャーパッケージは、このフォルダにデータベースに接続され、その後、SQLを実行するための新しいjdbc.sqlスクリプトファイル、テストからここID> *選択 = sql_last_value、 、更新データにESを引っ張って、指定された時間に応じて、同期差分更新データを得ます。

その後、logstashを起動し、コマンドを実行します。

。\ logstash.bat -f。\ mysqlの\ jdbc.conf
スタートが成功しなかった、とUTF-8フォーマットできなくBOMに設定jdbc.conf jdbc.sqlエンコード形式をチェックします

このような情報は、それが自動的にjdbc.sql SQL文を実行しますスタートアップが成功したことを示す、開始するには、データ同期ESを入手するための照会:

[2018-07-04T15:59:46690] [INFO] [logstash.outputs.elasticsearch] Elasticsearch接続が機能しているかどうかを確認するためにヘルスチェックを実行している{:てhealthcheck_url =>のhttp:// localhostを:9200 /、:パス=> "/"}
[2018-07-04T15:59:46869] [WARN] [logstash.outputs.elasticsearch] ESインスタンスに復元接続{:URL => "のhttp:// localhostを:9200 /"}
[2018から07 -04T15:59:46915] [INFO] [logstash.outputs.elasticsearch] ES出力バージョン決定{:es_version => 6}
[2018-07-04T15:59:46921]を[] [logstash.outputs.elasticsearch]検出WARN 6.xおよびクラスタ上:{:es_version => 6} `type`がイベントフィールドは、文書_type決定するために使用されません
[2018-07-04T15:59:46936] [INFO] [logstash.outputsします。 elasticsearch]からマッピングテンプレートを使用して{:パス=> "F:\\プログラムファイル\\ logstash-6.2。4 \\ビン\\のMySQL \\ ES-template.json "}
【2018-07-04T15:59:46951] [INFO] [logstash.outputs.elasticsearch]テンプレートをインストールしようとすると、{:manage_template => { "テンプレート" => "T-statistisアウトテンプレート"、 "注文" = > 1、 "設定" => { "インデックス" => { "REFRESH_INTERVAL" => "5S"}}、 "マッピング" => { "_デフォルト_" => { "_全て" => { "有効" =>偽}、 "dynamic_templates" => [{ "message_field" => { "マッチ" => "メッセージ"、 "match_mapping_type" => "文字列"、 "マッピング" => { "タイプ" => "文字列"、「インデックス"=> { " "=>" not_analyzed "}}}、{" string_fields "=> {" マッチ "=>" *"、 "match_mapping_type"=> "文字列"、" マッピングタイプ "=>" string」は、 "インデックス" => "not_analyzed"}}}]、 "プロパティ" => { "@タイムスタンプ" => { "タイプ" => "日付"}、 "@version" => { "タイプ" => "キーワード"} "のGeoIP" => { "ダイナミック" => trueを、 "プロパティ" => { "IP" => { "タイプ" => "IP"}は、 "位置" = > { "タイプ" => "geo_point"}、 "緯度" => { "タイプ" => "half_float"}、 "経度" => { "タイプ" => "half_float"}}}、 "acc_id" = > { "タイプ" => "キーワード"}、 "acc_name" => { "タイプ" => "キーワード"}、 "acc_pp" => { "タイプ" => "キーワード"}、 "account_price_type" => { "タイプ "=>" キーワード "}、 "cyacc_no"=> {" タイプ "=>" キーワード "}、 "ORDER_ID"=> {" タイプ "=>" キーワード "}、 "voucher_id"=> {" タイプ」 => "キーワード"}}}}、 "エイリアス" => {}}}
【2018-07-04T15:59:46986] [INFO] [logstash.outputs.elasticsearch] elasticsearchテンプレートをインストールする_templateする/ t統計アウトlogstash
[2018-07-04T15:59:47097] [INFO] [logstash .outputs.elasticsearch]新しいElasticsearch出力{:クラス=> "LogStash ::出力:: ElasticSearch":ホスト=> [ "// localhostを:9200"]}
[2018-07-04T15:59:47499] [INFO ] [logstash.pipeline]パイプラインが正常に開始{:pipeline_id => "メイン"、:スレッド=> "#<スレッド:0x1b1682f0ラン>"}
STDINプラグインは、現在入力を待っている:
[2018-07-04T15:59: 47613] [INFO] [logstash.agent]パイプライン実行{:カウント=> 1、:パイプライン=> [ "メイン"]}
[2018-07-04T16:00:01955] [INFO] [logstash.inputs.jdbc] (0.009963s)SELECTバージョン()
同期がフィールドES単語、またはクエリ語部門を設定するために必要されていない場合、誤った結果につながる、ファジーマッチングがそのように使用することはできません、我々は次のように、リレーショナルデータベースのように出力jdbc.conf年代にテンプレート、テンプレート名とtemplate_overwriteを設定する必要があります下記:

出力{
elasticsearch {
ホスト=> [ "localhostを:9200"]
インデックス=> "t_statistic_out"
テンプレート=> "F:\プログラムファイル\ logstash-6.2.4 \ binに\ mysqlの\ ES-template.json"
テンプレート名=> " t統計アウトlogstash」
template_overwrite =>真
DOCUMENT_TYPE => "アウト"
DOCUMENT_ID => "%{ID}"
}
STDOUT {
コーデック=> json_lines
}
}
ES-template.json配置文件如下、设置不分词的字段值型为キーワード:

{
"テンプレート": "T-statistisアウトテンプレート"、
"注文":1、
"設定":{
"インデックス":{
"REFRESH_INTERVAL": "5S"
}
}、
"マッピング":{
"_default_": {
"_all":{ "有効":偽}、
"dynamic_templates":[
{
"message_field":{
"マッチ": "メッセージ"、
"match_mapping_type": "string"は、
"マッピング":{ "タイプ": "文字列" "インデックス": "not_analyzed"}
}
}、{
"string_fields":{
"マッチ":"*」、
"match_mapping_type": "string"は、
"マッピング":{ "タイプ": "string"は、 "インデックス": "not_analyzed"}
}
}
]、
"プロパティ":{
"@timestamp":{
"タイプ": "日付"
}、
"@version":{
"タイプ": "キーワード"
}
"のGeoIP":{
"ダイナミック":真、
"プロパティ":{
"IP"。 {
"タイプ": "IP"
}、
"場所" {
"タイプ": "geo_point"
}、
"緯度":{
"タイプ": "half_float"
}、
"経度":{
"タイプ": "half_float"
}
}
}、
"acc_id":{
"タイプ": "キーワード"
}、
"acc_name":{
"タイプ": "キーワード"
}、
"acc_pp":{
"タイプ": "キーワード"
}、
"account_price_type":{
"タイプ": "キーワード"
}、
"cyacc_no":{
"タイプ": "キーワード"
}、
"ORDER_ID":{
"タイプ": "キーワード"
}、
"voucher_id":{
"タイプ": "キーワード"
}

}
}
}、
"エイリアス":{ }

}
それは無駄に発見された場合、順序を設定0より大きい場合、開始時刻logstashファイルを送信logstashデフォルト設定されます、あなたはデフォルトを削除する必要があります

 

次に対応するインデックス、再起動を削除し、あなたはの発効を見つけるだろう


---------------------
著者:ディアン人生は夢のある
CSDN:出典
元ます。https://blog.csdn.net/ll840768874/article/details/80914833
著作権免責事項:この記事はブロガーのオリジナルの記事、再現され、ボーエンのリンクを添付してください!

おすすめ

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