Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据增量索引构建
文章目錄
- 一、基礎(chǔ)軟件安裝
- 1. 安裝mysql
- 2. Elasticsearch7.15.2 安裝部署
- 3. kibana 安裝部署
- 4. logstash-input-jdbc 安裝部署
- 二、數(shù)據(jù)庫(kù)準(zhǔn)備
- 2.1. 創(chuàng)建數(shù)據(jù)庫(kù)
- 2.2. 表結(jié)構(gòu)初始化
- 2.3. 數(shù)據(jù)初始化
- 三、logstash 配置mysql
- 3.1. 創(chuàng)建目錄
- 3.2. 上傳mysql驅(qū)動(dòng)
- 3.3. 創(chuàng)建jdbc.conf
- 3.4. 創(chuàng)建jdbc.sql
- 3.5. 創(chuàng)建last_value_meta
- 3.6. 賦予權(quán)限
- 四、啟動(dòng)中間件
- 4.1. 啟動(dòng)mysql
- 4.2. 啟動(dòng)es7
- 4.3. 啟動(dòng)kibana
- 4.4. 點(diǎn)評(píng)搜索索引定義
- 4.5. 啟動(dòng)logstash
- 4.6. 驗(yàn)證全量索引
- 4.7. 增量索引同步
一、基礎(chǔ)軟件安裝
1. 安裝mysql
Mysql 8.0 安裝教程 Linux Centos7
2. Elasticsearch7.15.2 安裝部署
Elasticsearch7.15.2 安裝、部署(linux環(huán)境)
3. kibana 安裝部署
kibana 一分鐘下載、安裝、部署linux
4. logstash-input-jdbc 安裝部署
logstash-input-jdbc 下載安裝 linux
二、數(shù)據(jù)庫(kù)準(zhǔn)備
2.1. 創(chuàng)建數(shù)據(jù)庫(kù)
創(chuàng)建dianpingdb數(shù)據(jù)庫(kù)
2.2. 表結(jié)構(gòu)初始化
表結(jié)構(gòu)sql
2.3. 數(shù)據(jù)初始化
數(shù)據(jù)初始化
三、logstash 配置mysql
3.1. 創(chuàng)建目錄
cd /app/logstash-7.15.2/bin mkdir mysql3.2. 上傳mysql驅(qū)動(dòng)
將mysql驅(qū)動(dòng)上傳到mysql目錄下面
3.3. 創(chuàng)建jdbc.conf
vim jdbc.conf添加內(nèi)容:
input {jdbc {# 設(shè)置 timezone 統(tǒng)一時(shí)間jdbc_default_timezone => "Asia/Shanghai"# mysql 數(shù)據(jù)庫(kù)連接,dianpingdb為數(shù)據(jù)庫(kù)名稱(chēng)jdbc_connection_string => "jdbc:mysql://localhost:3306/dianpingdb?useUnicode=true&characterEncoding=UTF8&autoReconnect=true"# 用戶(hù)名和密碼jdbc_user => "root"jdbc_password => "123456"# 驅(qū)動(dòng)jdbc_driver_library => "/app/logstash-7.15.2/bin/mysql/mysql-connector-java-8.0.27.jar"# 驅(qū)動(dòng)類(lèi)名jdbc_driver_class => "com.mysql.cj.jdbc.Driver"jdbc_page_size => "50000"# 記錄上一次更新時(shí)間last_run_metadata_path => "/app/logstash-7.15.2/bin/mysql/last_value_meta"# 執(zhí)行的sql 文件路徑+名稱(chēng)statement_filepath => "/app/logstash-7.15.2/bin/mysql/jdbc.sql"# 設(shè)置監(jiān)聽(tīng)間隔 字段含義(由左至右)分、時(shí)、天、月、年 全部* 默認(rèn)每分鐘實(shí)時(shí)更新schedule => "* * * * *"} }output {elasticsearch {# ES 的IP地址及端口hosts => ["localhost:9200"]# 索引名稱(chēng)index => "shop"document_type => "_doc"# 自增ID 需要關(guān)聯(lián)數(shù)據(jù)庫(kù)中有一個(gè)id字段,對(duì)應(yīng)索引的id號(hào)document_id => "%{id}"}stdout {# JSON格式輸出codec => json_lines} }3.4. 創(chuàng)建jdbc.sql
vim jdbc.conf添加內(nèi)容:
SELECT a.id,a.name,a.tags,CONCAT(a.latitude,',',a.longitude) AS location,a.remark_score,a.price_per_man,a.category_id,b.`name` as category_name,a.seller_id,c.remark_score as seller_remark_score,c.disabled_flag as seller_disabled_flag FROM shop a INNER JOIN category b on a.category_id =b.id INNER JOIN seller c on c.id = a.seller_id where a.updated_at > :sql_last_value or b.updated_at > :sql_last_value or c.updated_at > :sql_last_value格式化后:
SELECTa.id,a.NAME,a.tags,CONCAT( a.latitude, ',', a.longitude ) AS location,a.remark_score,a.price_per_man,a.category_id,b.`name` AS category_name,a.seller_id,c.remark_score AS seller_remark_score,c.disabled_flag AS seller_disabled_flag FROMshop aINNER JOIN category b ON a.category_id = b.idINNER JOIN seller c ON c.id = a.seller_id WHEREa.updated_at > : sql_last_value OR b.updated_at > : sql_last_value OR c.updated_at > : sql_last_value3.5. 創(chuàng)建last_value_meta
vim last_value_meta添加內(nèi)容:
數(shù)據(jù)是2019年的,因此,填寫(xiě)一個(gè)早一點(diǎn)的日期即可
3.6. 賦予權(quán)限
操作ELK均使用es用戶(hù),在安裝es7是此用戶(hù)已經(jīng)創(chuàng)建,企業(yè)中不允許使用root和軟件限制root用戶(hù)操作;因此,這樣可以做到權(quán)限分明
chown es.es /app/logstash-7.15.2/ -R四、啟動(dòng)中間件
4.1. 啟動(dòng)mysql
linux7.x
systemctl start mysql systemctl status mysqllinux6.x
service mysql start service mysql status4.2. 啟動(dòng)es7
su - es cd /app/elasticsearch-7.15.2/ bin/elasticsearch -d4.3. 啟動(dòng)kibana
啟動(dòng)方式任選一種
su - es cd /app/kibana-7.15.2-linux-x86_64/- 前臺(tái)啟動(dòng)
- 后臺(tái)啟動(dòng)
注意,由于kibana是前臺(tái)啟動(dòng)因此,此命令窗口不能關(guān)閉
4.4. 點(diǎn)評(píng)搜索索引定義
4.5. 啟動(dòng)logstash
su - es cd /app/logstash-7.15.2/bin ./logstash -f mysql/jdbc.conf控制臺(tái)日志:紅色部分是咱們的sql,藍(lán)色部分是同步的數(shù)據(jù)
4.6. 驗(yàn)證全量索引
# 搜索shop文檔索引 GET /shop/_search4.7. 增量索引同步
手動(dòng)修改數(shù)據(jù)庫(kù)數(shù)據(jù),模擬增量同步
原數(shù)據(jù)
修改后數(shù)據(jù)
提交事務(wù),觀察logstash控制臺(tái)和es
總結(jié)
以上是生活随笔為你收集整理的Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据增量索引构建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: kibana 后台启动
- 下一篇: RuoYi-Cloud 部署篇_02(l