Как объединить потоки Protobuf через Kafka в таблицу Clickhouse? - PullRequest
0 голосов
/ 26 февраля 2020

Давайте рассмотрим следующий пример:

syntax = "proto3";

message Book {
  message Record {
    string f1 = 1;
    string f2 = 2;
    string f3 = 3;
  }
  repeated Record records = 1;
  string af1 = 2;
  string af2 = 3;
}

Как мне описать подходящую модель clickhouse table/consumer/queue?

Это не ключ, но, должно быть, что-то похожее :

CREATE TABLE qwe_queue
(
  f1 String,
  f2 String,
  f3 String,
  af1 String,
  af2 String
) ENGINE = Kafka
SETTINGS
kafka_broker_list='',
kafka_topic_list='',
kafka_group_name='',
kafka_format='Protobuf',
kafka_schema='ex.proto:Book';

CREATE TABLE qwe
(
  f1 String,
  f2 String,
  f3 String,
  af1 String,
  af2 String
) ENGINE = ReplacingMergeTree();

CREATE MATERIALIZED VIEW qwe_consumer TO qwe AS
SELECT
  anyLast(f1) as f1,
  anyLast(f2) as f2,
  anyLast(f3) as f3,
  anyLast(af1) as af1,
  anyLast(af2) as af2
FROM qwe_queue
SETTINGS stream_flush_interval_ms=60000;

Но это не работает.

Как это должно быть описано?

...