الانتقال إلى المحتوى الرئيسي
يوفّر واجهة شبيهة بالجداول لجداول Delta Lake في Amazon S3 أو Azure Blob Storage أو نظام ملفات محلي مربوط، مع دعم كلٍّ من القراءة والكتابة (بدءًا من v25.10)

البنية

deltaLake هو اسم مستعار لـ deltaLakeS3، وهو مدعوم للتوافق.
deltaLake(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])

deltaLakeS3(url [,aws_access_key_id, aws_secret_access_key] [,format] [,structure] [,compression] [,extra_credentials])

deltaLakeAzure(connection_string|storage_account_url, container_name, blobpath, [,account_name], [,account_key] [,format] [,compression_method])

deltaLakeLocal(path, [,format])

الوسائط

وسائط دالة الجدول هذه هي نفسها المستخدمة في دوال الجداول s3 وazureBlobStorage وHDFS وfile. تشير الوسيطة format إلى تنسيق ملفات البيانات في جدول Delta Lake. يمكن استخدام المعلَمة الاختيارية extra_credentials لتمرير role_arn من أجل الوصول المستند إلى الدور في ClickHouse Cloud. راجع Secure S3 للاطلاع على خطوات التهيئة.

القيمة المُعادة

تُرجع جدولًا ذا البنية المحددة لقراءة البيانات من جدول Delta Lake المحدد أو الكتابة إليها.

أمثلة

قراءة البيانات

افترض وجود جدول في تخزين S3 على https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/. لقراءة البيانات من الجدول في ClickHouse، شغّل:
Query
SELECT
    URL,
    UserAgent
FROM deltaLake('https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/')
WHERE URL IS NOT NULL
LIMIT 2
Response
┌─URL───────────────────────────────────────────────────────────────────┬─UserAgent─┐
│ http://auto.ria.ua/search/index.kz/jobinmoscow/detail/55089/hasimages │         1 │
│ http://auto.ria.ua/search/index.kz/jobinmoscow.ru/gosushi             │         1 │
└───────────────────────────────────────────────────────────────────────┴───────────┘

إدراج البيانات

لنفترض وجود جدول في تخزين S3 عند s3://ch-docs-s3-bucket/people_10k/. لإدراج البيانات في الجدول، فعِّل أولًا الميزة التجريبية:
Query
SET allow_experimental_delta_lake_writes=1
ثم اكتب:
Query
INSERT INTO TABLE FUNCTION deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>') VALUES (10001, 'John', 'Smith', 'Male', 30)
Response
Query id: 09069b47-89fa-4660-9e42-3d8b1dde9b17

Ok.

1 row in set. Elapsed: 3.426 sec.
يمكنك التأكد من نجاح عملية الإدراج بقراءة الجدول مرة أخرى:
Query
SELECT *
FROM deltaLake('s3://ch-docs-s3-bucket/people_10k/', '<access_key>', '<secret>')
WHERE (firstname = 'John') AND (lastname = 'Smith')
Response
Query id: 65032944-bed6-4d45-86b3-a71205a2b659

   ┌────id─┬─firstname─┬─lastname─┬─gender─┬─age─┐
1. │ 10001 │ John      │ Smith    │ Male   │  30 │
   └───────┴───────────┴──────────┴────────┴─────┘

الأعمدة الافتراضية

  • _path — مسار الملف. النوع: LowCardinality(String).
  • _file — اسم الملف. النوع: LowCardinality(String).
  • _size — حجم الملف بالبايت. النوع: Nullable(UInt64). إذا كان حجم الملف غير معروف، فستكون القيمة NULL.
  • _time — وقت آخر تعديل للملف. النوع: Nullable(DateTime). إذا كان الوقت غير معروف، فستكون القيمة NULL.
  • _etag — قيمة etag للملف. النوع: LowCardinality(String). إذا كانت قيمة etag غير معروفة، فستكون القيمة NULL.
آخر تعديل في ٢٥ يونيو ٢٠٢٦