ClickHouse 連接器¶
ClickHouse 連接器允許查詢外部 ClickHouse 伺服器中的表格。這可以用來查詢該伺服器上資料庫中的資料,或將其與來自其他目錄的資料結合,存取 ClickHouse 或任何其他支援的資料來源。
需求¶
要連接到 ClickHouse 伺服器,您需要
ClickHouse 版本 20.8 或更高版本。
從 Presto 協調器和工作節點到 ClickHouse 伺服器的網路存取權。預設連接埠為 8123。
設定¶
連接器可以查詢 ClickHouse 伺服器。建立一個目錄屬性檔案,透過將 connector.name
設定為 clickhouse
來指定 ClickHouse 連接器。
例如,若要以 clickhouse
存取伺服器,請建立檔案 etc/catalog/clickhouse.properties
。請根據您的設定替換連線屬性。
connector.name=clickhouse
clickhouse.connection-url=jdbc:clickhouse://host1:8123/
clickhouse.connection-user=default
clickhouse.connection-password=secret
多個 ClickHouse 伺服器¶
如果您有多個 ClickHouse 伺服器,則需要為每個伺服器設定一個目錄。若要新增其他目錄
請將另一個屬性檔案新增至
etc/catalog
使用不同的名稱儲存它,該名稱以
.properties
結尾
例如,如果您將屬性檔案命名為 clickhouse.properties
,Prestodb 會使用設定的連接器建立一個名為 clickhouse
的目錄。
一般設定屬性¶
下表說明連接器的一般目錄設定屬性
屬性名稱 |
預設值 |
描述 |
---|---|---|
|
false |
建立表格時,支援 clickhouse 資料類型 String。 |
|
false |
允許刪除表格操作。 |
查詢 ClickHouse¶
ClickHouse 連接器為每個 ClickHouse *資料庫* 提供一個結構描述。執行 SHOW SCHEMAS
以查看可用的 ClickHouse 資料庫
SHOW SCHEMAS FROM clickhouse;
如果您有一個名為 tpch
的 ClickHouse 資料庫,請執行 SHOW TABLES
以檢視此資料庫中的表格
SHOW TABLES FROM clickhouse.tpch;
執行 DESCRIBE
或 SHOW COLUMNS
以列出 tpch
資料庫中 cks
表格中的欄位
DESCRIBE clickhouse.tpch.cks;
SHOW COLUMNS FROM clickhouse.tpch.cks;
執行 SELECT
以存取 tpch
資料庫中的 cks
表格
SELECT * FROM clickhouse.tpch.cks;
注意
如果您為目錄屬性檔案使用了不同的名稱,請在上述範例中使用該目錄名稱,而不是 clickhouse
。
表格屬性¶
表格屬性使用範例
CREATE TABLE default.prestodb_ck (
id int NOT NULL,
birthday DATE NOT NULL,
name VARCHAR,
age BIGINT,
logdate DATE NOT NULL
)
WITH (
engine = 'MergeTree',
order_by = ARRAY['id', 'birthday'],
partition_by = ARRAY['toYYYYMM(logdate)'],
primary_key = ARRAY['id'],
sample_by = 'id'
);
以下是來自 https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/ 的支援 ClickHouse 表格屬性
屬性名稱 |
預設值 |
描述 |
---|---|---|
|
|
引擎的名稱和參數。 |
|
(無) |
要串連以建立排序索引鍵的欄或運算式陣列。如果 |
|
(無) |
要用作巢狀分割索引鍵的欄或運算式陣列。選用。 |
|
(無) |
要串連以建立主索引鍵的欄或運算式陣列。選用。 |
|
(無) |
用於 取樣 的運算式。選用。 |
目前,連接器僅支援建立表格陳述式中的 Log
和 MergeTree
表格引擎。尚不支援 ReplicatedMergeTree
引擎。
下推¶
連接器支援多種操作的下推
limit-pushdown
SQL 支援¶
連接器提供對 ClickHouse 目錄中資料和中繼資料的讀取和寫入存取權。除了全域可用和讀取操作陳述式之外,連接器還支援以下功能