Kafka-дан Cloud ClickHouse жүйесіне деректерді жүктеу
Cloud ClickHouse жүйесінде Kafka топиктерінен хабарларды оқу үшін Kafka қозғалтқышы бар кесте және материалдандырылған көрініс қолданылады. Kafka қозғалтқышының сипаттамасы ClickHouse ресми құжаттамасында берілген.
- Cloud ClickHouse данасына Kafka қосылымын қосыңыз. Қосылым атауын есте сақтаңыз: ол Kafka қозғалтқышы бар кестені жасау кезінде қажет болады.
- Cloud ClickHouse данасына қосылыңыз.
-
Хабарлар құрылымына және таңдалған форматқа сәйкес келетін бағандар мен деректер түрлерін көрсетіп, SQL сұранысын орындаңыз:
CREATE TABLE <ДҚ_АТАУЫ>.kafka_table ON CLUSTER '{cluster}'(`id` UInt32,`first_name` String,`last_name` String)ENGINE = Kafka(<ҚОСЫЛЫМ_АТАУЫ>);Мұнда:
<ДҚ_АТАУЫ>— Cloud ClickHouse данасын жасау кезінде көрсетілген дерекқор атауы;<ҚОСЫЛЫМ_АТАУЫ>— дайындық қадамында жасалған Kafka қосылымының атауы.
-
SQL сұранысының нәтижесін тексеріңіз: Cloud ClickHouse кластерінің әр түйіні үшін
statusбағанында0көрсетілуі, алerrorбағаны бос болуы керек. Бұл кестенің кластердің барлық түйінінде жасалғанын білдіреді.
-
SQL сұранысын орындаңыз:
CREATE TABLE <ДҚ_АТАУЫ>.kafka_target_table ON CLUSTER '{cluster}'(`id` UInt32,`first_name` String,`last_name` String)ENGINE = ReplicatedMergeTree()ORDER BY id; -
Мақсатты кестенің кластердің барлық түйінінде жасалғанына көз жеткізіңіз:
statusбағанында0көрсетілуі, алerrorбағаны бос болуы керек.
Мақсатты кесте материалдандырылған көрініс тасымалдаған хабарларды сақтайды.
-
SQL сұранысын орындаңыз:
CREATE MATERIALIZED VIEW <ДҚ_АТАУЫ>.kafka_mv ON CLUSTER '{cluster}'TO <ДҚ_АТАУЫ>.kafka_target_table ASSELECTid,first_name,last_nameFROM <ДҚ_АТАУЫ>.kafka_table; -
Материалдандырылған көріністің кластердің барлық түйінінде жасалғанына көз жеткізіңіз:
statusбағанында0көрсетілуі, алerrorбағаны бос болуы керек.
Көрініс жасалғаннан кейін Kafka қозғалтқышы топиктерден хабарларды оқи бастайды, ал көрініс оларды мақсатты кестеге тасымалдайды.
-
Таңдалған топикке жаңа хабарлардың келуін күтіңіз.
-
Мақсатты кестеге SQL сұранысын орындаңыз:
SELECT * FROM <ДҚ_АТАУЫ>.kafka_target_table; -
Алынған жолдардағы өріс мәндерінің 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}';