استخدام كتالوج Unity مع خطوط أنابيب Delta Live Tables

هام

يتوفر دعم Delta Live Tables ل Unity Catalog في المعاينة العامة.

بالإضافة إلى الدعم الحالي للجداول الدائمة إلى Hive metastore، يمكنك استخدام كتالوج Unity مع خطوط أنابيب Delta Live Tables من أجل:

  • حدد كتالوج في كتالوج Unity حيث ستستمر البنية الأساسية لبرنامج ربط العمليات التجارية في الجداول.
  • قراءة البيانات من جداول كتالوج Unity.

يمكن أن تحتوي مساحة العمل الخاصة بك على مسارات تستخدم كتالوج Unity أو Hive metastore. ومع ذلك، لا يمكن كتابة مسار واحد إلى كل من Hive metastore وUnity Catalog والتدفقات الموجودة لا يمكن ترقيتها لاستخدام كتالوج Unity. لا تتأثر المسارات الموجودة التي لا تستخدم كتالوج Unity بهذه المعاينة، وستستمر في الاحتفاظ بالبيانات إلى Hive metastore باستخدام موقع التخزين المكون.

ما لم يتم تحديد خلاف ذلك في هذا المستند، يتم دعم كافة مصادر البيانات الموجودة ووظائف Delta Live Tables مع المسارات التي تستخدم كتالوج Unity. يتم دعم كل من واجهات Python وSQL مع المسارات التي تستخدم كتالوج Unity.

يمكن أيضا الاستعلام عن الجداول التي تم إنشاؤها في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك من مجموعات كتالوج Unity المشتركة باستخدام Databricks Runtime 13.3 LTS وما فوق أو مستودع SQL. لا يمكن الاستعلام عن الجداول من مجموعات العزل المعينة أو بدونها.

لإدارة الأذونات على الجداول التي تم إنشاؤها بواسطة مسار كتالوج Unity، استخدم GRANT و REVOKE.

المتطلبات

فيما يلي مطلوب لإنشاء جداول في كتالوج Unity من مسار Delta Live Tables:

  • يجب أن يكون لديك USE CATALOG امتيازات على الكتالوج الهدف.
  • يجب أن يكون لديك CREATE MATERIALIZED VIEW امتيازات و USE SCHEMA في المخطط الهدف إذا كان المسار الخاص بك ينشئ طرق عرض مجسدة.
  • يجب أن يكون لديك CREATE TABLE امتيازات و USE SCHEMA في المخطط الهدف إذا كان المسار الخاص بك ينشئ جداول تدفق.
  • إذا لم يتم تحديد مخطط هدف في إعدادات البنية الأساسية لبرنامج ربط العمليات التجارية، يجب أن يكون لديك CREATE MATERIALIZED VIEW أو CREATE TABLE امتيازات على مخطط واحد على الأقل في الكتالوج الهدف.

القيود

فيما يلي قيود عند استخدام كتالوج Unity مع جداول Delta Live:

  • بشكل افتراضي، يمتلك مالك المسار ومسؤولي مساحة العمل فقط الإذن لعرض سجلات برنامج التشغيل من نظام المجموعة الذي يقوم بتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الممكنة كتالوج Unity. لتمكين وصول المستخدمين الآخرين لعرض سجلات برامج التشغيل، راجع السماح للمستخدمين غير المسؤولين بعرض سجلات برامج التشغيل من البنية الأساسية لبرنامج ربط العمليات التجارية الممكنة لكتالوج Unity.

  • لا يمكن ترقية المسارات الموجودة التي تستخدم Hive metastore لاستخدام كتالوج Unity. لترحيل مسار موجود يكتب إلى Hive metastore، يجب إنشاء مسار جديد وإعادة استيعاب البيانات من مصدر (مصادر) البيانات.

  • لا يمكنك إنشاء مسار تمكين كتالوج Unity في مساحة عمل مرفقة بمخزن بيانات التعريف الذي تم إنشاؤه أثناء المعاينة العامة لكتالوج Unity. راجع الترقية إلى توريث الامتيازات.

  • مكتبات الجهات الخارجية وJARs غير مدعومة.

  • استعلامات لغة معالجة البيانات (DML) التي تعدل مخطط جدول دفق غير مدعومة.

  • لا يمكن استخدام طريقة عرض مجسدة تم إنشاؤها في مسار Delta Live Tables كمصدر دفق خارج هذا المسار، على سبيل المثال، في مسار آخر أو في دفتر ملاحظات انتقال البيانات من الخادم.

  • يتم دعم النشر إلى المخططات التي تحدد موقع تخزين مدار فقط في قناة المعاينة.

  • إذا تم نشر البنية الأساسية لبرنامج ربط العمليات التجارية إلى مخطط مع موقع تخزين مدار، يمكن تغيير المخطط في تحديث لاحق، ولكن فقط إذا كان المخطط المحدث يستخدم نفس موقع التخزين مثل المخطط المحدد مسبقا.

  • إذا حدد المخطط الهدف موقع تخزين، يتم تخزين جميع الجداول هناك. إذا لم يتم تحديد موقع تخزين مخطط، يتم تخزين الجداول في موقع تخزين الكتالوج إذا حدد الكتالوج الهدف واحدا. إذا لم يتم تحديد مواقع تخزين المخطط والكتالوج، يتم تخزين الجداول في موقع التخزين الجذر ل metastore حيث يتم نشر الجداول.

  • لا تعرض علامة التبويب محفوظات في مستكشف الكتالوج المحفوظات لجداول البث وطرق العرض المجسدة.

  • LOCATION الخاصية غير معتمدة عند تعريف جدول.

  • لا يمكن نشر البنية الأساسية لبرنامج ربط العمليات التجارية الممكنة على كتالوج Unity إلى Hive metastore.

  • يتوفر دعم Python UDF في المعاينة العامة. لاستخدام Python UDFs، يجب أن تستخدم البنية الأساسية لبرنامج ربط العمليات التجارية قناة المعاينة.

  • لا يمكنك استخدام Delta Sharing مع طريقة عرض مجسدة في Delta Live Tables أو جدول دفق تم نشره في كتالوج Unity.

  • لا يمكنك استخدام دالة event_log قيم الجدول في مسار أو استعلام للوصول إلى سجلات الأحداث لمسارات متعددة.

  • لا يمكنك مشاركة طريقة عرض تم إنشاؤها عبر دالة event_log قيم الجدول مع مستخدمين آخرين.

  • أنظمة مجموعات العقدة الواحدة غير مدعومة مع البنية الأساسية لبرنامج ربط العمليات التجارية الممكنة في كتالوج Unity. نظرا لأن Delta Live Tables قد تنشئ مجموعة من عقدة واحدة لتشغيل مسارات أصغر، فقد تفشل البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك مع ظهور رسالة خطأ تشير single-node modeإلى . إذا حدث ذلك، فتأكد من تحديد عامل واحد على الأقل عند تكوين إعدادات الحساب.

  • لا يمكن الاستعلام عن الجداول التي تم إنشاؤها في مسار تمكين كتالوج Unity من مجموعات العزل المعينة أو بدونها. للاستعلام عن الجداول التي تم إنشاؤها بواسطة مسار Delta Live Tables، يجب استخدام نظام مجموعة وضع الوصول المشترك باستخدام Databricks Runtime 13.3 LTS وما فوق أو مستودع SQL.

  • تستخدم Delta Live Tables مجموعة وضع الوصول المشترك لتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية الممكنة لكتالوج Unity. لا يمكن تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية التي تدعم كتالوج Unity على نظام مجموعة معين. للتعرف على قيود وضع الوصول المشترك باستخدام كتالوج Unity، راجع قيود وضع الوصول المشترك على كتالوج Unity.

  • لا يمكنك استخدام عوامل تصفية الصفوف أو أقنعة الأعمدة مع طرق العرض المجسدة أو جداول الدفق المنشورة في كتالوج Unity.

إشعار

قد تتضمن الملفات الأساسية التي تدعم طرق العرض المجسدة بيانات من جداول المصدر (بما في ذلك معلومات التعريف الشخصية المحتملة) التي لا تظهر في تعريف طريقة العرض المجسدة. تتم إضافة هذه البيانات تلقائيا إلى التخزين الأساسي لدعم التحديث المتزايد لطرق العرض المجسدة.

نظرا لأن الملفات الأساسية لعرض مجسد قد تخاطر بكشف البيانات من الجداول الأولية وليس جزءا من مخطط العرض المجسد، توصي Databricks بعدم مشاركة التخزين الأساسي مع المستهلكين غير الموثوقين في المراحل النهائية.

على سبيل المثال، افترض أن تعريف طريقة العرض المجسدة يتضمن عبارة COUNT(DISTINCT field_a) . على الرغم من أن تعريف طريقة العرض المجسدة يتضمن العبارة التجميعية COUNT DISTINCT فقط، فإن الملفات الأساسية ستحتوي على قائمة بالقيم الفعلية ل field_a.

التغييرات في الوظائف الموجودة

عند تكوين Delta Live Tables لاستمرار البيانات في كتالوج Unity، تتم إدارة دورة حياة الجدول بواسطة مسار Delta Live Tables. لأن البنية الأساسية لبرنامج ربط العمليات التجارية تدير دورة حياة الجدول والأذونات:

  • عند إزالة جدول من تعريف مسار Delta Live Tables، تتم إزالة طريقة العرض المجسدة المقابلة أو إدخال جدول البث من كتالوج Unity في تحديث المسار التالي. يتم الاحتفاظ بالبيانات الفعلية لفترة من الوقت بحيث يمكن استردادها إذا تم حذفها عن طريق الخطأ. يمكن استرداد البيانات عن طريق إضافة طريقة العرض المجسدة أو جدول الدفق مرة أخرى إلى تعريف البنية الأساسية لبرنامج ربط العمليات التجارية.
  • يؤدي حذف مسار Delta Live Tables إلى حذف كافة الجداول المعرفة في هذا المسار. وبسبب هذا التغيير، يتم تحديث واجهة مستخدم Delta Live Tables لمطالبتك بتأكيد حذف البنية الأساسية لبرنامج ربط العمليات التجارية.
  • لا يمكن للمستخدمين الوصول مباشرة إلى جداول الدعم الداخلية، بما في ذلك جداول الدعم المستخدمة لدعم APPLY CHANGES INTO.

كتابة الجداول إلى كتالوج Unity من مسار Delta Live Tables

إشعار

إذا لم تحدد كتالوج ومخطط هدف للبنية الأساسية لبرنامج ربط العمليات التجارية، فلن يتم نشر الجداول في كتالوج Unity ولا يمكن الوصول إليها إلا بواسطة الاستعلامات في نفس المسار.

لكتابة الجداول إلى كتالوج Unity، عند إنشاء مسار، حدد كتالوج Unity ضمن خيارات التخزين، وحدد كتالوج في القائمة المنسدلة الكتالوج ، وحدد مخططا موجودا أو أدخل اسم مخطط جديد في القائمة المنسدلة مخطط الهدف. للتعرف على كتالوجات كتالوج Unity، راجع الكتالوجات. للتعرف على المخططات في كتالوج Unity، راجع المخططات.

استيعاب البيانات في مسار كتالوج Unity

يمكن للبنية الأساسية لبرنامج ربط العمليات التجارية التي تم تكوينها لاستخدام كتالوج Unity قراءة البيانات من:

  • جداول وطرق عرض وطرق عرض وطرق عرض مجسدة وجداول دفق مدارة وخارجية في كتالوج Unity.
  • جداول Hive metastore وطرق العرض.
  • أداة التحميل التلقائي باستخدام الدالة للقراءة cloud_files() من المواقع الخارجية ل Unity Catalog.
  • Apache Kafka وAmazon Kinesis.

فيما يلي أمثلة للقراءة من كتالوج Unity وجداول Hive metastore.

استيعاب الدفعات من جدول كتالوج Unity

SQL

CREATE OR REFRESH LIVE TABLE
  table_name
AS SELECT
  *
FROM
  my_catalog.my_schema.table1;

Python

@dlt.table
def table_name():
  return spark.table("my_catalog.my_schema.table")

دفق التغييرات من جدول كتالوج Unity

SQL

CREATE OR REFRESH STREAMING TABLE
  table_name
AS SELECT
  *
FROM
  STREAM(my_catalog.my_schema.table1);

Python

@dlt.table
def table_name():
  return spark.readStream.table("my_catalog.my_schema.table")

استيعاب البيانات من Hive metastore

يمكن للبنية الأساسية لبرنامج ربط العمليات التجارية التي تستخدم كتالوج Unity قراءة البيانات من جداول Hive metastore باستخدام الكتالوج hive_metastore :

SQL

CREATE OR REFRESH LIVE TABLE
  table_name
AS SELECT
  *
FROM
  hive_metastore.some_schema.table;

Python

@dlt.table
def table3():
  return spark.table("hive_metastore.some_schema.table")

استيعاب البيانات من أداة التحميل التلقائي

SQL

CREATE OR REFRESH STREAMING TABLE
  table_name
AS SELECT
  *
FROM
  cloud_files(
    <path-to-uc-external-location>,
    "json"
  )

Python

@dlt.table(table_properties={"quality": "bronze"})
def table_name():
  return (
     spark.readStream.format("cloudFiles")
     .option("cloudFiles.format", "json")
     .load(f"{path_to_uc_external_location}")
 )

مشاركة طرق العرض المجسدة (الجداول المباشرة)

بشكل افتراضي، يمكن الاستعلام عن الجداول التي تم إنشاؤها بواسطة البنية الأساسية لبرنامج ربط العمليات التجارية فقط من قبل مالك المسار. يمكنك منح المستخدمين الآخرين القدرة على الاستعلام عن جدول باستخدام عبارات GRANT ويمكنك إبطال الوصول إلى الاستعلام باستخدام عبارات REVOKE . لمزيد من المعلومات حول الامتيازات في كتالوج Unity، راجع إدارة الامتيازات في كتالوج Unity.

منح تحديد على جدول

GRANT SELECT ON TABLE
  my_catalog.my_schema.live_table
TO
  `user@databricks.com`

إبطال التحديد على جدول

REVOKE SELECT ON TABLE
  my_catalog.my_schema.live_table
FROM
  `user@databricks.com`

منح إنشاء جدول أو إنشاء امتيازات عرض مجسدة

GRANT CREATE { MATERIALIZED VIEW | TABLE } ON SCHEMA
  my_catalog.my_schema
TO
  { principal | user }

عرض دورة حياة البنية الأساسية لبرنامج ربط العمليات التجارية

تظهر دورة حياة الجداول في مسار Delta Live Tables في مستكشف الكتالوج. بالنسبة إلى طرق العرض المجسدة أو جداول الدفق في البنية الأساسية لبرنامج ربط العمليات التجارية الممكنة لكتالوج Unity، تعرض واجهة مستخدم دورة حياة مستكشف الكتالوج جداول المصدر والمصب. لمعرفة المزيد حول دورة حياة كتالوج Unity، راجع التقاط دورة حياة البيانات وعرضها باستخدام كتالوج Unity.

للحصول على طريقة عرض مجسدة أو جدول دفق في مسار Delta Live Tables ممكن بواسطة كتالوج Unity، سترتبط واجهة مستخدم دورة حياة مستكشف الكتالوج أيضا بالبنية الأساسية لبرنامج ربط العمليات التجارية التي أنتجت طريقة العرض المجسدة أو جدول البث إذا كان المسار يمكن الوصول إليه من مساحة العمل الحالية.

إضافة بيانات أو تغييرها أو حذفها في جدول دفق

يمكنك استخدام عبارات لغة معالجة البيانات (DML)، بما في ذلك عبارات الإدراج والتحديث والحذف والدمج، لتعديل جداول الدفق المنشورة في كتالوج Unity. يتيح دعم استعلامات DML مقابل جداول الدفق حالات الاستخدام مثل تحديث الجداول للامتثال للوائح حماية البيانات العامة (GDPR).

إشعار

  • عبارات DML التي تعدل مخطط الجدول لجدول دفق غير معتمدة. تأكد من أن عبارات DML الخاصة بك لا تحاول تطوير مخطط الجدول.
  • يمكن تشغيل عبارات DML التي تحدث جدول دفق فقط في مجموعة كتالوج Unity مشتركة أو مستودع SQL باستخدام Databricks Runtime 13.3 LTS وما فوق.
  • نظرا لأن الدفق يتطلب مصادر بيانات ملحقة فقط، إذا كانت المعالجة تتطلب دفقا من جدول دفق مصدر مع تغييرات (على سبيل المثال، بواسطة عبارات DML)، قم بتعيين علامة skipChangeCommits عند قراءة جدول دفق المصدر. عند skipChangeCommits تعيين، يتم تجاهل المعاملات التي تحذف السجلات أو تعدلها في الجدول المصدر. إذا لم تتطلب المعالجة جدول دفق، يمكنك استخدام طريقة عرض مجسدة (التي لا تحتوي على قيد الإلحاق فقط) كجدول هدف.

فيما يلي أمثلة لعبارات DML لتعديل السجلات في جدول تدفق.

حذف السجلات ذات معرف معين:

DELETE FROM my_streaming_table WHERE id = 123;

تحديث السجلات بمعرف معين:

UPDATE my_streaming_table SET name = 'Jane Doe' WHERE id = 123;