5

私は次の設定をしています:

CREATE TABLE IF NOT EXISTS request_income_buffer (
    timestamp UInt64,
    timestamp_micro Float32,
    traceId Int64,
    host String,
    type String,
    service String,
    message String,
    caller String,
    context String
) ENGINE = Kafka('kafka:9092', 'request_income', 'group', 'JSONEachRow');

CREATE MATERIALIZED VIEW IF NOT EXISTS request_income
ENGINE = MergeTree(date, microtime, 8192) AS
    SELECT
        toDate(toDateTime(timestamp)) AS `date`,
        toDateTime(timestamp) as `date_time`,
        timestamp,
        timestamp_micro AS `microtime`,
        traceId,
        host,
        type,
        service,
        message,
        caller,
        context
    FROM
        request_income_buffer;

新しい列を追加したい、例。テーブルipへ。my request_incomeドキュメントによると、そのためには次の手順に従う必要があります。

  1. ビューをデタッチして、Kafka からのメッセージの受信を停止します。

    DETACH TABLE request_income;

  2. ALTERKafka エンジンはクエリをサポートしていないため、Kafka からデータをストリーミングするテーブルをドロップします。

    DROP TABLE request_income_buffer

  3. 新しいフィールドを使用して、Kafka からデータをストリーミングするテーブルを再作成します。

    CREATE TABLE IF NOT EXISTS request_income_buffer (timestamp UInt64, timestamp_micro Float32, traceId Int64, host String, ip String, type String, service String, message String, caller String, context String ) ENGINE = Kafka('kafka:9092', 'request_income' 、「グループ」、「JSONEachRow」);

  4. この投稿によると、切り離されたマテリアライズドビューの.innerテーブルを更新します

    ALTER TABLE `.inner.request_income` ADD COLUMN ip String after host;

  5. 上記の更新ビューの選択クエリからの投稿によると

  6. ビューを添付

    ATTACH TABLE request_income

質問は、ビューの選択クエリを更新する方法ですか?

4

2 に答える 2