يوفّر هذا المحرك تكاملًا مع جداول Delta Lake الموجودة في S3 وGCP وAzure Storage، ويدعم عمليتَي القراءة والكتابة كلتيهما (بدءًا من v25.10).
إنشاء جدول DeltaLake
لإنشاء جدول DeltaLake، يجب أن يكون الجدول موجودًا مسبقًا في S3 أو GCP أو Azure Storage. لا تقبل الأوامر أدناه معلمات DDL لإنشاء جدول جديد.
البنية
CREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])معلمات المحرك
url— عنوان URL للـ bucket مع المسار إلى جدول Delta Lake الحالي.aws_access_key_id,aws_secret_access_key- بيانات اعتماد طويلة الأجل لمستخدم حساب AWS. يمكنك استخدامها لمصادقة طلباتك. هذه المعلمة اختيارية. وإذا لم يتم تحديد بيانات الاعتماد، فسيتم استخدامها من ملف الإعدادات.extra_credentials- اختياري. يُستخدم لتمريرrole_arnللوصول المستند إلى الأدوار في ClickHouse Cloud. راجع تأمين S3 لمعرفة خطوات الإعداد.
يمكن تحديد معلمات المحرك باستخدام المجموعات المسماة.
مثال
CREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')باستخدام المجموعات المسماة:
<clickhouse>
<named_collections>
<deltalake_conf>
<url>http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/</url>
<access_key_id>ABC123</access_key_id>
<secret_access_key>Abc+123</secret_access_key>
</deltalake_conf>
</named_collections>
</clickhouse>CREATE TABLE deltalake
ENGINE = DeltaLake(deltalake_conf, filename = 'test_table')البنية
-- استخدام عنوان URL عبر HTTPS (موصى به)
CREATE TABLE table_name
ENGINE = DeltaLake('https://storage.googleapis.com/<bucket>/<path>/', '<access_key_id>', '<secret_access_key>')الوسائط
url— عنوان URL لـ GCS bucket المؤدي إلى جدول Delta Lake. يجب استخدام التنسيقhttps://storage.googleapis.com/<bucket>/<path>/(وهو API endpoint الخاص بـ GCS XML)، أوgs://<bucket>/<path>/الذي يُحوَّل تلقائيًا.access_key_id— مفتاح الوصول إلى GCS. أنشِئه عبر Google Cloud Console → Cloud Storage → Settings → Interoperability.secret_access_key— المفتاح السري لـ GCS.
المجموعات المسماة
يمكنك أيضًا استخدام المجموعات المسماة. على سبيل المثال:
CREATE NAMED COLLECTION gcs_creds AS
access_key_id = '<access_key>',
secret_access_key = '<secret>';
CREATE TABLE gcpDeltaLake
ENGINE = DeltaLake(gcs_creds, url = 'https://storage.googleapis.com/<bucket>/<path>')البنية
CREATE TABLE table_name
ENGINE = DeltaLake(connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])الوسائط
connection_string— سلسلة اتصال Azurestorage_account_url— عنوان URL لحساب Azure Storage (على سبيل المثال، https://account.blob.core.windows.net)container_name— اسم Azure containerblobpath— المسار إلى جدول Delta Lake داخل الـ containeraccount_name— اسم حساب Azure Storageaccount_key— مفتاح حساب Azure Storage
كتابة البيانات باستخدام جدول DeltaLake
بعد إنشاء جدول باستخدام محرك جدول DeltaLake، يمكنك إدراج البيانات فيه باستخدام:
SET allow_delta_lake_writes = 1;
INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);تُعد عمليات الكتابة إلى Delta Lake ميزة Beta وتكون معطلة افتراضيًا ويجب تمكينها باستخدام SET allow_delta_lake_writes = 1; (متاح بدءًا من الإصدار 26.7؛ وفي الإصدارات الأقدم استخدم SET allow_experimental_delta_lake_writes = 1;).
ذاكرة التخزين المؤقت للبيانات
يدعم محرك جدول DeltaLake ودالة الجدول التخزين المؤقت للبيانات، تمامًا كما هو الحال مع أنظمة التخزين S3 وAzureBlobStorage وHDFS. راجع "محرك جدول S3" لمزيد من التفاصيل.