Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

كتالوج Polaris

ميزة Beta

يدعم ClickHouse التكامل مع عدة catalogs ‏(Unity وGlue وPolaris وغيرها). في هذا الدليل، سنرشدك إلى خطوات الاستعلام عن بياناتك باستخدام ClickHouse وApache Polaris Catalog. يدعم Apache Polaris جداول Iceberg وDelta Tables ‏(عبر Generic Tables). ولا يدعم هذا التكامل حاليًا سوى جداول Iceberg.

المتطلبات الأساسية

للاتصال بكتالوج Polaris، ستحتاج إلى:

  • Snowflake Open كتالوج ‏(Polaris المُدار) أو Polaris Catalog مستضاف ذاتيًا
  • URI الخاص بكتالوج Polaris (على سبيل المثال، https://<account-id>.<region>.aws.snowflakecomputing.com/polaris/api/catalog/v1 أو http://polaris:8181/api/catalog/v1/oauth/tokens)
  • بيانات اعتماد الكتالوج (client ID وclient secret)
  • URI الخاص برموز OAuth المميزة لمثيل Polaris لديك
  • نقطة نهاية التخزين لمخزن الكائنات الذي توجد فيه بيانات Iceberg الخاصة بك (على سبيل المثال، S3)
  • إصدار ClickHouse 26.1+

بالنسبة إلى Open كتالوج، وهو عرض Polaris المُدار من Snowflake، سيتضمن URI لديك /polaris، بينما في حالة الاستضافة الذاتية، قد لا يتضمنه.

إنشاء اتصال بين Polaris وClickHouse

أنشئ قاعدة بيانات تربط ClickHouse بكتالوج Polaris لديك:

CREATE DATABASE polaris_catalog
ENGINE = DataLakeCatalog('https://<catalog_uri>/api/catalog/v1')
SETTINGS
    catalog_type = 'rest',
    catalog_credential = '<client-id>:<client-secret>',
    warehouse = 'snowflake',
    auth_scope = 'PRINCIPAL_ROLE:ALL',
    oauth_server_uri = 'https://<catalog_uri>/api/catalog/v1/oauth/tokens',
    storage_endpoint = '<storage_endpoint>'

الاستعلام عن كتالوج Polaris باستخدام ClickHouse

بمجرد إنشاء الاتصال، يمكنك الاستعلام عن Polaris:

استعلامsql
USE polaris_catalog;
SHOW TABLES;

للاستعلام عن جدول:

استعلامsql
SELECT count(*) FROM `polaris_db.my_iceberg_table`;

لمعاينة DDL الخاص بالجدول:

SHOW CREATE TABLE `polaris_db.my_iceberg_table`;

تحميل البيانات من Polaris إلى ClickHouse

لتحميل البيانات من Polaris إلى جدول ClickHouse، أنشئ الجدول الهدف بالمخطط المطلوب، ثم نفّذ insert من جدول Polaris:

استعلامsql
CREATE TABLE my_clickhouse_table
(
    -- عرّف الأعمدة لتتطابق مع جدول Iceberg لديك
    `id` Int64,
    `name` String,
    `event_time` DateTime64(3)
)
ENGINE = MergeTree
ORDER BY id;

INSERT INTO my_clickhouse_table
SELECT * FROM polaris_catalog.`polaris_db.my_iceberg_table`;
Navigation