VK Cloud logo

Kafka-дан Cloud ClickHouse жүйесіне деректерді жүктеу

Cloud ClickHouse жүйесінде Kafka топиктерінен хабарларды оқу үшін Kafka қозғалтқышы бар кесте және материалдандырылған көрініс қолданылады. Kafka қозғалтқышының сипаттамасы ClickHouse ресми құжаттамасында берілген.

Дайындық қадамдары

  1. Cloud ClickHouse данасына Kafka қосылымын қосыңыз. Қосылым атауын есте сақтаңыз: ол Kafka қозғалтқышы бар кестені жасау кезінде қажет болады.
  2. Cloud ClickHouse данасына қосылыңыз.

1. Kafka қозғалтқышы бар кестені жасаңыз

  1. Хабарлар құрылымына және таңдалған форматқа сәйкес келетін бағандар мен деректер түрлерін көрсетіп, SQL сұранысын орындаңыз:

    CREATE TABLE <ДҚ_АТАУЫ>.kafka_table ON CLUSTER '{cluster}'(    `id` UInt32,    `first_name` String,    `last_name` String)ENGINE = Kafka(<ҚОСЫЛЫМ_АТАУЫ>);

    Мұнда:

    • <ДҚ_АТАУЫ> — Cloud ClickHouse данасын жасау кезінде көрсетілген дерекқор атауы;
    • <ҚОСЫЛЫМ_АТАУЫ> — дайындық қадамында жасалған Kafka қосылымының атауы.
  2. SQL сұранысының нәтижесін тексеріңіз: Cloud ClickHouse кластерінің әр түйіні үшін status бағанында 0 көрсетілуі, ал error бағаны бос болуы керек. Бұл кестенің кластердің барлық түйінінде жасалғанын білдіреді.

2. Мақсатты кестені жасаңыз

  1. SQL сұранысын орындаңыз:

    CREATE TABLE <ДҚ_АТАУЫ>.kafka_target_table ON CLUSTER '{cluster}'(    `id` UInt32,    `first_name` String,    `last_name` String)ENGINE = ReplicatedMergeTree()ORDER BY id;
  2. Мақсатты кестенің кластердің барлық түйінінде жасалғанына көз жеткізіңіз: status бағанында 0 көрсетілуі, ал error бағаны бос болуы керек.

Мақсатты кесте материалдандырылған көрініс тасымалдаған хабарларды сақтайды.

3. Материалдандырылған көріністі жасаңыз

  1. SQL сұранысын орындаңыз:

    CREATE MATERIALIZED VIEW <ДҚ_АТАУЫ>.kafka_mv ON CLUSTER '{cluster}'TO <ДҚ_АТАУЫ>.kafka_target_table ASSELECT    id,    first_name,    last_nameFROM <ДҚ_АТАУЫ>.kafka_table;
  2. Материалдандырылған көріністің кластердің барлық түйінінде жасалғанына көз жеткізіңіз: status бағанында 0 көрсетілуі, ал error бағаны бос болуы керек.

Көрініс жасалғаннан кейін Kafka қозғалтқышы топиктерден хабарларды оқи бастайды, ал көрініс оларды мақсатты кестеге тасымалдайды.

4. Деректердің жүктелуін тексеріңіз

  1. Таңдалған топикке жаңа хабарлардың келуін күтіңіз.

  2. Мақсатты кестеге SQL сұранысын орындаңыз:

    SELECT * FROM <ДҚ_АТАУЫ>.kafka_target_table;
  3. Алынған жолдардағы өріс мәндерінің Kafka-дағы бастапқы хабарларға сәйкес келетініне көз жеткізіңіз.

Пайдаланылмайтын ресурстарды жойыңыз

Егер материалдандырылған көрініс пен Kafka қозғалтқышы бар кесте енді қажет болмаса, SQL сұраныстарын орындаңыз:

DROP VIEW IF EXISTS <ДҚ_АТАУЫ>.kafka_mv ON CLUSTER '{cluster}';DROP TABLE IF EXISTS <ДҚ_АТАУЫ>.kafka_table ON CLUSTER '{cluster}';

Материалдандырылған көрініс жойылғаннан кейін жаңа хабарлар мақсатты кестеге келмейді. Егер жинақталған деректер енді қажет болмаса, SQL сұранысын орындаңыз:

DROP TABLE IF EXISTS <ДҚ_АТАУЫ>.kafka_target_table ON CLUSTER '{cluster}';
Мақала пайдалы болды ма?