Sobes.tech
Middle
222

Debezium дегеніміз не?

AI-дан жауап

sobes.tech AI

Debezium — бұл деректерді өзгертуін ұстау (Change Data Capture, CDC) үшін бөлінетін платформа. Ол әртүрлі дерекқор жүйелері үшін коннекторлар жиынтығын ұсынады (MySQL, PostgreSQL, MongoDB, Kafka және басқа), олар осы дерекқорларда өзгерістерді (қою, жаңарту, жою) бақылап, оларды Apache Kafka-да оқиғалар ағыны ретінде жариялайды.

Негізгі компоненттері мен ерекшеліктері:

  • Коннекторлар: Әрбір дерекқорға тән және нативті CDC механизмін пайдаланады (мысалы, MySQL бинарлық логтары, PostgreSQL write-ahead логтары).
  • Apache Kafka: Оқиғалар ағыны үшін тасымалдау қабаты ретінде пайдаланылады. Әрбір деректер өзгерісі Kafka хабарламасына айналады.
  • Хабарламалар форматы: Debezium стандартталған хабарлама форматын пайдаланады, ол өзгеретін жолдың ескі және жаңа күйін, операция түрін (құру, жаңарту, жою) және метадеректерді қамтиды.
  • Кепілдендірілген жеткізу: Барлық өзгерістерді дұрыс тәртіпте жеткізуді қамтамасыз етеді.
  • Түсірілімдер: Коннектор іске қосылған кезде дерекқордың бастапқы күйін түсіруге мүмкіндік береді.
  • Өзгеріс оқиғаларының форматы: хабарламалар форматын баптауға мүмкіндік береді.

Қолдану мысалдары:

  • Деректер репликациясы: басқа жүйелерде деректердің өзекті көшірмелерін жасау.
  • Іздеу индекстерін жаңарту: дерекқордағы өзгерістер кезінде Elasticsearch немесе Solr автоматты түрде жаңартылады.
  • Микросервистер: оқиғалар арқылы микросервистер арасында деректер алмасу, тікелей API шақырулар немесе ортақ дерекқор орнына.
  • Тексеру: деректер өзгерістерінің журналдарын жасау.
  • Оқиға негізіндегі жүйе: жүйенің күйі оқиғалар тізбегі арқылы анықталатын жүйе құру.
# PostgreSQL үшін Debezium бастапқы коннекторының негізгі конфигурациясының мысалы
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: debezium-source-connector
  labels:
    strimzi.io/cluster: my-kafka-cluster
spec:
  class: io.debezium.connector.postgresql.PostgresConnector
  tasksMax: 1
  config:
    database.hostname: postgresql
    database.port: 5432
    database.user: myuser
    database.password: mypassword
    database.dbname: mydb
    database.server.name: my-server
    plugin.name: pgoutput
    slot.name: debezium_slot
    topic.prefix: my-app