mysqlæ°æ®åæ¥å°elasticsearchæ°æ®è§£å³æ¹æ¡
é®é¢åºæ¯
1.ååºå表åå¤å ³èæè 夿¡ä»¶æ¥æ¾æçä½ä¸ï¼ä¾å¦2båºæ¯çæ¥è¯¢ï¼å¯¼åºçéè¦å¤æ¡ä»¶æ¥è¯¢ï¼ç»§ç»ç¨ååºåè¡¨è¯æçä½ä¸ã
2.æ°æ®é太å¤éè¦è½¬ç§»éå ³ç³»åæ°æ®åºelasticsearchåå¨
3.å ¶ä»æ°æ®è½¬ç§»åºæ¯ç
è¿ä¸¤ç§åºæ¯é½æ¶åå°mysqlæ°æ®åæ¥å°esæ°æ®è§£å³æ¹æ¡ï¼è§£å³èµ·æ¥åæ»ä½ä¸¤æ¥èµ°ï¼ä¸æ¯åéæ°æ®ç忥ï¼äºæ¯å¢éæ°æ®ç忥ãè¿éå©ç¨çæ¯canalçæ¹æ¡å»åæ¥æ°æ®ï¼æ¹æ¡å¦ä¸å¾æç¤º
è¿ä¸ªæ¯ä¸åæºçæ¹æ¡ï¼é¦å åæ¶å¼å¯åéçæ°æ®çå¯¼å ¥åå¢éæ°æ®ççå¬ï¼å¾ åéæ°æ®å¯¼å ¥å®æï¼å¼å¯javaæå¡æ¶è´¹mqæ¶æ¯ï¼å¯¹æ°æ®è¿è¡æ´æ°æè æå ¥ï¼è¥æ°æ®åå¨åè¿è¡æ´æ°ï¼è¥æ°æ®ä¸åå¨ï¼æ¯æ°æå ¥åæå ¥ï¼æ¯æ´æ°åä¿åå°å®æ¶ä»»å¡éè¯ãè¿éåªæ¯çæ³æ¹æ¡ï¼å®é è¿ç¨ä¸ååéæ°æ®ç大å°ï¼æ°æ®çå¢é¿ççæå ³ç³»ï¼å ·ä½å®æ½è¯å®è¾ä¸ºå¤æã
è¥è¦æ§è¡åæºæ¹æ¡ï¼åæ¯è¾ç®åï¼æ°æ®ä¸åæ´æ°åï¼å°åéæ°æ®æå ¥å°esåï¼åå¼å¯å¢éæ°æ®ç嬿å¡ä»¥åæ¶è´¹æå¡ï¼è¿æ ·eså°±è½å®æ¶åæ¥æ°æ®äºï¼ä¸é¢å®è·µä¸canal adapterçmysqlåéæ°æ®å¯¼å ¥elasticsearchä¸ã
å¢éæ°æ®å¯¼å ¥elasticsearch
å®è·µçæ¬ï¼
elasticsearch &kibana:7.12.1
canal.client-adapter:1.1.7-SNAPSHOT
mysql :8.0 主ä»
以è¿ä¸ªåè¡¨çæ°æ®ä¸ºä¾
CREATE TABLE `pay_parent_1` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL,
`status` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL,
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'å建è
',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'å建æ¶é´',
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'æ´æ°è
',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'æ´æ°æ¶é´',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT 'æ¯å¦å é¤',
`tenant_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'ç§æ·id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1571152425171070978 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
å¤å¶ä»£ç
å¨kibanaä¸å»ºç«ç´¢å¼
PUT /pay_parent_0
{
"mappings":{
"properties":{
"id": {
"type": "long"
},
"user_id": {
"type": "long"
},
"status": {
"type": "text"
},
"creator": {
"type": "text"
},
"create_time": {
"type": "date",
"formats" : ["yyyy-MM-dd HH:mm:ss"],
"timezone" : "Asia/Shanghai"
},
"updater": {
"type": "text"
},
"update_time": {
"type": "date",
"formats" : ["yyyy-MM-dd HH:mm:ss"],
"timezone" : "Asia/Shanghai"
},
"deleted": {
"type": "long"
},
"tenant_id": {
"type": "text"
}
}
}
}
â
å¤å¶ä»£ç
client-adapter é ç½® 表åesç´¢å¼çæ å°
dataSourceKey: defaultDS #æ°æ®æº
destination: pay_parent_0 #ä¹å¯ä»¥ä»çå¬çæ°æ®æºåæ°æ® mqæè
canal
outerAdapterKey: es #对åºçéé
å¨çkey
groupId: g1 #对åºéé
å¨çåç»
esMapping:
index: pay_parent_0 #esç´¢å¼åç§°
id: id #æ°æ®åºä¸»é®å¯¹åºesææ¡£id æå
¥æ°æ®æ¶ä¸å®è¦å¡«å
# upsert: true #æ¯å¦æ´æ° 以主é®idä½ä¸ºæ´æ°æ¡ä»¶
sql: "select id, user_id, status, creator, create_time, updater, update_time, deleted, tenant_id
from pay_parent_0 as a"
etlCondition: "where a.id={}" # etl çæ¡ä»¶åæ° æ¥å£è¯·æ±
commitBatch: 3000 # æäº¤æ¹å¤§å°
å¤å¶ä»£ç
ä¸è½½canalæºç ï¼å¯å¨lanucher 模åï¼client-adapter å¯å¨é ç½®
srcDataSources:
defaultDS:
url: jdbc:mysql://xxx:3306/demo0?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
username: root
password: xxx
canalAdapters:
- instance: canal.test.queue # canal instance Name or mq topic name
groups:
- groupId: g1
outerAdapters:
- name: logger
- name: es7
key: es
hosts: http://xxx:39200 # 127.0.0.1:9200 for rest mode
properties:
mode: rest # or rest
cluster.name: elasticsearch
å¤å¶ä»£ç
å¯å¨åæ§è¡ï¼å æµè¯ç¬¬ä¸æ¡æ°æ®æå ¥
http://127.0.0.1:8081/etl/es7/es/payParent0.yml?params=1571052632021184514
æå ¥åæ¥çkibanaï¼ä»¥å建æ¶é´æç´¢ï¼å¦å¾æç¤ºï¼å¼å¾æ³¨æçæ¯elastiå卿¶é»è®¤å°æ¶é´è½¬å为UTCæ¶é´åå¨ï¼å³0æ¶åºï¼å é¨é»è®¤æ¯ä¸ªé¿æ´åãæä»¥è¿éçdateæ ¼å¼çæ¶é´é½æ¶é¶æ¶åºçï¼ä½æ¯æç´¢çæ¶åkibanaä¼è¿è¡æ¶åºè½¬æ¢ãæåºæ¥çç»ææ¯åç¡®çã
å¦å¤ï¼éå¤è¯·æ±æ¶ï¼æå®äºidæå ¥çæ°æ®ä¼è¦çåæ¥çæ°æ®ï¼è¿ä¸ªæ¯eså é¨apiçåè½ã
ç®åæµè¯å®åï¼æµè¯ä¸10wçæ°æ®æå ¥ï¼è¿éåªéè¦æè¯·æ±ä¸ç忰廿就è¡ï¼æ§è¡http://127.0.0.1:8081/etl/es7/es/payParent0.yml
å¯ä»¥çå°æ§è½è¿æ¯ä¸éï¼10wçæ°æ®åç¡®æ 误çæå ¥ï¼è±äº41msï¼å¤ç½å硬件æ¡ä»¶ä¸è¬çæ åµï¼å ç½çè±æ´å¿«ã
æ»ç»
å©ç¨canal adpterçesæä»¶å¯ä»¥å®ç°mysql åæ¥çæ°æ®çåè½ï¼åéæ°æ®æ¹éæ´æ°æè æ¹éæå ¥ï¼é常æ¹ä¾¿ãéé¢çæºç æä»¶çå®ç°ï¼é ç½®æä»¶åç¦»ï¼æå ¥å®ä¾çå®ç°ä»¥åmysqlæ°æ®çæ¹éæå ¥é½å¯ä»¥åé´ãè¥åç»ä¸å¡ä¸æè®¾è®¡æ°æ®è¿ç§»å°esä¸ï¼åèå®ç°æ¯é常æå¸®å©çã