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 的目錄。

一般設定屬性

下表說明連接器的一般目錄設定屬性

屬性名稱

預設值

描述

clickhouse.map-string-as-varchar

false

建立表格時,支援 clickhouse 資料類型 String。

clickhouse.allow-drop-table

false

允許刪除表格操作。

查詢 ClickHouse

ClickHouse 連接器為每個 ClickHouse *資料庫* 提供一個結構描述。執行 SHOW SCHEMAS 以查看可用的 ClickHouse 資料庫

SHOW SCHEMAS FROM clickhouse;

如果您有一個名為 tpch 的 ClickHouse 資料庫,請執行 SHOW TABLES 以檢視此資料庫中的表格

SHOW TABLES FROM clickhouse.tpch;

執行 DESCRIBESHOW 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 表格屬性

屬性名稱

預設值

描述

engine

Log

引擎的名稱和參數。

order_by

(無)

要串連以建立排序索引鍵的欄或運算式陣列。如果 engineMergeTree,則為必要項目。

partition_by

(無)

要用作巢狀分割索引鍵的欄或運算式陣列。選用。

primary_key

(無)

要串連以建立主索引鍵的欄或運算式陣列。選用。

sample_by

(無)

用於 取樣 的運算式。選用。

目前,連接器僅支援建立表格陳述式中的 LogMergeTree 表格引擎。尚不支援 ReplicatedMergeTree 引擎。

下推

連接器支援多種操作的下推

  • limit-pushdown

SQL 支援

連接器提供對 ClickHouse 目錄中資料和中繼資料的讀取和寫入存取權。除了全域可用和讀取操作陳述式之外,連接器還支援以下功能