本文介紹如何在雲資料庫ClickHouse中建立物化視圖。
建立物化視圖
文法:
CREATE MATERIALIZED VIEW [IF NOT EXISTS] [db.]Materialized_name [TO[db.]name] [ON CLUSTER cluster]
ENGINE = engine_name()
ORDER BY expr
[POPULATE]
AS SELECT ...
參數說明:
參數 | 說明 |
參數 | 說明 |
| 資料庫的名稱,預設為當前選擇的資料庫,本文以default為例。 |
| 物化視圖名。 |
| 將物化視圖的資料寫入到新表中。 如果需要將物化視圖的資料寫入新表,不能使用 |
| 在每一個節點上都建立一個物化視圖,固定為 |
| 表引擎類型,具體請參見表引擎。 |
|
一般不推薦使用 |
|
|
樣本:
建立
SELECT
子句指定的源表。CREATE TABLE test ON CLUSTER default ( id Int32, name String ) ENGINE = ReplicatedMergeTree() ORDER BY (id);
寫入資料至源表。
INSERT INTO test VALUES(1,'a'),(2,'b'),(3,'c');
建立基於源表的物化視圖。
CREATE MATERIALIZED VIEW test_view ON CLUSTER default ENGINE = MergeTree() ORDER BY (id) AS SELECT * FROM test;
查詢物化視圖,驗證未指定
POPULATE
關鍵字時,是否能查詢到物化視圖建立前寫入源表的資料。SELECT * FROM test_view;
查詢資料為空白,說明未指定
POPULATE
關鍵字時,查詢不到物化視圖建立前寫入源表的資料。寫入資料至源表。
INSERT INTO test VALUES(4,'a'),(5,'b'),(6,'c');
查詢物化視圖。
SELECT * FROM test_view;
查詢結果如下。
id│name ─│── 4│ a 5│ b 6│ c
參考文檔
建立物化視圖的更多資訊,請參見Create Materialized View。