Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

كتالوج وقت التشغيل لـ Lakehouse (BigLake Metastore)

ميزة Beta

يدعم ClickHouse التكامل مع عدة catalogs ‏(مثل Unity وGlue وPolaris وغيرها). يوضح لك هذا الدليل الخطوات اللازمة للاستعلام عن جداول Iceberg الخاصة بك في كتالوج وقت التشغيل لـ Lakehouse المعروف أيضًا باسم BigLake Metastore عبر ClickHouse.

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

قبل إنشاء اتصال من ClickHouse إلى كتالوج وقت التشغيل لـ Lakehouse ‏(BigLake Metastore)، تأكد من توفر ما يلي:

  • مشروع Google Cloud مع تفعيل كتالوج وقت التشغيل لـ Lakehouse
  • بيانات اعتماد Application Default ‏(OAuth client ID وclient secret) لتطبيق، تم إنشاؤها عبر Google Cloud Console
  • refresh token تم الحصول عليه من خلال إكمال OAuth flow باستخدام النطاقات المناسبة (على سبيل المثال https://www.googleapis.com/auth/bigquery ونطاق التخزين لـ GCS)
  • مسار warehouse: ‏GCS bucket ‏(مع prefix اختياري) حيث تُخزَّن الجداول، على سبيل المثال gs://your-bucket أو gs://your-bucket/prefix

إنشاء اتصال بين كتالوج وقت التشغيل لـ Lakehouse وClickHouse

بعد توفّر بيانات اعتماد OAuth، أنشئ قاعدة بيانات في ClickHouse تستخدم محرك قاعدة البيانات ‏DataLakeCatalog:

SET allow_database_iceberg = 1;

CREATE DATABASE lakehouse_runtime_catalog
ENGINE = DataLakeCatalog('https://biglake.googleapis.com/iceberg/v1/restcatalog')
SETTINGS
    catalog_type = 'biglake',
    google_adc_client_id = '<client-id>',
    google_adc_client_secret = '<client-secret>',
    google_adc_refresh_token = '<refresh-token>',
    google_adc_quota_project_id = '<gcp-project-id>',
    warehouse = 'gs://<bucket_name>/<optional-prefix>';

الاستعلام عن جداول كتالوج وقت التشغيل لـ Lakehouse باستخدام ClickHouse

بمجرد إنشاء الاتصال، يمكنك الاستعلام عن الجداول المسجَّلة في كتالوج وقت التشغيل لـ Lakehouse.

USE LAKEHOUSE_RUNTIME_CATALOG;

SHOW TABLES;

مخرجات المثال:

┌─name──────────────────────────────────────┐
│lakehouse_runtime_catalog.my_iceberg_table │   
└───────────────────────────────────────────┘
SELECT count(*) FROM `lakehouse_runtime_catalog.my_iceberg_table`;

لفحص تعريف الجدول:

SHOW CREATE TABLE `lakehouse_runtime_catalog.my_iceberg_table`;

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

لتحميل البيانات من جدول في كتالوج وقت التشغيل لـ Lakehouse إلى جدول ClickHouse محلي لتسريع الاستعلامات المتكررة، أنشئ جدول MergeTree ونفّذ insert من الكتالوج:

CREATE TABLE clickhouse_table
(
    `id` Int64,
    `event_time` DateTime64(3),
    `user_id` String,
    `payload` String
)
ENGINE = MergeTree
ORDER BY (event_time, id);

INSERT INTO local_events
SELECT * FROM lakehouse_runtime_catalog.`icebench.my_iceberg_table`;

بعد التحميل الأولي، نفّذ استعلامًا على clickhouse_table بزمن استجابة أقل. أعد تنفيذ INSERT INTO ... SELECT لتحديث البيانات من BigLake عند الحاجة.

Navigation