私は次の設定をしています:
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
ドキュメントによると、そのためには次の手順に従う必要があります。
ビューをデタッチして、Kafka からのメッセージの受信を停止します。
DETACH TABLE request_income;
ALTER
Kafka エンジンはクエリをサポートしていないため、Kafka からデータをストリーミングするテーブルをドロップします。DROP TABLE request_income_buffer
新しいフィールドを使用して、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」);
この投稿によると、切り離されたマテリアライズドビューの.innerテーブルを更新します
ALTER TABLE `.inner.request_income` ADD COLUMN ip String after host;
上記の更新ビューの選択クエリからの投稿によると
- ビューを添付
ATTACH TABLE request_income
質問は、ビューの選択クエリを更新する方法ですか?