เปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเปเบญเบ, เบเปเบญเบเบกเบฑเบเบเบฐเบเบปเบเบงเบดเบเบตเปเบเปเปเบเบเปเบฒเบเบงเบดเบเบฒเบเบฒเบเปเบซเบกเป / เบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบญเบเปเบง, เบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเปเบเปเบญเบเบกเบตเบขเบนเปเปเบเบญเบดเบเปเบเบตเปเบเบฑเบเบเบตเปเปเบงเบปเปเบฒเบเบฒเบชเบฒเบฅเบฑเบเปเบเบ. เบเปเบงเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเปเบญเบเบเบฐเบเบฐเบเบฒเบเบฒเบกเบเบทเปเบกเบเปเปเบกเบนเบเปเบชเปเบเปเบญเบเบซเบงเปเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเปเบงเบเบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเปเบฒเบเบกเบฒเบเบญเบเบเปเบญเบ, เปเบกเบทเปเบญเบเปเบญเบเบเปเบญเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบชเบปเปเบเปเบซเบเบเบฒเบ CDC เบเบฒเบเบชเบญเบ DBMSs เบเบตเปเบเบดเบเบปเบก (PostgreSQL เปเบฅเบฐ MongoDB) เปเบเบซเบฒเบเบธเปเบก Kafka เปเบเบเปเบเป Debezium. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบซเบงเบฑเบเบงเปเบฒเบเบปเบเบเบงเบฒเบกเบเบปเบเบเบงเบเบเบตเป, เปเบเบดเปเบเบเบฐเบเบปเบเบงเปเบฒเปเบเบฑเบเบเบปเบเบกเบฒเบเบฒเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเปเบฎเบฑเบ, เบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเปเบเบปเบเบญเบทเปเบ.
Debezium เปเบฅเบฐ CDC เปเบเบเบเบปเปเบงเปเบเปเบกเปเบเบซเบเบฑเบ?
เบเบตเป
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฝเบเบเบฝเบ CDC เบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบเบเบเบฑเปเบเปเบเบตเบก (เปเบกเบทเปเบญเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบ DBMS เปเบเบเบเบปเบ), เบเบฐเปเบซเบเบเบเบปเปเบเบเปเบเบญเบเบกเบฑเบเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเบฒเบเบเบญเบเบเปเปเบกเบนเบเปเบเบฅเบฐเบเบฑเบเปเบเบงเบเบตเปเบกเบต latency เบเปเปเบฒ, เบเบงเบฒเบกเบซเบเปเบฒเปเบเบทเปเบญเบเบทเบชเบนเบเปเบฅเบฐเบเบงเบฒเบกเบเปเบญเบก. เบชเบญเบเบเบธเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเบฑเบเบฅเบธเปเบเปเปเบเบเบเบฒเบเปเบเปเบเบธเปเบก Kafka เปเบเบฑเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบญเบเปเบซเบเบเบฒเบ CDC.
เบเบญเบเบเบฒเบเบเบตเป, เบเปเปเบเบตเบฅเบงเบกเปเบเบดเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบฎเบนเบเปเบเบเบเบฝเบงเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบซเบเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบชเบธเบเบเปเบฒเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบงเบปเบเบเปเบฝเบงเบเบฑเบ nuances เบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ DBMS.
เบชเบธเบเบเปเบฒเบ, เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบซเบเปเบฒเบเปเปเบเบงเบฒเบกเปเบเบตเบเบเบญเบเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบซเบเบฒเบเบญเบญเบเบเบฒเบกเบฅเบงเบเบเบญเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบเบเปเปเบกเบนเบ. เปเบเบเบฐเบเบฐเบเบฝเบงเบเบฑเบ, เบเบปเบเบเบฐเบเบปเบเบเปเปเปเบซเบผเปเบเบเปเปเบกเบนเบเปเบกเปเบเบซเบเปเบญเบเบเบตเปเบชเบธเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเปเปเบกเบนเบเบเปเปเปเบเปเบฎเบฑเบเปเบเบเบเบปเบเบเบฒเบ DBMS, เปเบเปเบเบฒเบเบเบธเปเบก Kafka.
เบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ Debezium
เบเบฒเบเบเปเบฒเปเบเป Debezium เบกเบฒเบฅเบปเบเปเบเปเบเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบตเป:
DBMS (เปเบเบฑเบเปเบซเบผเปเบเบเปเปเบกเบนเบ) โ เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบ Kafka Connect โ Apache Kafka โ เบเบนเปเบเปเบฅเบดเปเบเบ
เปเบเบเบฒเบเบฐเปเบเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบซเปเปเบเบเบงเบฒเบเบเบฒเบเปเบงเบฑเบเปเบเบเปเบเบญเบเปเบเบเบเบฒเบ:
เบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเปเบญเบเบเปเปเบกเบฑเบเปเบเบเบเบฒเบเบเบตเป, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบกเบตเบเบฝเบเปเบเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเปเบญเบเบซเบฅเบปเปเบกเบเบปเบกเปเบเบปเปเบฒเบเบฑเปเบ.
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบชเบฐเบเบฒเบเบฐเบเบฒเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบ: เบเบฒเบเบเบทเปเบกเบเปเปเบกเบนเบ Lake เบเบญเบเบเปเบฒเบ (เบฅเบดเปเบเบชเบธเบเบเปเบฒเบเปเบเปเบเบเบงเบฒเบเบเปเบฒเบเปเบเบดเบ) เบเปเปเปเบกเปเบเบงเบดเบเบตเบเบฝเบงเบเบตเปเบเบฐเปเบเป Debezium. เปเบซเบเบเบฒเบเบเบตเปเบเบทเบเบชเบปเปเบเปเบเบซเบฒ Apache Kafka เบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเปเบฒเบเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเปเบฒเบเป. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
- เบเบฒเบเบเปเบฒเบเบฑเบเบเปเปเบกเบนเบเบเบตเปเบเปเปเบเปเบฝเบงเบเปเบญเบเบญเบญเบเบเบฒเบ cache;
- เบเบฒเบโเบชเบปเปเบโเปเบเปเบโเบเบฒเบโ;
- เบเบฒเบเบเบฑเบเบเบธเบเบเบฑเบเบชเบฐเบเบตเบเบปเปเบเบซเบฒ;
- เบเบฒเบเบเบฐเปเบเบเบเบญเบเบเบฑเบเบเบถเบเบเบฒเบเบเบงเบเบชเบญเบ;
- ...
เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโเบเปเบฒเบโเบกเบตโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบ Java เปเบฅเบฐโเบเปเปโเบกเบตโเบเบงเบฒเบกโเบเปเบญเบโเบเบฒเบ / เบเบงเบฒเบกโเปเบเบฑเบโเปเบโเปเบเปโเบเบตเปโเบเบฐโเบเปเบฒโเปเบเปโเบเบธเปเบก Kafkaโ, เบกเบฑเบโเบเบฑเบโเบกเบตโเบเบงเบฒเบกโเปเบเบฑเบโเปเบโเปเบเปโเบเบตเปโเบเบฐโเปเบฎเบฑเบโเบงเบฝเบโเปเบเบโเบเปเบฒเบโเบเบฒเบโ.
เบเบปเบโเบเบงเบฒเบกโเบเบตเปโเบเบฐโเบเบถเบโเบชเบฒโเบซเบฒโเบฅเบทโเบชเบฐโเบเบฒโเบเบฑเบโเบเบฐโเบเบตเปโเปเบเบฐโเบเปเบฒโเปเบเบโเบเบนเปโเบเบฑเบโเบเบฐโเบเบฒโ, เบเบตเปโเปเบซเปโเบเบงเบฒเบกโเบเบปเบโเบเบฒเบโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโเปเบฅเบฐโเบเบฒเบโเบเบฐโเบซเบเบฒเบโเบเบปเบงโเปเบเปโ.
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเป
เปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบกเบนเบเบเปเบฒเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบชเบธเบ - เบเปเปเบกเบนเบ - เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ:
- เปเบซเบผเปเบเบเปเปเบกเบนเบ, เปเบเบดเปเบเบชเบฒเบกเบฒเบเปเบเบฑเบ MySQL เปเบฅเบตเปเบกเบเบฒเบเปเบงเบตเบเบฑเบ 5.7, PostgreSQL 9.6+, MongoDB 3.2+ (
เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบปเบเบเปเบงเบ ); - เบเบธเปเบก Apache Kafka
- Kafka Connect instance (เปเบงเบตเบเบฑเปเบ 1.x, 2.x);
- เบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเป Debezium.
เปเบฎเบฑเบเบงเบฝเบเบชเบญเบเบเบธเบเบเปเบฒเบญเบดเบ, i.e. เบเบฐเบเบงเบเบเบฒเบเบเบดเบเบเบฑเปเบ DBMS เปเบฅเบฐ Apache Kafka เปเบกเปเบเปเบเบตเบเบเบญเบเปเบเบเบเบญเบเบเบปเบเบเบงเบฒเบก. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเปเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบ sandbox, เบกเบตเบซเบเบถเปเบเบเบตเปเบเบฝเบกเบเปเบญเบกเปเบ repository เบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบตเปเบกเบตเบเบปเบงเบขเปเบฒเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบธเบกเปเบชเปเบชเบญเบเบเบธเบเบชเบธเบเบเปเบฒเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบก.
0. Kafka Connect
เบเบตเปเบเบตเปเปเบฅเบฐเบเปเปเบกเบฒเปเบเบเบปเบเบเบงเบฒเบก, เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฑเบเบซเบกเบปเบเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบชเบฐเบเบฒเบเบเบฒเบเบเบญเบเบฎเบนเบเบเบฒเบ Docker เบเบตเปเปเบเบเบขเบฒเบเปเบเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒ Debezium. เบกเบฑเบเบเบฐเบเบญเบเบเปเบงเบเปเบเบฅเป plugin เบเบตเปเบเปเบฒเปเบเบฑเบเบเบฑเบเบซเบกเบปเบ (เบเบปเบงเปเบเบทเปเบญเบกเบเปเป) เปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ Kafka Connect เปเบเบเปเบเปเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก.
เบเปเบฒเบเปเบฒเบเบเบฑเปเบเปเบเบเบฐเปเบเป Kafka Connect เบเบฒเบ Confluent, เบเปเบฒเบเบเบฐเบเปเบญเบเปเบเบตเปเบก plugins เบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเปเบฒเปเบเบฑเบเบเปเบงเบเบเบปเบงเบเปเบฒเบเปเบญเบเบเบฑเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบ. plugin.path
เบซเบผเบทเบเบฑเปเบเบเปเบฒเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก CLASSPATH
. เบเบฒเบเบเบฑเปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบ Kafka Connect worker เปเบฅเบฐ connectors เปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบเบเปเบฒเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเบทเบเบชเบปเปเบเบเปเบฒเบเปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบเบเปเบฒเบชเบฑเปเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเบเบฐเบเบฑเบเบเบฒเบ. เบชเปเบฒเบฅเบฑเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบดเปเบ
เบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ Debeizum เปเบเบชเบฐเบเบฑเบเปเบเบทเปเบญเบกเบเปเปเปเบกเปเบเบเปเบฒเปเบเบตเบเปเบเบชเบญเบเบเบฑเปเบเบเบญเบ. เบเปโเปเบซเปโเบเบดเบเบฒเบฅเบฐเบเบฒโเบเบงเบโเปเบเบปเบฒโเปเบเปโเบฅเบฐโเบเบปเบ:
1. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบ Kafka Connect
เปเบเบทเปเบญเบเปเบฒเบเบเบญเบเบเปเปเบกเบนเบเปเบเบซเบฒเบเบธเปเบก Apache Kafka, เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเบฐเปเบเบฒเบฐเปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบงเปเปเบเบเบญเบ Kafka Connect, เปเบเบฑเปเบ:
- เบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโเบเบธเปเบกโ,
- เบเบทเปเบเบญเบเบซเบปเบงเบเปเปเบเบตเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบญเบเบกเบฑเบเปเบญเบเบเบฐเบเบทเบเปเบเบฑเบเปเบงเป,
- เบเบทเปเบเบญเบเบเบธเปเบกเบเบตเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบฅเบฑเบเปเบฅเปเบ (เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบฎเบนเบเปเบเบเบเบฒเบเปเบเบเบขเบฒเบ).
เบฎเบนเบเบเบฒเบ Docker เบขเปเบฒเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบญเบเปเบเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเปเบเปเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก - เบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป. เบเบฑเปเบโเบเบฑเปเบโเปเบซเปโเบเบฒเบงโเบโเปโเปเบซเบฅเบโเบฎเบนเบโเบเบฒเบโ:
docker pull debezium/connect
เบเบธเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฑเปเบเบเปเบณเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบทเปเบญเปเบฅเปเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบกเบตเบเบฑเปเบเบเบตเป:
-
BOOTSTRAP_SERVERS=kafka-1:9092,kafka-2:9092,kafka-3:9092
- เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบทเปเบญเบเบเบปเปเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบธเปเบก Kafka เปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบปเบเบเปเบงเบเบเบญเบเบชเบฐเบกเบฒเบเบดเบเบเบธเปเบก; -
OFFSET_STORAGE_TOPIC=connector-offsets
โ เบซเบปเบงเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเบฒเปเบซเบเปเบเบเบตเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฑเปเบเบขเบนเปเปเบเบเบฐเบเบธเบเบฑเบ; -
CONNECT_STATUS_STORAGE_TOPIC=connector-status
- เบซเบปเบงเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบฅเบฐเบงเบฝเบเบเบฒเบเบเบญเบเบกเบฑเบ; -
CONFIG_STORAGE_TOPIC=connector-config
- เบซเบปเบงเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบฅเบฐเบงเบฝเบเบเบฒเบเบเบญเบเบกเบฑเบ; -
GROUP_ID=1
โ เบเบปเบงเบฅเบฐเบเบธเบเบธเปเบกเบเบปเบเบเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเปเบฒเบเบตเปเปเบเบทเปเบญเบกเบเปเป; เบเปเบญเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเปเบฒเปเบเปเปเบเบเบขเบฒเบ (เปเบเบเบขเบฒเบ) เบฅเบฐเบเบญเบ.
เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบ container เบเปเบงเบเบเบปเบงเปเบเปเบซเบผเบปเปเบฒเบเบตเป:
docker run
-e BOOTSTRAP_SERVERS='kafka-1:9092,kafka-2:9092,kafka-3:9092'
-e GROUP_ID=1
-e CONFIG_STORAGE_TOPIC=my_connect_configs
-e OFFSET_STORAGE_TOPIC=my_connect_offsets
-e STATUS_STORAGE_TOPIC=my_connect_statuses debezium/connect:1.2
เบซเบกเบฒเบเปเบซเบเบเปเบฝเบงเบเบฑเบ Avro
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, Debezium เบเบฝเบเบเปเปเบกเบนเบเปเบเบฎเบนเบเปเบเบ JSON, เปเบเบดเปเบเบเบญเบกเบฎเบฑเบเปเบเปเบชเปเบฒเบฅเบฑเบ sandboxes เปเบฅเบฐเบเปเปเบกเบนเบเบเปเบฒเบเบงเบเบเปเบญเบเป, เปเบเปเบชเบฒเบกเบฒเบเปเบเบฑเบเบเบฑเบเบซเบฒเปเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเปเบซเบฅเบเบซเบผเบฒเบ. เบเบฒเบเปเบฅเบทเบญเบเบเบญเบเบเบปเบงเปเบเบ JSON เปเบกเปเบเปเบเบทเปเบญ serialize เบเปเปเบเบงเบฒเบกเปเบเบเปเบเป
เปเบเบทเปเบญเปเบเป Avro, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบเบเบเปเบฒเบเบซเบฒเบ
name: CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL
value: http://kafka-registry-01:8081/
name: CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL
value: http://kafka-registry-01:8081/
name: VALUE_CONVERTER
value: io.confluent.connect.avro.AvroConverter
เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฒเปเบเป Avro เปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบชเปเบฒเบฅเบฑเบเบกเบฑเบเปเบเบตเบเบเบญเบเปเบเบเบเบญเบเบเบปเบเบเบงเบฒเบก - เบเบทเปเบกเบญเบตเบ, เปเบเบทเปเบญเบเบงเบฒเบกเบเบฑเบเปเบเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป JSON.
2. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบปเบงเบกเบฑเบเปเบญเบ
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบเบเบเบปเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบปเบงเบกเบฑเบเปเบญเบ, เปเบเบดเปเบเบเบฐเบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเปเบซเบผเปเบ.
เบเปเปเบซเปเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบชเปเบฒเบฅเบฑเบเบชเบญเบ DBMS: PostgreSQL เปเบฅเบฐ MongoDB, เบเบตเปเบเปเบญเบเบกเบตเบเบฐเบชเบปเบเบเบฒเบเปเบฅเบฐเบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบ (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฐเบเปเบญเบ, เปเบเปเปเบเบเบฒเบเบเปเบฅเบฐเบเบตเบเบตเปเบชเปเบฒเบเบฑเบ!).
เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเปเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบ JSON notation เปเบฅเบฐเบญเบฑเบเปเบซเบฅเบเปเบเบเบฑเบ Kafka Connect เปเบเบเปเบเปเบเปเบฒเบฎเปเบญเบเบเป POST.
2.1. PostgreSQL
เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบชเปเบฒเบฅเบฑเบ PostgreSQL:
{
"name": "pg-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"plugin.name": "pgoutput",
"database.hostname": "127.0.0.1",
"database.port": "5432",
"database.user": "debezium",
"database.password": "definitelynotpassword",
"database.dbname" : "dbname",
"database.server.name": "pg-dev",
"table.include.list": "public.(.*)",
"heartbeat.interval.ms": "5000",
"slot.name": "dbname_debezium",
"publication.name": "dbname_publication",
"transforms": "AddPrefix",
"transforms.AddPrefix.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.AddPrefix.regex": "pg-dev.public.(.*)",
"transforms.AddPrefix.replacement": "data.cdc.dbname"
}
}
เบซเบผเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบฒเบ:
- เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบฒเบญเบดเบ, เบกเบฑเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบเปเบเปเบซเบกเบ เบเบฒเบเบเปเบฒเบเปเบเบทเปเบญเบเบเบปเปเบ, เบชเบปเปเบเบเบฑเบ Kafka เบเบธเบเบเปเปเบกเบนเบเปเบเบทเปเบญเบเบเบปเปเบเบเบตเปเปเบเปเบฎเบฑเบเบเปเบงเบเปเบเบทเปเบญเบเปเบ
SELECT * FROM table_name
. - เบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเปเบกเปเบโเบชเปเบฒโเปเบฅเบฑเบโ, เบเบปเบงโเปเบเบทเปเบญเบกโเบเปเปโเปเบเบปเปเบฒโเปเบโเปเบโเบฎเบนเบโเปเบเบโเบเบฒเบโเบญเปเบฒเบโเบเบฒเบโเบเปเบฝเบโเปเบเบโเบเบฒเบโเปเบเบฅโเป PostgreSQL WALโ.
เบเปเบฝเบงโเบเบฑเบโเบเบฒเบโเปเบฅเบทเบญเบโเบเบตเปโเบเปเบฒโเปเบเปโ:
-
name
โ เบเบทเปโเบเบญเบโเบเบปเบงโเปเบเบทเปเบญเบกโเบเปเปโเบเบตเปโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบญเบฐโเบเบดโเบเบฒเบโเบเปเบฒเบโเบฅเบธเปเบกโเบเบตเปโเปเบเปโเบเบทเบโเบเปเบฒโเปเบเปโ; เปเบเบญเบฐเบเบฒเบเบปเบ, เบเบทเปเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป (i. e. เปเบเบดเปเบเบชเบฐเบเบฒเบเบฐ / restart / เบเบฑเบเบเบธเบเบเบฒเบเบเบฑเปเบเบเปเบฒ) เบเปเบฒเบ Kafka Connect REST API; -
connector.class
โ เบซเปเบญเบเบฎเบฝเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป DBMS เบเบตเปเบเบฐเปเบเปเปเบเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเบเบณเบเบปเบเบเปเบฒ; -
plugin.name
เปเบกเปเบเบเบทเปเบเบญเบ plugin เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบเบเบญเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฅเป WAL. เบกเบตเปเบซเปเปเบฅเบทเบญเบwal2json
,decoderbuffs
ะธpgoutput
. เบชเบญเบเบญเบฑเบเบเปเบฒเบญเบดเบเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบเบดเบเบเบฑเปเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเปเบ DBMS, เปเบฅเบฐpgoutput
เบชเปเบฒเบฅเบฑเบ PostgreSQL เบฎเบธเปเบ 10 เปเบฅเบฐเบชเบนเบเบเบงเปเบฒเบเปเปเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบซเบกเบนเบเปเบเปเปเบเบตเปเบกเปเบเบตเบก; -
database.*
โ เบเบฒเบโเปเบฅเบทเบญเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเปเบเบทเปเบญเบกโเบเปเปโเบเบฑเบโเบเบฒเบโเบเปเปโเบกเบนเบโ, เบเปเบญเบโเบเบตเปโdatabase.server.name
- เบเบทเปเบเบญเบเบเบปเบงเบขเปเบฒเบ PostgreSQL เบเบตเปเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบเบทเปเบเบญเบเบซเบปเบงเบเปเปเปเบเบเบธเปเบก Kafka; -
table.include.list
- เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบ; เบกเบญเบเปเบซเปเปเบเบฎเบนเบเปเบเบschema.table_name
; เบเปเปเบชเบฒเบกเบฒเบเปเบเปเบฎเปเบงเบกเบเบฑเบเบเบฑเบtable.exclude.list
; -
heartbeat.interval.ms
โ เปเบฅเบเบฐเบซเปเบฒเบ (เปเบเบฑเบ milliseconds) เบเบตเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบชเบปเปเบเบเปเปเบเบงเบฒเบกเบซเบปเบงเปเบเปเบเบฑเปเบเปเบเบซเบฒเบซเบปเบงเบเปเปเบเบดเปเบชเบ; -
heartbeat.action.query
- เบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบเบตเปโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเปเบโเปเบงโเบฅเบฒโเบเบตเปโเบชเบปเปเบโเบเปเปโเบเบงเบฒเบกโเปเบเบฑเปเบโเบเบญเบโเบซเบปเบงโเปเบโเปเบเปโเบฅเบฐโเบเบปเบ (เบเบฒเบโเปเบฅเบทเบญเบโเบเบตเปโเปเบเปโเบเบฒโเบเบปเบโเบเบฑเปเบโเปเบเปโเบชเบฐโเบเบฑเบ 1.1โ)โ; -
slot.name
โ เบเบทเปเบเบญเบเบเปเบญเบ replication เบเบตเปเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป; publication.name
- เบเบทเปpublications เปเบ PostgreSQL เบเบตเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบเป. เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบฑเบเบเปเปเบกเบต, Debezium เบเบฐเบเบฐเบเบฒเบเบฒเบกเบชเปเบฒเบเบกเบฑเบ. เบเปเบฒเบเบนเปเปเบเปเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบเบฑเปเบเบเปเปเบกเบตเบชเบดเบเบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเป, เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบญเบญเบเบเปเบงเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ;-
transforms
เบเปเบฒเบเบปเบเบงเบดเบเบตเบเบฒเบเบเปเบฝเบเบเบทเปเบเบญเบเบซเบปเบงเบเปเปเปเบเบปเปเบฒเบซเบกเบฒเบเบเบตเปเปเบเปเบเบญเบ:-
transforms.AddPrefix.type
เบเบตเปเบเบญเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบชเบณเบเบงเบเบเบปเบเบเบฐเบเบด; -
transforms.AddPrefix.regex
โ เปเปเบฒเบเบฒเบเบเบตเปเบเบทเปเบเบญเบเบซเบปเบงเบเปเปเปเบเบปเปเบฒเปเบฒเบเบเบทเบเบเบณเบเบปเบเบเบทเบเปเปเป; -
transforms.AddPrefix.replacement
- เบเบปเบเบเบฑเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเบทเบเปเบซเบกเป.
-
เปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบฑเปเบเบเบญเบเบซเบปเบงเปเบเปเบฅเบฐเบเบฒเบเบซเบฑเบเบเปเบฝเบ
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบชเบปเปเบเบเปเปเบกเบนเบเปเบเบซเบฒ Kafka เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบธเบฅเบฐเบเปเบฒเบเบตเปเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ, เปเบฅเบฐเบเบฝเบ LSN เบเบญเบเบกเบฑเบ (Log Sequence Number) เปเบชเปเบซเบปเบงเบเปเปเบเบฒเบเบเปเบฅเบดเบเบฒเบ offset
. เปเบเปเบเบฐเปเบเบตเบเบซเบเบฑเบเบเบถเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบทเบเบเบฑเปเบเบเปเบฒเปเบซเปเบญเปเบฒเบเบเปเปเปเบกเปเบเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเปเบปเบ, เปเบเปเบกเบตเบเบฝเบเบชเปเบงเบเปเบถเปเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเบเบญเบเบกเบฑเบเปเบเบปเปเบฒเบเบฑเปเบ (เบเปเปเบกเบนเบเปเบเบเบทเบเบญเบฑเบเปเบเบเปเบฅเบทเปเบญเบเป)?
- เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบญเปเบฒเบเปเบเบฅเป WAL เปเบฅเบฐเบเปเปเบเบงเบเบเบปเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเปเบเบเบงเบเบกเบฑเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบกเบฑเบเบเบดเบเบเบฒเบก.
- เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเบเบฐเบเปเปเบเบฑเบเบเบธเบเบเปเบฒเปเบซเบเปเบเบเบฐเบเบธเบเบฑเบเบเบญเบเบกเบฑเบเบเปเปเบงเปเบฒเบเบฐเบขเบนเปเปเบเบซเบปเบงเบเปเปเบซเบผเบทเปเบเบเปเบญเบ replication.
- เบเบตเป, เปเบเบเบฒเบเบเบฑเบเบเบฑเบ, เบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบฅเป WAL "เบเบดเบ" เปเบเปเบเปเบเปเบฅเบฐเบญเบฒเบเบเบฐเบซเบกเบปเบเบเบทเปเบเบเบตเปเบเบดเบ.
เปเบฅเบฐเปเบเบเบตเปเบเบตเปเบเบฒเบเปเบฅเบทเบญเบเบกเบฒเบซเบฒเบเบนเปเปเบ. heartbeat.interval.ms
ะธ heartbeat.action.query
. เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเปเบฅเบทเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบฑเบเบเบนเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเปเบฝเบเปเบเบเบเปเปเบกเบนเบเปเบเบเบฒเบเบฐเบฅเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบเบเบตเปเบเปเปเบเบงเบฒเบกเบซเบปเบงเปเบเบเบทเบเบชเบปเปเบ. เบเบฑเปเบเบเบฑเปเบ, LSN เบเบตเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฑเปเบเบขเบนเปเปเบเบเบฐเบเบธเบเบฑเบ (เบขเบนเปเปเบเบเปเบญเบ replication) เปเบเปเบเบทเบเบเบฑเบเบเบธเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเป DBMS เปเบญเบปเบฒเปเบเบฅเป WAL เบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบญเบญเบ. เบชเปเบฒเบฅเบฑเบเบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเปเบฎเบฑเบเบงเบฝเบ, เปเบเบดเปเบ
เบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเบเบตเปเบชเบปเบกเบเบงเบเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบปเบเปเบเบขเปเบฒเบเปเบเปเบเบดเบเปเบกเปเบ transforms
. เปเบเบดเบเปเบกเปเบเบงเปเบฒเบกเบฑเบเบกเบตเบเบงเบฒเบกเบชเบฐเบเบงเบเบชเบฐเบเบฒเบเปเบฅเบฐเบเบงเบฒเบกเบเบฒเบกเบซเบผเบฒเบเบเบงเปเบฒ ...
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, Debezium เบชเปเบฒเบเบซเบปเบงเบเปเปเปเบเบเปเบเปเบเบฐเปเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเบทเปเบเปเปเปเบเบเบตเป: serverName.schemaName.tableName
. เบเบตเปเบญเบฒเบเบเบฐเบเปเปเบชเบฐเบเบงเบเบชเบฐ เปเปเบต เปเบ. เบเบฒเบเปเบฅเบทเบญเบ transforms
เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบด, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเปเบซเบเบเบฒเบเบเปเบญเบเบเบทเบเบเปเบฒเปเบเบซเบฒเบซเบปเบงเบเปเปเบเบตเปเบกเบตเบเบทเปเบชเบฐเปเบเบฒเบฐ.
เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบเบญเบเปเบเบเบฑเบ transforms
เบเปเปเปเบเบเบตเปเบเบฐเปเบเบตเบเบเบถเปเบ: เปเบซเบเบเบฒเบ CDC เบเบฑเบเบซเบกเบปเบเบเบฒเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเบเบทเบเบเบดเบเบเบฒเบกเบเบฐเปเบเบซเบฒเบซเบปเบงเบเปเปเบเบตเปเบกเบตเบเบทเป data.cdc.dbname
. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ (เปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเป), Debezium เบเบฐเบชเปเบฒเบเบซเบปเบงเบเปเปเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฒเบเบฐเบฅเบฒเบเบเบญเบเปเบเบเบเบญเบก: pg-dev.public.<table_name>
.
เบเปเปเบเปเบฒเบเบฑเบเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป
เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบชเปเบฒเบฅเบฑเบ PostgreSQL, เบกเบฑเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบเบตเปเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเปเปเปเบเบเบตเป / เบเปเปเบเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบกเบฑเบ:
- เบซเบเปเบฒเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบชเปเบฒเบฅเบฑเบ PostgreSQL เบญเบตเบเปเบชเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบฒเบเบเบญเบเบฅเบฐเบซเบฑเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ. เปเบเบฒเบฐเบชเบฐเบเบฑเปเบ เบฅเบฒเบง เบเปเปเปเบเปเบเบดเบเบเบฒเบกเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบชเปเบฒเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบ (DDL) - เบเบฒเบกเบเบงเบฒเบกเปเบซเบกเบฒเบฐเบชเบปเบก, เบเปเปเบกเบนเบเบเบตเปเบเบฐเบเปเปเบขเบนเปเปเบเบซเบปเบงเบเปเป.
- เบเบฑเบเบเบฑเปเบเปเบเปเบชเบฐเบฅเบฑเบญเบเบเบดเบ replication เบเบทเบเบเปเบฒเปเบเป, เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบกเปเบเปเบเบฑเบเปเบเปเบเป เบเบฝเบเปเบเป เบเบฑเบเบเบปเบงเบขเปเบฒเบ DBMS เบเบปเปเบเบชเบฐเบเบฑเบ.
- เบเปเบฒเบเบนเปเปเบเปเบเบฒเบเปเบเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบกเบตเบชเบดเบเบญเปเบฒเบเปเบเบปเปเบฒเบเบฑเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบญเบเบเบตเปเบเบฐเปเบเบตเบเบเบปเบงเบเบฑเปเบเบเปเบฒเบญเบดเบ, เบเปเบฒเบเบเบฐเบเปเบญเบเบชเปเบฒเบเบเปเบญเบ replication เบเปเบงเบเบเบปเบเปเบญเบเปเบฅเบฐเปเบเบตเบเปเบเปเปเบเบเบฒเบเบเปเปเบกเบนเบ.
เบเบฒเบโเบเปเบฒโเปเบเปโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ
เบชเบฐเบเบฑเปเบเปเบซเปเปเบซเบผเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบชเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเป:
curl -i -X POST -H "Accept:application/json"
-H "Content-Type:application/json" http://localhost:8083/connectors/
-d @pg-con.json
เบเบงเบโเปเบฎเบปเบฒโเบเบงเบโเบชเบญเบโเบงเปเบฒโเบเบฒเบโเบเบฒเบงโเปเบซเบผเบโเบชเปเบฒโเปเบฅเบฑเบโเบเบปเบโเปเบฅเบฐโเบเบปเบงโเปเบเบทเปเบญเบกโเบเปเปโเปเบเปโเปเบฅเบตเปเบกโเบเบปเปเบโ:
$ curl -i http://localhost:8083/connectors/pg-connector/status
HTTP/1.1 200 OK
Date: Thu, 17 Sep 2020 20:19:40 GMT
Content-Type: application/json
Content-Length: 175
Server: Jetty(9.4.20.v20190813)
{"name":"pg-connector","connector":{"state":"RUNNING","worker_id":"172.24.0.5:8083"},"tasks":[{"id":0,"state":"RUNNING","worker_id":"172.24.0.5:8083"}],"type":"source"}
เบเบตเปเบฅเบตเบ: เบกเบฑเบเบเบฑเปเบเปเบฅเปเบง เปเบฅเบฐเบเปเบญเบกเบเบตเปเบเบฐเปเบ. เบเบญเบเบเบตเปเปเบซเปเบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบฑเบเบเบนเปเบเปเบฅเบดเปเบเบเปเบฅเบฐเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ Kafka, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเปเบฅเบฐเบเปเบฝเบเบฅเบฒเบเบเบฒเบเปเบเบเบฒเบเบฐเบฅเบฒเบ:
$ kafka/bin/kafka-console-consumer.sh
--bootstrap-server kafka:9092
--from-beginning
--property print.key=true
--topic data.cdc.dbname
postgres=# insert into customers (id, first_name, last_name, email) values (1005, 'foo', 'bar', '[email protected]');
INSERT 0 1
postgres=# update customers set first_name = 'egg' where id = 1005;
UPDATE 1
เปเบเบซเบปเบงเบเปเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบตเปเบเบฐเบชเบฐเปเบเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
JSON เบเบฒเบงเบซเบผเบฒเบเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ
{
"schema":{
"type":"struct",
"fields":[
{
"type":"int32",
"optional":false,
"field":"id"
}
],
"optional":false,
"name":"data.cdc.dbname.Key"
},
"payload":{
"id":1005
}
}{
"schema":{
"type":"struct",
"fields":[
{
"type":"struct",
"fields":[
{
"type":"int32",
"optional":false,
"field":"id"
},
{
"type":"string",
"optional":false,
"field":"first_name"
},
{
"type":"string",
"optional":false,
"field":"last_name"
},
{
"type":"string",
"optional":false,
"field":"email"
}
],
"optional":true,
"name":"data.cdc.dbname.Value",
"field":"before"
},
{
"type":"struct",
"fields":[
{
"type":"int32",
"optional":false,
"field":"id"
},
{
"type":"string",
"optional":false,
"field":"first_name"
},
{
"type":"string",
"optional":false,
"field":"last_name"
},
{
"type":"string",
"optional":false,
"field":"email"
}
],
"optional":true,
"name":"data.cdc.dbname.Value",
"field":"after"
},
{
"type":"struct",
"fields":[
{
"type":"string",
"optional":false,
"field":"version"
},
{
"type":"string",
"optional":false,
"field":"connector"
},
{
"type":"string",
"optional":false,
"field":"name"
},
{
"type":"int64",
"optional":false,
"field":"ts_ms"
},
{
"type":"string",
"optional":true,
"name":"io.debezium.data.Enum",
"version":1,
"parameters":{
"allowed":"true,last,false"
},
"default":"false",
"field":"snapshot"
},
{
"type":"string",
"optional":false,
"field":"db"
},
{
"type":"string",
"optional":false,
"field":"schema"
},
{
"type":"string",
"optional":false,
"field":"table"
},
{
"type":"int64",
"optional":true,
"field":"txId"
},
{
"type":"int64",
"optional":true,
"field":"lsn"
},
{
"type":"int64",
"optional":true,
"field":"xmin"
}
],
"optional":false,
"name":"io.debezium.connector.postgresql.Source",
"field":"source"
},
{
"type":"string",
"optional":false,
"field":"op"
},
{
"type":"int64",
"optional":true,
"field":"ts_ms"
},
{
"type":"struct",
"fields":[
{
"type":"string",
"optional":false,
"field":"id"
},
{
"type":"int64",
"optional":false,
"field":"total_order"
},
{
"type":"int64",
"optional":false,
"field":"data_collection_order"
}
],
"optional":true,
"field":"transaction"
}
],
"optional":false,
"name":"data.cdc.dbname.Envelope"
},
"payload":{
"before":null,
"after":{
"id":1005,
"first_name":"foo",
"last_name":"bar",
"email":"[email protected]"
},
"source":{
"version":"1.2.3.Final",
"connector":"postgresql",
"name":"dbserver1",
"ts_ms":1600374991648,
"snapshot":"false",
"db":"postgres",
"schema":"public",
"table":"customers",
"txId":602,
"lsn":34088472,
"xmin":null
},
"op":"c",
"ts_ms":1600374991762,
"transaction":null
}
}{
"schema":{
"type":"struct",
"fields":[
{
"type":"int32",
"optional":false,
"field":"id"
}
],
"optional":false,
"name":"data.cdc.dbname.Key"
},
"payload":{
"id":1005
}
}{
"schema":{
"type":"struct",
"fields":[
{
"type":"struct",
"fields":[
{
"type":"int32",
"optional":false,
"field":"id"
},
{
"type":"string",
"optional":false,
"field":"first_name"
},
{
"type":"string",
"optional":false,
"field":"last_name"
},
{
"type":"string",
"optional":false,
"field":"email"
}
],
"optional":true,
"name":"data.cdc.dbname.Value",
"field":"before"
},
{
"type":"struct",
"fields":[
{
"type":"int32",
"optional":false,
"field":"id"
},
{
"type":"string",
"optional":false,
"field":"first_name"
},
{
"type":"string",
"optional":false,
"field":"last_name"
},
{
"type":"string",
"optional":false,
"field":"email"
}
],
"optional":true,
"name":"data.cdc.dbname.Value",
"field":"after"
},
{
"type":"struct",
"fields":[
{
"type":"string",
"optional":false,
"field":"version"
},
{
"type":"string",
"optional":false,
"field":"connector"
},
{
"type":"string",
"optional":false,
"field":"name"
},
{
"type":"int64",
"optional":false,
"field":"ts_ms"
},
{
"type":"string",
"optional":true,
"name":"io.debezium.data.Enum",
"version":1,
"parameters":{
"allowed":"true,last,false"
},
"default":"false",
"field":"snapshot"
},
{
"type":"string",
"optional":false,
"field":"db"
},
{
"type":"string",
"optional":false,
"field":"schema"
},
{
"type":"string",
"optional":false,
"field":"table"
},
{
"type":"int64",
"optional":true,
"field":"txId"
},
{
"type":"int64",
"optional":true,
"field":"lsn"
},
{
"type":"int64",
"optional":true,
"field":"xmin"
}
],
"optional":false,
"name":"io.debezium.connector.postgresql.Source",
"field":"source"
},
{
"type":"string",
"optional":false,
"field":"op"
},
{
"type":"int64",
"optional":true,
"field":"ts_ms"
},
{
"type":"struct",
"fields":[
{
"type":"string",
"optional":false,
"field":"id"
},
{
"type":"int64",
"optional":false,
"field":"total_order"
},
{
"type":"int64",
"optional":false,
"field":"data_collection_order"
}
],
"optional":true,
"field":"transaction"
}
],
"optional":false,
"name":"data.cdc.dbname.Envelope"
},
"payload":{
"before":{
"id":1005,
"first_name":"foo",
"last_name":"bar",
"email":"[email protected]"
},
"after":{
"id":1005,
"first_name":"egg",
"last_name":"bar",
"email":"[email protected]"
},
"source":{
"version":"1.2.3.Final",
"connector":"postgresql",
"name":"dbserver1",
"ts_ms":1600375609365,
"snapshot":"false",
"db":"postgres",
"schema":"public",
"table":"customers",
"txId":603,
"lsn":34089688,
"xmin":null
},
"op":"u",
"ts_ms":1600375609778,
"transaction":null
}
}
เปเบเบเบฑเบเบชเบญเบเบเปเบฅเบฐเบเบต, เบเบฑเบเบเบถเบเบเบฐเบเบญเบเบเปเบงเบเบเบธเบเปเบ (PK) เบเบญเบเบเบฑเบเบเบถเบเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เปเบฅเบฐเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเบเบฒเบเบเปเบฝเบเปเบเบ: เบชเบดเปเบเบเบตเปเบเบฑเบเบเบถเบเบเปเบญเบเปเบฅเบฐเบชเบดเปเบเบเบตเปเบกเบฑเบเบเบฒเบเปเบเบฑเบเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ.
- เปเบเบเปเบฅเบฐเบเบตเบเบญเบ
INSERT
: เบเปเบฒโเบเปเบญเบ (before
) เปเบเบปเปเบฒเบเบฑเบnull
เบเบดเบเบเบฒเบกเบเปเบงเบเบชเบฒเบเบเบตเปเปเบชเป. - เปเบเบเปเบฅเบฐเบเบตเบเบญเบ
UPDATE
: เปเบpayload.before
เบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเบฒเบเบกเบฒเบเบญเบเปเบเบงเบเบทเบเบชเบฐเปเบเบ, เปเบฅเบฐเปเบpayload.after
- เปเบซเบกเปโเบเบตเปโเบกเบตโเปเบเบทเปเบญโเปเบเปโเบเบญเบโเบเบฒเบโเบเปเบฝเบโเปเบเบโ.
2.2 MongoDB
เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเปเบเปเบเบปเบเปเบเบเบฒเบเบเปเบฒเบฅเบญเบเปเบเบ MongoDB เบกเบฒเบเบเบฐเบเบฒเบ, เบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบ oplog เบเบญเบ node เบซเบผเบฑเบ DBMS.
เบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบฅเปเบงเบชเปเบฒเบฅเบฑเบ PgSQL, เบเบตเปเบเบตเป, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบ, เปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบฒเบญเบดเบ, เบเบฒเบเบเปเบฒเบเบเปเปเบกเบนเบเบเบปเปเบเบเปเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบเปเบฝเบเปเบเบฑเบเปเบซเบกเบเบเบฒเบเบญเปเบฒเบ oplog.
เบเบปเบงเบขเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ:
{
"name": "mp-k8s-mongo-connector",
"config": {
"connector.class": "io.debezium.connector.mongodb.MongoDbConnector",
"tasks.max": "1",
"mongodb.hosts": "MainRepSet/mongo:27017",
"mongodb.name": "mongo",
"mongodb.user": "debezium",
"mongodb.password": "dbname",
"database.whitelist": "db_1,db_2",
"transforms": "AddPrefix",
"transforms.AddPrefix.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.AddPrefix.regex": "mongo.([a-zA-Z_0-9]*).([a-zA-Z_0-9]*)",
"transforms.AddPrefix.replacement": "data.cdc.mongo_$1"
}
}
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเปเปเบกเบตเบเบฒเบเปเบฅเบทเบญเบเปเบซเบกเปเปเบกเบทเปเบญเบเบฝเบเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ, เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบเปเบฒเบเบงเบเบเบญเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเปเบฅเบฐเบเปเบฒเบเปเบฒเบซเบเปเบฒเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบทเบเบซเบผเบธเบเบฅเบปเบ.
Settings transforms
เปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบเบปเบฒเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป: เบเปเบฝเบเบเบทเปเบเบญเบเบซเบปเบงเบเปเปเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฒเบเปเบเบเบเบฒเบ <server_name>.<db_name>.<collection_name>
ะฒ data.cdc.mongo_<db_name>
.
เบเบงเบฒเบกโเบเบปเบโเบเบฒเบโเบเบงเบฒเบกโเบเบดเบโเบเบฒเบโ
เบเบฑเบเบซเบฒเบเบงเบฒเบกเบเบปเบเบเบฒเบเบเปเปเบเบงเบฒเบกเบเบดเบเปเบฅเบฐเบเบงเบฒเบกเบเปเบญเบกเบชเบนเบเปเบเปเบงเบฅเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบเบกเบตเบเบงเบฒเบกเปเบเบฑเปเบเบเบถเบเบซเบผเบฒเบเบเปเบงเบฒเปเบเบปเปเบฒ - เปเบเบเบชเบฐเปเบเบฒเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเปเปเบกเบนเบเปเบฅเบฐเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒ, เปเบฅเบฐเบเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบเบเปเปเบกเบนเบเบเปเปเปเบเปเบขเบนเปเบเปเบฒเบเปเบเปเบฅเบทเปเบญเบเบเบตเป. เปเบซเปเบเบดเบเบฒเบฅเบฐเบเบฒเบชเบดเปเบเบเบตเปเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบเปเบเบซเบผเบฑเบเบเบฒเบเปเบฅเบฐเบชเบดเปเบเบเบตเปเบเบฐเปเบเบตเบเบเบถเปเบเบเบฑเบ Debezium เปเบเปเบเปเบฅเบฐเบเปเบฅเบฐเบเบต.
เบกเบตเบชเบฒเบกเบเบฒเบเปเบฅเบทเบญเบเปเบเบเบฒเบเบเบญเบเบเบปเบง:
- Kafka Connect เบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบง. เบเปเบฒ Connect เบเบทเบเบเบฑเปเบเบเปเบฒเปเบซเปเปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบฎเบนเบเปเบเบเบเบฒเบเปเบเบเบขเบฒเบ, เบเบตเปเบเปเบญเบเบเบฒเบเบเบฐเบเบฑเบเบเบฒเบเบซเบผเบฒเบเบเบปเบเปเบเบทเปเบญเบเบฑเปเบเบเปเบฒ group.id เบเบฝเบงเบเบฑเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบซเบเบถเปเบเบเบญเบเบเบงเบเปเบเบปเบฒเบฅเบปเปเบกเปเบซเบฅเบง, เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเปเปเบเบเบฐเบเบฑเบเบเบฒเบเบญเบทเปเบเปเบฅเบฐเบชเบทเบเบเปเปเบญเปเบฒเบเบเบฒเบเบเปเบฒเปเบซเบเปเบเบเบตเปเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบชเบธเบเบเปเบฒเบเปเบเบซเบปเบงเบเปเปเปเบ Kafka.
- เบเบฒเบเบชเบนเบเปเบชเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบธเปเบก Kafka. เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฝเบเปเบเปเบเบฐเบขเบธเบเบเบฒเบเบญเปเบฒเบเบขเบนเปเปเบเบเปเบฒเปเบซเบเปเบเบเบตเปเบกเบฑเบเบฅเบปเปเบกเปเบซเบฅเบงเบเบตเปเบเบฐเบชเบปเปเบเปเบเบซเบฒ Kafka เปเบฅเบฐเบเบฐเบเบฒเบเบฒเบกเบชเบปเปเบเบเบทเบเปเบเบฑเบเปเบฅเบเบฐเบเบปเบเบเปเบงเบฒเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบชเปเบฒเปเบฅเบฑเบ.
- เบเปเปเบกเบตเปเบซเบผเปเบเบเปเปเบกเบนเบ. เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบเบทเปเบญเบกเบเปเปเบเบทเบเปเปเปเบเบฑเบเปเบซเบผเปเบเบเบฒเบกเบเบฒเบเบเบณเบเบปเบเบเปเบฒ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบ 16 เบเบฐเบเบฒเบเบฒเบกเปเบเป
backoff exponential . เบซเบผเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบฅเบปเปเบกเปเบซเบฅเบงเบเบฑเปเบเบเบต 16, เบงเบฝเบเบเบฒเบเบเบฐเบเบทเบเบซเบกเบฒเบเปเบเบฑเบ เบฅเบปเปเบกเปเบซเบฅเบง เปเบฅเบฐเบกเบฑเบเบเบฐเบเปเบญเบเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบเปเบซเบกเปเบเปเบงเบเบเบปเบเปเบญเบเปเบเบเบเปเบฒเบเบเบฒเบเปเบเปเบเบญเบ Kafka Connect REST.- เปเบเบเปเบฅเบฐเบเบตเบเบญเบ PostgreSQL เบเปเปเบกเบนเบเบเบฐเบเปเปเบชเบนเบเปเบชเบ, เปเบเบฒเบฐเบงเปเบฒ เบเบฒเบโเบเปเบฒโเปเบเปโเบชเบฐโเบฅเบฑเบญเบโเบเบดเบ replication เบเบฐโเบเปเบญเบโเบเบฑเบโเบเบฒเบโเบฅเบถเบโเปเบเบฅโเป WAL เบเบตเปโเบเปเปโเปเบเปโเบญเปเบฒเบโเปเบเบโเบเบปเบงโเปเบเบทเปเบญเบกโเบเปเปโ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบกเบตเบเปเปเปเบชเบเบเบท: เบเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบทเบญเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบฅเบฐ DBMS เบเบทเบเบฅเบปเบเบเบงเบเปเบเบฑเบเปเบงเบฅเบฒเบเบปเบเบเบฒเบ, เบกเบตเปเบญเบเบฒเบเบเบตเปเบเบทเปเบเบเบตเปเบเบดเบเบเบฐเบซเบกเบปเบเปเบ, เปเบฅเบฐเบเบตเปเบญเบฒเบเบเบฐเบเปเบฒเปเบเบชเบนเปเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเบเบญเบ DBMS เบเบฑเบเบซเบกเบปเบ.
- เปเบเบเปเบฅเบฐเบเบตเบเบญเบ MySQL เปเบเบฅเป binlog เบชเบฒเบกเบฒเบเบซเบกเบธเบเปเบเปเปเบเบ DBMS เบเบปเบงเบกเบฑเบเปเบญเบเบเปเบญเบเบเบตเปเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฐเบเบทเบเบเบทเปเบเบเบน. เบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบฅเบปเปเบกเปเบซเบฅเบง, เปเบฅเบฐเบกเบฑเบเบเบฐเบเปเบญเบเบเบดเบเปเบเบตเบเปเบซเบกเปเปเบเปเบซเบกเบ snapshot เปเบเบทเปเบญเบเบเบปเปเบเปเบเบทเปเบญเบชเบทเบเบเปเปเบเบฒเบเบญเปเบฒเบเบเบฒเบ binlogs เปเบเบทเปเบญเบเบทเปเบเบเบนเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบปเบเบเบฐเบเบด.
- เบเปเบฝเบงเบเบฑเบ MongoDB. เปเบญเบเบฐเบชเบฒเบเบเปเบฒเบงเบงเปเบฒ: เบเบถเบเบเบดเบเปเบฒเบเบญเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเปเบเบเปเบฅเบฐเบเบตเบเบตเปเปเบเบฅเป log / oplog เปเบเปเบเบทเบเบฅเบถเบเบเบดเปเบกเปเบฅเบฐเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเปเปเบชเบฒเบกเบฒเบเบชเบทเบเบเปเปเบญเปเบฒเบเบเบฒเบเบเปเบฒเปเบซเบเปเบเบเบตเปเบกเบฑเบเบเบฐเปเบงเปเปเบกเปเบเบเบทเบเบฑเบเบชเปเบฒเบฅเบฑเบ DBMS เบเบฑเบเบซเบกเบปเบ. เบกเบฑเบเบขเบนเปเปเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฅเบฑเบ เบฅเบปเปเบกเปเบซเบฅเบง เปเบฅเบฐเบเบฐเบเปเบญเบเบกเบตเบเบฒเบเบเบดเบเปเบเบตเบเปเปเปเปเบเปเปเบ เบเบฒเบเบเปเบฒเบเปเบเบทเปเบญเบเบเบปเปเบ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบกเบตเบเปเปเบเบปเบเปเบงเบฑเปเบ. เบเปเบฒเบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบขเบนเปเปเบเบชเบฐเบเบฒเบเบฐเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบฑเบเปเบงเบฅเบฒเบเบปเบเบเบฒเบ (เบซเบผเบทเบเปเปเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบซเบฒเบเบปเบงเบขเปเบฒเบ MongoDB), เปเบฅเบฐ oplog เปเบเปเบเบทเบเบซเบกเบธเบเปเบเบเปเบงเบเปเบงเบฅเบฒเบเบตเป, เปเบกเบทเปเบญเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบทเบเบเบทเปเบเบเบนเบเบทเบเปเบซเบกเป, เบเบปเบงเปเบเบทเปเบญเบกเบเปเปเบเบฐเบชเบทเบเบเปเปเบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบเปเบฒเปเบซเบเปเบเบเปเบฒเบญเบดเบเบเบตเปเบกเบตเบขเบนเป. , เบเบฑเปเบเปเบกเปเบเปเบซเบเบเบปเบเบเบตเปเบเบฒเบเบเปเปเบกเบนเบเปเบ Kafka เบเปเป เบเบฐเบเบต.
เบชเบฐเบซเบฅเบธเบ
Debezium เปเบกเปเบเบเบฐเบชเบปเบเบเบฒเบเบเปเบฒเบญเบดเบเบเบญเบเบเปเบญเบเบเบฑเบเบฅเบฐเบเบปเบ CDC เปเบฅเบฐเปเบเปเบฎเบฑเบเบเบปเบเบเบตเปเบเบเบฅเบงเบก. เปเบเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒเบงโเปเบเปโเปเบซเปโเบชเบดเบโเบเบปเบโเบเบฒเบโเบชเบฐโเบซเบเบฑเบโเบชเบฐโเบซเบเบนเบโเบเบญเบ DBMS เบเบปเปเบโเบเปโ, เบเบงเบฒเบกโเบเปเบฒเบโเบเบญเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ, เบเบฒเบโเบชเบฐโเบซเบเบฑเบโเบชเบฐโเบซเบเบนเบโเบเบฒเบโเปเบเบฑเบโเบเบธเปเบกโเปเบฅเบฐโเบเบฒเบโเปเบเบทเปเบญเบโเปเบซเบงโเบเบญเบโเบเบธเบกโเบเบปเบโ. เบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบชเบปเบเปเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบฐเบเปเบฒเปเบซเปเบเปเบฒเบเบญเปเบฒเบเบเบนเปเบกเบทเบชเปเบฒเบฅเบฑเบ
เปเบกเบทเปเบญเบเบฝเบเบเบฝเบเบเบฑเบเบเบปเบงเปเบเบทเปเบญเบกเบเปเป JDBC เบชเปเบฒเบฅเบฑเบ Kafka Connect, เบเบฐเปเบซเบเบเบเบปเปเบเบเปเบเบญเบ Debezium เปเบกเปเบเบงเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเบทเบเบญเปเบฒเบเบเบฒเบเบเบฑเบเบเบถเบ DBMS, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเปเบงเบเบเบงเบฒเบกเบฅเปเบฒเบเปเบฒเบซเบเปเบญเบเบเบตเปเบชเบธเบ. JDBC Connector (เบชเบฐเบซเบเบญเบเปเบซเปเปเบเบ Kafka Connect) เบชเบญเบเบเบฒเบกเบเบฒเบเบฐเบฅเบฒเบเบเบดเบเบเบฒเบกเปเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบปเบเบเบตเปเปเบฅเบฐ (เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฝเบงเบเบฑเบ) เบเปเปเบชเปเบฒเบเบเปเปเบเบงเบฒเบกเปเบกเบทเปเบญเบเปเปเบกเบนเบเบเบทเบเบฅเบถเบ (เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบญเบเบเบฒเบกเบเปเปเบกเบนเบเบเบตเปเบเปเปเบกเบตเบขเบนเปเบเปเบญเบเบเบฑเปเบเปเบเปเปเบเบงเปเบ?).
เปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเปเบเปเบชเปเบเบฑเบเบงเบดเบเบตเปเบเปเปเบเบเปเปเปเบเบเบตเป (เบเบญเบเปเบซเบเบทเบญเบเบฒเบ Debezium):
-
JDBC Connector Kafka Connect - เบเบฒเบเบงเบดเบเบตเปเบเปเปเบ MySQL เปเบเบปเปเบฒเบเบฑเปเบ:
-
Oracle Golden Gate , เปเบเปเบเบตเปเปเบกเปเบ "เบเบฐเปเบเบเบเปเปเบฒเบซเบเบฑเบ".
PS
เบญเปเบฒเบเบเบฑเบเบขเบนเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- ยซ
เบเปเบฒเบเบปเบเบเบฐเบซเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบธเปเบก Kafka เปเบ Kubernetes " - ยซ
เปเบฅเบทเปเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบตเบงเบดเบเบเบฐเบเปเบฒเบงเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ SRE. เบเบฒเบเบเบต 2 " - ยซ
เบเบฒเบเบฅเบงเบกเบชเบฑเปเบเปเบเบญเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบ PostgreSQL เบชเปเบฒเบฅเบฑเบ Kubernetes, เบเบฒเบเปเบฅเบทเบญเบเปเบฅเบฐเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ ".
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com