āĻāĻŽāĻžāĻ° āĻāĻžāĻā§, āĻāĻŽāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ / āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻŖā§āĻ¯āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ, āĻ¯āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨-āĻāĻžāĻˇā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻā§āĻŦ āĻāĻŽāĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§, āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻ¸āĻžāĻŽā§āĻĒā§āĻ°āĻ¤āĻŋāĻ āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻļā§āĻ¨ā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦ, āĻ¯āĻāĻ¨ āĻāĻŽāĻžāĻā§ āĻĻā§āĻāĻŋ āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ DBMSs (PostgreSQL āĻāĻŦāĻ MongoDB) āĻĨā§āĻā§ Debezium āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ CDC āĻāĻā§āĻ¨ā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻŋ āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ, āĻ¯āĻž āĻāĻžāĻā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ
āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻŦā§āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ Debezium āĻāĻŦāĻ CDC āĻāĻŋ?
āĻāĻ
āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻ¸āĻŋāĻĄāĻŋāĻ¸āĻŋāĻā§ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻŋ (āĻ¯āĻāĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧā§), āĻ¤āĻŦā§ āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŽ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ, āĻāĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻž āĻ¸āĻš āĻ¸āĻžāĻ°āĻŋ āĻ¸ā§āĻ¤āĻ°ā§ āĻĄā§āĻāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤ CDC āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻļā§āĻˇ āĻĻā§āĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŽāĻĄā§āĻ˛ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻˇā§āĻŽāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦā§āĻ°ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ āĻ¨ā§āĻā§āĻŽāĻŋāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻā§āĻ˛ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻĄā§āĻāĻžāĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻĄā§āĻāĻž āĻāĻ¤ā§āĻ¸ā§āĻ° āĻāĻĒāĻ° āĻĒā§āĻ°āĻāĻžāĻŦ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĄā§āĻāĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻĨā§āĻā§ āĻ¨āĻ¯āĻŧ, āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻĄā§āĻŦā§āĻāĻŋāĻ¯āĻŧāĻžāĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§
Debezium āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻ āĻ¸āĻšāĻ āĻ¸ā§āĻāĻŋāĻŽā§ āĻ¨ā§āĻŽā§ āĻāĻ¸ā§:
DBMS (āĻĄā§āĻāĻž āĻā§āĻ¸ āĻšāĻŋāĻ¸ā§āĻŦā§) â āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ â āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻāĻžāĻĢāĻāĻž â āĻā§āĻā§āĻ¤āĻž
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽ āĻĻā§āĻŦ:
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻŋ āĻāĻ āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§, āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻŋāĻ¨ā§āĻ¨: āĻāĻĒāĻ¨āĻžāĻ° āĻĄā§āĻāĻž āĻ˛ā§āĻ āĻāĻ°āĻžāĻ āĻāĻ°āĻž (āĻāĻĒāĻ°ā§āĻ° āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻļā§āĻˇ āĻ˛āĻŋāĻā§āĻ) Debezium āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨āĻ¯āĻŧāĨ¤ Apache Kafka-āĻ¤ā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ:
- āĻā§āĻ¯āĻžāĻļā§ āĻĨā§āĻā§ āĻ āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ;
- āĻŦāĻŋāĻā§āĻāĻĒā§āĻ¤āĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§;
- āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ¸ā§āĻāĻ āĻāĻĒāĻĄā§āĻ;
- āĻāĻŋāĻā§ āĻ§āĻ°āĻ¨ā§āĻ° āĻ āĻĄāĻŋāĻ āĻ˛āĻ;
- ...
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻāĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨/āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļāĻā§āĻ¤ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻŦā§, āĻ¯āĻž āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻāĻŦāĻ āĻŽāĻžāĻĒāĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŽāĻžāĻ¨ - āĻĄā§āĻāĻž - āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
- āĻĄā§āĻāĻž āĻā§āĻ¸, āĻ¯āĻž MySQL āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 5.7 āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, PostgreSQL 9.6+, MongoDB 3.2+ (
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž ); - āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°
- āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ (āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.x, 2.x);
- āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž Debezium āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§.
āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ DBMS āĻāĻŦāĻ Apache Kafka āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¯āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŦāĻā§āĻ¸ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻļā§āĻˇ āĻĻā§āĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻŦāĨ¤
0. āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ
āĻāĻāĻžāĻ¨ā§ āĻāĻŦāĻ āĻĒāĻ°ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ Debezium āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻĄāĻāĻžāĻ° āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻĒā§āĻ°āĻ¸āĻā§āĻā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻĢāĻžāĻāĻ˛ (āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§) āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¨āĻĢā§āĻ˛ā§āĻ¯āĻŧā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻ¨ā§āĻā§āĻāĻ°ā§āĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ plugin.path
āĻ
āĻĨāĻŦāĻž āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻ CLASSPATH
. āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻāĻ°ā§āĻŽā§ āĻāĻŦāĻ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻ°ā§āĻŽā§ āĻ¸ā§āĻāĻžāĻ°ā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄā§ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻāĻžāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻā§āĻ¨
āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ Debeizum āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°ā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§āĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ¸ā§āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ:
1. āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž
Apache Kafka āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻāĻ°āĻ¤ā§, āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨:
- āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸,
- āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻ¨āĻžāĻŽ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻŋāĻā§āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻŦā§,
- āĻ¯ā§ āĻā§āĻ°ā§āĻĒā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻ˛āĻā§ āĻ¤āĻžāĻ° āĻ¨āĻžāĻŽ (āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻŽā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§)āĨ¤
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ - āĻāĻāĻŋāĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻ¤ā§ āĻāĻ˛ā§āĻ¨ āĻāĻŦāĻŋāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻŋāĻ
docker pull debezium/connect
āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻ¸ā§āĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
-
BOOTSTRAP_SERVERS=kafka-1:9092,kafka-2:9092,kafka-3:9092
- āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§ āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž; -
OFFSET_STORAGE_TOPIC=connector-offsets
â āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ; -
CONNECT_STATUS_STORAGE_TOPIC=connector-status
- āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻ° āĻāĻžāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ; -
CONFIG_STORAGE_TOPIC=connector-config
- āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĄā§āĻāĻž āĻāĻŦāĻ āĻāĻ° āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ; -
GROUP_ID=1
â āĻļā§āĻ°āĻŽāĻŋāĻāĻĻā§āĻ° āĻā§āĻ°ā§āĻĒā§āĻ° āĻļāĻ¨āĻžāĻā§āĻ¤āĻāĻžāĻ°ā§ āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻžāĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§; āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž) āĻļāĻžāĻ¸āĻ¨
āĻāĻŽāĻ°āĻž āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻ§āĻžāĻ°āĻ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ:
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
āĻ āĻā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨ā§āĻ
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, Debezium JSON āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻĄā§āĻāĻž āĻ˛ā§āĻā§, āĻ¯āĻž āĻ¸ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŦāĻā§āĻ¸ āĻāĻŦāĻ āĻ
āĻ˛ā§āĻĒ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻžāĻ°ā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻĄā§āĻāĻžāĻŦā§āĻ¸ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ JSON āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻ āĻāĻ°āĻž
āĻ
āĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
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
āĻ āĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§ - āĻāĻ°āĻ, āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž JSON āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
2. āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ¨āĻŋāĻā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻž āĻā§āĻ¸ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻŦā§āĨ¤
āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ DBMS-āĻāĻ° āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŋ: PostgreSQL āĻāĻŦāĻ MongoDB, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻāĻā§ āĻāĻŦāĻ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ (āĻā§āĻ āĻšāĻ˛ā§āĻ, āĻ¤āĻŦā§ āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¤āĻžā§āĻĒāĻ°ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ!)
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ JSON āĻ¸ā§āĻŦāĻ°āĻ˛āĻŋāĻĒāĻŋāĻ¤ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ POST āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
2.1āĨ¤ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛
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"
}
}
āĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¨ā§āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻļ āĻ¸āĻšāĻ:
- āĻĒā§āĻ°āĻĨāĻŽ āĻļā§āĻ°ā§āĻ¤ā§, āĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻŽā§āĻĄā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ, āĻļāĻ°ā§āĻ¤āĻ¸āĻžāĻĒā§āĻā§āĻˇā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§āĻāĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻ āĻāĻžāĻĢāĻāĻžāĻā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻā§āĻā§
SELECT * FROM table_name
. - āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ PostgreSQL WAL āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻŽā§āĻĄā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§āĨ¤
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§:
-
name
â āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§; āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§, āĻāĻ āĻ¨āĻžāĻŽāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ REST API-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§ (āĻ āĻ°ā§āĻĨāĻžā§ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĻā§āĻā§āĻ¨ / āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨ / āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§āĻ¨); -
connector.class
â āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ DBMS āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻļā§āĻ°ā§āĻŖā§; -
plugin.name
WAL āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻĄā§āĻāĻžāĻ° āĻ¯ā§āĻā§āĻ¤āĻŋāĻ āĻĄāĻŋāĻā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋāĻ° āĻ¨āĻžāĻŽāĨ¤ āĻĨā§āĻā§ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§wal2json
,decoderbuffs
иpgoutput
. āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ā§ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻŦāĻpgoutput
PostgreSQL āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 10 āĻāĻŦāĻ āĻāĻā§āĻāĻ¤āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž; -
database.*
â āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ, āĻ¯ā§āĻāĻžāĻ¨ā§database.server.name
- āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻ¨āĻžāĻŽ āĻāĻ āĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ PostgreSQL āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¨āĻžāĻŽ; -
table.include.list
- āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ; āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻĻā§āĻāĻ¯āĻŧāĻžschema.table_name
; āĻ¸āĻā§āĻā§ āĻāĻāĻ¸āĻā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻžtable.exclude.list
; -
heartbeat.interval.ms
- āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ (āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§) āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻšāĻžāĻ°ā§āĻāĻŦāĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧ; -
heartbeat.action.query
- āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻšāĻžāĻ°ā§āĻāĻŦāĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§ (āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.1 āĻĨā§āĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§); -
slot.name
â āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻ˛āĻā§āĻ° āĻ¨āĻžāĻŽ āĻ¯āĻž āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻŦā§; publication.name
- āĻ¨āĻžāĻŽāĻĒā§āĻ°āĻāĻžāĻļāĻ¨ PostgreSQL-āĻ āĻ¯āĻž āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻž āĻĨāĻžāĻā§, Debezium āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĨ¤ āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ¨āĻž āĻĨāĻžāĻā§ āĻ¤āĻŦā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻš āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°āĻŦā§;-
transforms
āĻ˛āĻā§āĻˇā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻ¨āĻžāĻŽ āĻ āĻŋāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§:-
transforms.AddPrefix.type
āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻ°ā§āĻā§āĻ˛āĻžāĻ° āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ; -
transforms.AddPrefix.regex
â āĻŽā§āĻā§āĻļ āĻ¯āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ˛āĻā§āĻˇā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻ¨āĻžāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§; -
transforms.AddPrefix.replacement
- āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻŽāĻ°āĻž āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŋāĨ¤
-
āĻšāĻžāĻ°ā§āĻāĻŦāĻŋāĻ āĻāĻŦāĻ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻĢāĻāĻžāĻ° āĻāĻžāĻā§ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ¤āĻžāĻ° LSN (āĻ˛āĻ āĻ¸āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸ āĻ¨āĻŽā§āĻŦāĻ°) āĻ˛āĻŋāĻā§ āĻĻā§āĻ¯āĻŧāĨ¤ offset
. āĻ¤āĻŦā§ āĻāĻŋ āĻšāĻŦā§ āĻ¯āĻĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻžāĻ° āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ
āĻāĻļ (āĻ¯āĻžāĻ¤ā§ āĻĄā§āĻāĻž āĻāĻĻāĻžāĻāĻŋā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ)?
- āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ WAL āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧāĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻŦā§ āĻ¨āĻž āĻ¯ā§ āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻā§āĻˇāĻŖ āĻāĻ°ā§ā§ˇ
- āĻ āĻ¤āĻāĻŦ, āĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻŦāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻ˛āĻā§ āĻ¤āĻžāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤
- āĻāĻ° āĻĢāĻ˛ā§, WAL āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻĄāĻŋāĻ¸ā§āĻā§ "āĻāĻāĻā§" āĻ¯āĻžāĻŦā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ āĻĢā§āĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻāĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻ¸ā§āĨ¤ heartbeat.interval.ms
и heartbeat.action.query
. āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ āĻā§āĻĄāĻŧāĻžāĻ¯āĻŧ āĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻšāĻžāĻ°ā§āĻāĻŦāĻŋāĻ āĻŽā§āĻ¸ā§āĻ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ˛ā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻā§āĻŦāĻŋāĻ˛ā§ āĻĄā§āĻāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻ¯ā§ LSNāĻāĻŋāĻ¤ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ (āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻ˛āĻā§) āĻ¤āĻž āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ DBMS āĻā§ WAL āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻž āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻā§ˇ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĻā§āĻā§āĻ¨
āĻāĻ¨āĻŋāĻˇā§āĻ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯ āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻ¯āĻŧ transforms
. āĻ¯āĻĻāĻŋāĻ āĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ āĻ¸ā§āĻ¨ā§āĻĻāĻ°ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ ...
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, Debezium āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻžāĻŽāĻāĻ°āĻŖ āĻ¨ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§: serverName.schemaName.tableName
. āĻāĻāĻŋ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ
āĻĒāĻļāĻ¨ transforms
āĻ°ā§āĻā§āĻ˛āĻžāĻ° āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻžāĻ° āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ°āĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ transforms
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻāĻŋ āĻāĻā§: āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ CDC āĻāĻā§āĻ¨ā§āĻ āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻĒāĻŋāĻā§ āĻ¯āĻžāĻŦā§ data.cdc.dbname
. āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ (āĻāĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻžāĻĄāĻŧāĻž), Debezium āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻĢāĻ°ā§āĻŽā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§: pg-dev.public.<table_name>
.
āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž
PostgreSQL āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻļā§āĻˇā§, āĻāĻāĻŋāĻ° āĻāĻžāĻā§āĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ / āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻž āĻŽā§āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨:
- PostgreSQL-āĻāĻ° āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ˛āĻāĻŋāĻā§āĻ¯āĻžāĻ˛ āĻĄāĻŋāĻā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻ¤āĻžāĻ āĻ¸ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻ āĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°ā§ āĻ¨āĻž (DDL) - āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻ āĻĄā§āĻāĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĨāĻžāĻāĻŦā§ āĻ¨āĻžāĨ¤
- āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻ˛āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻāĻ¯ā§āĻ āĻ¸āĻŽā§āĻāĻŦ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻĄāĻŋāĻŦāĻŋāĻāĻŽāĻāĻ¸ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĨ¤
- āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¯āĻĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻĄāĻŧāĻžāĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻā§āĻā§āĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻ˛āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻ¸ā§āĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ¤ā§ āĻ˛ā§āĻĄ āĻāĻ°āĻŋ:
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/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 āĻŽāĻā§āĻā§āĻĄāĻŋāĻŦāĻŋ
āĻāĻ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻāĻŋ DBMS āĻĒā§āĻ°āĻžāĻāĻŽāĻžāĻ°āĻŋ āĻ¨ā§āĻĄā§āĻ° āĻ āĻĒāĻ˛āĻ āĻĨā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒāĻĄāĻŧāĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ MongoDB āĻ°ā§āĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻāĻžāĻŦā§ PgSQL-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§, āĻāĻāĻžāĻ¨ā§āĻ, āĻĒā§āĻ°āĻĨāĻŽ āĻļā§āĻ°ā§āĻ¤ā§, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ āĻĒāĻ˛āĻ āĻ°āĻŋāĻĄāĻŋāĻ āĻŽā§āĻĄā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĨ¤
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
{
"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"
}
}
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻā§āĻ¨ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨ā§āĻ, āĻ¤āĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ¸āĻ°ā§āĻāĻā§āĻ˛āĻŋ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ¸ā§āĻāĻŋāĻāĻ¸ transforms
āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻžāĻ āĻāĻ°ā§: āĻ¸ā§āĻāĻŋāĻŽ āĻĨā§āĻā§ āĻāĻžāĻ°ā§āĻā§āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻ¨āĻžāĻŽ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨ <server_name>.<db_name>.<collection_name>
в data.cdc.mongo_<db_name>
.
āĻĻā§āĻˇ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻšāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻāĻŦāĻ āĻāĻā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻā§āĻ° āĻā§āĻ¯āĻŧā§ āĻāĻ°āĻ āĻ¤ā§āĻŦā§āĻ° - āĻŦāĻŋāĻļā§āĻˇāĻ¤ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻž āĻāĻŦāĻ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŋ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻžāĻāĻĄāĻ˛āĻžāĻāĻ¨ā§ āĻ¨ā§āĻāĨ¤ āĻāĻ¸ā§āĻ¨ āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§ āĻā§ āĻā§āĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĄā§āĻŦā§āĻāĻŋāĻ¯āĻŧāĻžāĻŽā§āĻ° āĻā§ āĻšāĻŦā§ āĻ¤āĻž āĻĻā§āĻā§āĻ¨āĨ¤
āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ āĻĒā§āĻ-āĻāĻāĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻā§:
- āĻāĻžāĻĢāĻāĻž āĻ¸āĻāĻ¯ā§āĻ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž. āĻ¯āĻĻāĻŋ āĻāĻžāĻ¨ā§āĻā§āĻ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻā§āĻĄ āĻŽā§āĻĄā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻ group.id āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ, āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ¯ āĻāĻ°ā§āĻŽā§āĻ° āĻāĻĒāĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻšāĻŦā§ āĻāĻŦāĻ Kafka āĻŦāĻŋāĻˇāĻ¯āĻŧā§āĻ° āĻļā§āĻˇ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§āĨ¤
- āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨. āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻāĻŋ āĻāĻžāĻĢāĻāĻžāĻā§ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻāĻ¯āĻŧāĻž āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻĒāĻĄāĻŧāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻ¸āĻĢāĻ˛ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ°āĻŽā§ āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĨ¤
- āĻĄā§āĻāĻž āĻā§āĻ¸ āĻ
āĻ¨ā§āĻĒāĻ˛āĻŦā§āĻ§. āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻšāĻ˛ 16āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž
āĻ¸ā§āĻāĻā§āĻ¯āĻŧ āĻŦā§āĻ¯āĻžāĻāĻ āĻĢ . 16 āĻ¤āĻŽ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĒāĻ°ā§, āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻŦā§ā§ˇ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ REST āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ°āĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤- āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°āĻŋ āĻĄā§āĻāĻž āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻŦā§ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻ¸ā§āĻ˛āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŽāĻ¨ WAL āĻĢāĻžāĻāĻ˛ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ°ā§āĻ§ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻāĻŋ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĻāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§: āĻ¯āĻĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻāĻŦāĻ DBMS-āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¸āĻāĻ¯ā§āĻ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ āĻĢā§āĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ DBMS-āĻāĻ° āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
- āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŽāĻžāĻāĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻ¸āĻāĻ¯ā§āĻ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻā§ binlog āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ DBMS āĻ¨āĻŋāĻā§āĻ āĻā§āĻ°āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ° āĻĢāĻ˛ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻāĻ˛ā§ āĻ¯āĻžāĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦāĻŋāĻ¨āĻ˛āĻ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ āĻŽā§āĻĄā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻāĻĒāĻ° MongoDB. āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧā§āĻā§: āĻ˛āĻ/āĻ
āĻĒāĻ˛āĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻāĻ°āĻŖ āĻāĻŦāĻ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ¯ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž āĻ¤āĻž āĻ¸āĻŦ DBMS-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĨ¤ āĻāĻāĻž āĻ¸āĻ¤ā§āĻ¯ āĻ¯ā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ°āĻžāĻˇā§āĻā§āĻ° āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻāĻŦāĻ āĻŽā§āĻĄā§ āĻāĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ.
āĻ¯āĻžāĻāĻšā§āĻ, āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻāĻā§. āĻ¯āĻĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻāĻŋ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻ¯ā§āĻ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¯āĻŧ āĻĨāĻžāĻā§ (āĻŦāĻž āĻŽāĻā§āĻā§āĻĄāĻŋāĻŦāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĒā§āĻāĻāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻŋ), āĻāĻŦāĻ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ āĻĒāĻ˛āĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¤āĻāĻ¨ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻž āĻšāĻ˛ā§, āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻļāĻžāĻ¨ā§āĻ¤āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒāĻĄāĻŧāĻ¤ā§ āĻĨāĻžāĻāĻŦā§āĨ¤ , āĻ¯ā§ āĻāĻžāĻ°āĻŖā§ āĻāĻžāĻĢāĻāĻžāĻ° āĻāĻŋāĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¨āĻž āĻāĻāĻžāĻ¤ āĻāĻ°āĻŦā§
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
Debezium āĻšāĻ˛ CDC āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻāĻŋāĻā§āĻāĻ¤āĻž āĻāĻŦāĻ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻāĻāĻžāĻŦā§ āĻā§āĻŦāĻ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻāĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ DBMS-āĻāĻ° āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻšāĻāĻ¤āĻž, āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°āĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧāĻā§ āĻā§āĻˇ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻāĻā§āĻ°āĻšā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻāĻŋ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻāĻĄāĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§āĻ¨
āĻāĻžāĻĢāĻāĻž āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ JDBC āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, Debezium-āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ āĻ¯ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ DBMS āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤ JDBC āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ (āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž) āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°ā§ āĻāĻŦāĻ (āĻāĻāĻ āĻāĻžāĻ°āĻŖā§) āĻĄā§āĻāĻž āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¨āĻž (āĻ¯ā§āĻāĻŋ āĻ¨ā§āĻ āĻāĻŽāĻ¨ āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨?)āĨ¤
āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻĄā§āĻŦā§āĻāĻŋāĻ¯āĻŧāĻžāĻŽ āĻāĻžāĻĄāĻŧāĻžāĻ):
-
JDBC āĻāĻžāĻ¨ā§āĻā§āĻāĻ° āĻāĻžāĻĢāĻāĻž āĻāĻžāĻ¨ā§āĻā§āĻ - āĻāĻŋāĻā§ MySQL-āĻļā§āĻ§ā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨:
-
āĻāĻ°āĻžāĻāĻ˛ āĻā§āĻ˛ā§āĻĄā§āĻ¨āĻā§āĻ , āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨ "āĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻ"āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- ÂĢ
Kubernetes-āĻ āĻāĻāĻāĻŋ āĻāĻžāĻĢāĻāĻž āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨ "; - ÂĢ
āĻāĻŽāĻžāĻĻā§āĻ° SRE āĻĻā§āĻ¨āĻ¨ā§āĻĻāĻŋāĻ¨ āĻā§āĻŦāĻ¨ āĻĨā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻāĻ˛ā§āĻĒ. āĻ āĻāĻļ ā§¨ "; - ÂĢ
Kubernetes, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻāĻ¨ā§āĻĻ āĻāĻŦāĻ āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ PostgreSQL āĻŦāĻŋāĻŦā§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com