قراءة البيانات المشتركة باستخدام Databricks-to-Databricks Delta Sharing (للمستلمين)
توضح هذه المقالة كيفية قراءة البيانات التي تمت مشاركتها معك باستخدام بروتوكول Databricks-to-Databricks Delta Sharing، حيث تدير Databricks اتصالا آمنا لمشاركة البيانات. على عكس بروتوكول المشاركة المفتوحة لمشاركة دلتا، لا يتطلب بروتوكول Databricks-to-Databricks ملف بيانات اعتماد (أمان يستند إلى الرمز المميز).
تتطلب مشاركة Databricks-to-Databricks أن يكون لديك، كمستلم، حق الوصول إلى مساحة عمل Databricks التي تم تمكينها لكتالوج Unity.
إذا لم يكن لديك مساحة عمل Databricks تم تمكينها لكتالوج Unity، فيجب مشاركة البيانات معك باستخدام بروتوكول مشاركة دلتا المفتوح، ولا تنطبق هذه المقالة عليك. راجع قراءة البيانات المشتركة باستخدام مشاركة دلتا المفتوحة (للمستلمين).
كيف أعمل إتاحة البيانات المشتركة لفريقي؟
لقراءة البيانات ودفاتر الملاحظات التي تمت مشاركتها معك باستخدام بروتوكول Databricks-to-Databricks، يجب أن تكون مستخدما على مساحة عمل Databricks التي تم تمكينها لكتالوج Unity. يوفر أحد أعضاء فريقك لموفر البيانات معرفا فريدا لمخزن بيانات تعريف كتالوج Unity الخاص بك، ويستخدم موفر البيانات هذا المعرف لإنشاء اتصال مشاركة آمن مع مؤسستك. تصبح البيانات المشتركة متاحة بعد ذلك للوصول للقراءة في مساحة العمل الخاصة بك، وتنعكس أي تحديثات يقوم بها موفر البيانات للجداول وطرق العرض ووحدات التخزين والأقسام المشتركة في مساحة العمل في الوقت الفعلي تقريبا.
إشعار
تظهر تحديثات جداول البيانات المشتركة وطرق العرض ووحدات التخزين في مساحة العمل في الوقت الفعلي تقريبا. ومع ذلك، قد لا تظهر تغييرات العمود (إضافة، إعادة تسمية، حذف) في مستكشف الكتالوج لمدة تصل إلى دقيقة واحدة. وبالمثل، يتم تخزين المشاركات والتحديثات الجديدة للمشاركات (مثل إضافة جداول جديدة إلى مشاركة) مؤقتا لمدة دقيقة واحدة قبل أن تتوفر لك للعرض والاستعلام.
لقراءة البيانات التي تمت مشاركتها معك:
- يعثر مستخدم في فريقك على المشاركة - الحاوية للجداول وطرق العرض ووحدات التخزين ودفاتر الملاحظات التي تمت مشاركتها معك - ويستخدم هذه المشاركة لإنشاء كتالوج - حاوية المستوى الأعلى لجميع البيانات في كتالوج Databricks Unity.
- يمنح مستخدم في فريقك الوصول إلى الكتالوج والكائنات الموجودة داخل الكتالوج (المخططات والجداول وطرق العرض ووحدات التخزين) أو يرفض الوصول إليها إلى أعضاء آخرين في فريقك.
- يمكنك قراءة البيانات في الجداول وطرق العرض ووحدات التخزين التي تم منحك حق الوصول إليها تماما مثل أي أصل بيانات آخر في Databricks لديك حق الوصول للقراءة فقط (
SELECT
أوREAD VOLUME
) إليه. - يمكنك معاينة دفاتر الملاحظات واستنساخها في المشاركة، طالما أن لديك الامتياز
USE CATALOG
على الكتالوج.
الأذونات المطلوبة
لكي تتمكن من سرد وعرض تفاصيل حول جميع الموفرين ومشاركات الموفر، يجب أن تكون مسؤولا في metastore أو تتمتع بالامتياز USE PROVIDER
. يمكن للمستخدمين الآخرين الوصول فقط إلى الموفرين والمشاركات التي يمتلكونها.
لإنشاء كتالوج من مشاركة موفر، يجب أن تكون مسؤول metastore، أو مستخدما لديه CREATE_CATALOG
امتيازات و USE PROVIDER
لمخزن بيانات تعريف كتالوج Unity، أو مستخدم لديه CREATE_CATALOG
امتياز وملكية عنصر الموفر.
تتبع القدرة على منح حق الوصول للقراءة فقط إلى المخططات (قواعد البيانات) والجداول وطرق العرض ووحدات التخزين في الكتالوج الذي تم إنشاؤه من المشاركة التسلسل الهرمي لامتيازات كتالوج Unity النموذجي. تتطلب القدرة على عرض دفاتر الملاحظات في الكتالوج الذي تم إنشاؤه من المشاركة USE CATALOG
الامتياز على الكتالوج. راجع إدارة الأذونات للمخططات والجداول ووحدات التخزين في كتالوج Delta Sharing.
عرض الموفرين والمشاركات
لبدء قراءة البيانات التي تمت مشاركتها معك من قبل موفر البيانات، تحتاج إلى معرفة اسم الموفر ومشاركة الكائنات المخزنة في مخزن بيانات تعريف كتالوج Unity بمجرد مشاركة الموفر للبيانات معك.
يمثل كائن الموفر metastore كتالوج Unity والنظام الأساسي السحابي ومنطقة المؤسسة التي شاركت البيانات معك.
يمثل كائن المشاركة الجداول ووحدات التخزين وطرق العرض التي شاركها الموفر معك.
عرض جميع الموفرين الذين شاركوا البيانات معك
لعرض قائمة بموفري البيانات المتوفرين، يمكنك استخدام مستكشف الكتالوج أو كتالوج Databricks Unity CLI أو SHOW PROVIDERS
أمر SQL في دفتر ملاحظات Azure Databricks أو محرر استعلام Databricks SQL.
الأذونات المطلوبة: يجب أن تكون مسؤولا في metastore أو أن تتمتع بالامتياز USE PROVIDER
. يمكن للمستخدمين الآخرين الوصول فقط إلى الموفرين ومشاركات الموفر التي يمتلكونها.
للحصول على التفاصيل، راجع عرض الموفرين.
عرض تفاصيل الموفر
لعرض تفاصيل حول موفر، يمكنك استخدام مستكشف الكتالوج أو كتالوج Databricks Unity CLI أو DESCRIBE PROVIDER
أمر SQL في دفتر ملاحظات Azure Databricks أو محرر استعلام Databricks SQL.
الأذونات المطلوبة: يجب أن تكون مسؤولا في metastore أو تتمتع بالامتياز USE PROVIDER
أو تمتلك كائن الموفر.
للحصول على التفاصيل، راجع عرض تفاصيل الموفر.
عرض المشاركات
لعرض المشاركات التي شاركها الموفر معك، يمكنك استخدام مستكشف الكتالوج أو كتالوج Databricks Unity CLI أو SHOW SHARES IN PROVIDER
الأمر SQL في دفتر ملاحظات Azure Databricks أو محرر استعلام Databricks SQL.
الأذونات المطلوبة: يجب أن تكون مسؤولا في metastore أو تتمتع بالامتياز USE PROVIDER
أو تمتلك كائن الموفر.
للحصول على التفاصيل، راجع عرض المشاركات التي شاركها موفر معك.
الوصول إلى البيانات في جدول أو وحدة تخزين مشتركة
لقراءة البيانات في جدول أو وحدة تخزين مشتركة:
- يجب على المستخدم المميز إنشاء كتالوج من المشاركة يحتوي على الجدول أو وحدة التخزين. يمكن أن يكون هذا مسؤول metastore، أو مستخدما لديه كل من
CREATE_CATALOG
الامتيازات وUSE PROVIDER
لمخزن بيانات تعريف كتالوج Unity، أو مستخدم لديه كلCREATE_CATALOG
من امتياز وملكية عنصر الموفر. - يجب أن يمنحك هذا المستخدم أو المستخدم الذي لديه نفس الامتيازات حق الوصول إلى الجدول أو وحدة التخزين المشتركة.
- يمكنك الوصول إلى الجدول أو وحدة التخزين تماما كما تفعل مع أي أصل بيانات آخر مسجل في مخزن بيانات تعريف كتالوج Unity.
إنشاء كتالوج من مشاركة
لتسهيل وصول فريقك إلى البيانات الموجودة في مشاركة، يجب إنشاء كتالوج من المشاركة. لإنشاء كتالوج من مشاركة، يمكنك استخدام مستكشف الكتالوج أو Databricks Unity Catalog CLI أو أوامر SQL في دفتر ملاحظات Azure Databricks أو محرر استعلام Databricks SQL.
الأذونات المطلوبة: مسؤول metastore، أو مستخدم لديه CREATE_CATALOG
امتيازات و USE PROVIDER
لمخزن بيانات تعريف كتالوج Unity، أو مستخدم لديه CREATE_CATALOG
امتياز وملكية عنصر الموفر.
إشعار
إذا كانت المشاركة تتضمن طرق عرض، فيجب استخدام اسم كتالوج مختلف عن اسم الكتالوج الذي يحتوي على طريقة العرض في metastore الخاص بالموفر.
مستكشف الكتالوج
في مساحة عمل Azure Databricks، انقر فوق كتالوج لفتح مستكشف الكتالوج.
في أعلى جزء Catalog، انقر فوق أيقونة الترس وحدد Delta Sharing.
بدلا من ذلك، من صفحة الوصول السريع، انقر فوق الزر مشاركة > دلتا.
في علامة التبويب مشترك معي ، ابحث عن الموفر وحدده.
في علامة التبويب مشاركات ، ابحث عن المشاركة وانقر فوق إنشاء كتالوج في صف المشاركة.
أدخل اسما للكتالوج والتعليق الاختياري.
انقر فوق Create.
بدلا من ذلك، عند فتح مستكشف الكتالوج، يمكنك النقر فوق إنشاء كتالوج في أعلى اليمين لإنشاء كتالوج مشترك. راجع إنشاء كتالوجات.
SQL
قم بتشغيل الأمر التالي في دفتر ملاحظات أو محرر استعلام Databricks SQL.
CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;
CLI
databricks catalogs create <catalog-name> /
--provider-name <provider-name> /
--share-name <share-name>
يحتوي الكتالوج الذي تم إنشاؤه من مشاركة على نوع كتالوج لمشاركة دلتا. يمكنك عرض النوع على صفحة تفاصيل الكتالوج في مستكشف الكتالوج أو عن طريق تشغيل الأمر وصف كتالوج SQL في دفتر ملاحظات أو استعلام Databricks SQL. يتم سرد كافة الكتالوجات المشتركة ضمن الكتالوج > المشترك في الجزء الأيمن من مستكشف الكتالوج.
يمكن إدارة كتالوج Delta Sharing بنفس طريقة إدارة الكتالوجات العادية على مخزن بيانات تعريف كتالوج Unity. يمكنك عرض كتالوج Delta Sharing وتحديثه وحذفه باستخدام مستكشف الكتالوج وDatabricks CLI وباستخدام SHOW CATALOGS
DESCRIBE CATALOG
ALTER CATALOG
DROP CATALOG
أوامر وSQL.
بنية مساحة الاسم ثلاثية المستويات ضمن كتالوج Delta Sharing الذي تم إنشاؤه من مشاركة هي نفسها الموجودة ضمن كتالوج عادي في كتالوج Unity: catalog.schema.table
أو catalog.schema.volume
.
بيانات الجدول والحجم ضمن كتالوج مشترك للقراءة فقط، ما يعني أنه يمكنك تنفيذ عمليات القراءة مثل:
DESCRIBE
وSHOW
و للجداولSELECT
.DESCRIBE VOLUME
وLIST <volume-path>
SELECT * FROM <format>.'<volume_path>'
و وCOPY INTO
لوحدات التخزين.
يمكن معاينة دفاتر الملاحظات في كتالوج مشترك واستنساخها من قبل أي مستخدم باستخدام USE CATALOG
في الكتالوج.
يمكن قراءة النماذج في كتالوج مشترك وتحميلها للاستدلال من قبل أي مستخدم بالامتيازات التالية: EXECUTE
الامتياز على النموذج المسجل، بالإضافة إلى USE SCHEMA
الامتيازات USE CATALOG
على المخطط والكتالوج الذي يحتوي على النموذج.
إدارة أذونات المخططات والجداول ووحدات التخزين في كتالوج Delta Sharing
بشكل افتراضي، منشئ الكتالوج هو مالك جميع كائنات البيانات ضمن كتالوج Delta Sharing ويمكنه إدارة الأذونات لأي منها.
يتم توريث الامتيازات لأسفل، على الرغم من أن بعض مساحات العمل قد لا تزال موجودة على نموذج الأمان القديم الذي لم يوفر التوريث. راجع نموذج التوريث. سيحصل SELECT
أي مستخدم منح SELECT
الامتياز على الكتالوج على جميع المخططات والجداول في الكتالوج ما لم يتم إبطال هذا الامتياز. وبالمثل، سيكون READ VOLUME
لدى أي مستخدم منح READ VOLUME
الامتياز على الكتالوج الامتياز على جميع وحدات التخزين في الكتالوج ما لم يتم إبطال هذا الامتياز. لا يمكنك منح امتيازات تمنح حق الوصول للكتابة أو التحديث إلى كتالوج أو كائنات Delta Sharing في كتالوج Delta Sharing.
يمكن لمالك الكتالوج تفويض ملكية كائنات البيانات إلى مستخدمين أو مجموعات أخرى، وبالتالي منح هؤلاء المستخدمين القدرة على إدارة أذونات الكائن ودورات الحياة.
للحصول على معلومات مفصلة حول إدارة الامتيازات على كائنات البيانات باستخدام كتالوج Unity، راجع إدارة الامتيازات في كتالوج Unity.
قراءة البيانات في جدول مشترك
يمكنك قراءة البيانات في جدول مشترك باستخدام أي من الأدوات المتاحة لك كمستخدم Azure Databricks: مستكشف الكتالوج ودفاتر الملاحظات واستعلامات SQL وDatabricks CLI وDatabricks REST APIs. يجب أن يكون لديك الامتياز SELECT
على الطاولة.
قراءة البيانات في وحدة تخزين مشتركة
يمكنك قراءة البيانات في وحدة تخزين مشتركة باستخدام أي من الأدوات المتاحة لك كمستخدم Azure Databricks: مستكشف الكتالوج ودفاتر الملاحظات واستعلامات SQL وDatabricks CLI وDatabricks REST APIs. يجب أن يكون لديك الامتياز READ VOLUME
على وحدة التخزين.
تحميل نموذج مشترك للاستدلال
للحصول على تفاصيل حول تحميل نموذج مشترك واستخدامه للاستدلال الدفعي، راجع تحميل إصدار النموذج بالاسم المستعار لأحمال عمل الاستدلال.
الاستعلام عن بيانات محفوظات الجدول
إذا تمت مشاركة المحفوظات مع الجدول، يمكنك الاستعلام عن بيانات الجدول اعتبارا من إصدار أو طابع زمني. يتطلب Databricks Runtime 12.2 LTS أو أعلى.
على سبيل المثال:
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution VERSION AS OF 3;
SELECT * FROM vaccine.vaccine_us.vaccine_us_distribution TIMESTAMP AS OF "2023-01-01 00:00:00";
بالإضافة إلى ذلك، إذا تم تمكين موجز بيانات التغيير (CDF) مع الجدول، يمكنك الاستعلام عن CDF. يتم دعم كل من الإصدار والطوابع الزمنية:
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', 0, 3);
SELECT * FROM table_changes('vaccine.vaccine_us.vaccine_us_distribution', "2023-01-01 00:00:00", "2022-02-01 00:00:00");
لمزيد من المعلومات حول موجز بيانات التغيير، راجع استخدام موجز بيانات تغيير Delta Lake على Azure Databricks.
الاستعلام عن جدول باستخدام Apache Spark Structured Streaming
إذا تمت مشاركة جدول مع المحفوظات، يمكنك استخدامه كمصدر ل Spark Structured Streaming. يتطلب Databricks Runtime 12.2 LTS أو أعلى.
الخيارات المدعومة:
ignoreDeletes
: تجاهل المعاملات التي تحذف البيانات.ignoreChanges
: إعادة معالجة التحديثات إذا تمت إعادة كتابة الملفات في الجدول المصدر بسبب عملية تغيير البيانات مثلUPDATE
أوMERGE INTO
أوDELETE
(داخل الأقسام) أوOVERWRITE
. لا يزال من الممكن إصدار الصفوف التي لم يتم تغييرها. لذلك يجب أن يكون مستهلكو انتقال البيانات من الخادم قادرين على التعامل مع التكرارات. لا يتم نشر عمليات الحذف في المراحل النهائية.ignoreChanges
مجلدات فرعيةignoreDeletes
. لذلك، إذا كنت تستخدمignoreChanges
، فلن يتم تعطيل الدفق الخاص بك إما عن طريق عمليات الحذف أو التحديثات إلى الجدول المصدر.startingVersion
: إصدار الجدول المشترك للبدء منه. ستتم قراءة جميع تغييرات الجدول بدءا من هذا الإصدار (شاملة) من قبل مصدر البث.startingTimestamp
: الطابع الزمني للبدء منه. ستتم قراءة جميع تغييرات الجدول التي تم إجراؤها في الطابع الزمني أو بعده (شاملة) من قبل مصدر البث. مثال:"2023-01-01 00:00:00.0"
maxFilesPerTrigger
: عدد الملفات الجديدة التي سيتم النظر فيها في كل دفعة صغيرة.maxBytesPerTrigger
: كمية البيانات التي تتم معالجتها في كل دفعة صغيرة. يعين هذا الخيار "الحد الأقصى الناعم"، ما يعني أن الدفعة تعالج تقريبا هذا المقدار من البيانات وقد تعالج أكثر من الحد لجعل استعلام الدفق يتحرك للأمام في الحالات التي تكون فيها أصغر وحدة إدخال أكبر من هذا الحد.readChangeFeed
: قراءة الدفق لموجز بيانات التغيير للجدول المشترك.
خيارات غير معتمدة:
Trigger.availableNow
نموذج استعلامات الدفق المنظم
Scala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.table("vaccine.vaccine_us.vaccine_us_distribution")
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.table("vaccine.vaccine_us.vaccine_us_distribution")
إذا تم تمكين موجز بيانات التغيير (CDF) مع الجدول، يمكنك دفق قراءة CDF.
spark.readStream.format("deltaSharing")
.option("readChangeFeed", "true")
.table("vaccine.vaccine_us.vaccine_us_distribution")
قراءة الجداول مع تمكين متجهات الحذف أو تعيين العمود
متجهات الحذف هي ميزة تحسين التخزين التي يمكن للموفر تمكينها على جداول دلتا المشتركة. راجع ما هي متجهات الحذف؟.
يدعم Azure Databricks أيضا تعيين الأعمدة لجداول Delta. راجع إعادة تسمية الأعمدة وإفلاتها باستخدام تعيين عمود Delta Lake.
إذا قام الموفر بمشاركة جدول مع تمكين متجهات الحذف أو تعيين العمود، يمكنك إجراء قراءات دفعية على الجدول باستخدام مستودع SQL أو نظام مجموعة يقوم بتشغيل Databricks Runtime 14.1 أو أعلى. تتطلب استعلامات CDF والتدفق Databricks Runtime 14.2 أو أعلى.
يمكنك تنفيذ استعلامات الدفعات كما هي، لأنها يمكن حلها responseFormat
تلقائيا استنادا إلى ميزات الجدول للجدول المشترك.
لقراءة موجز بيانات التغيير (CDF) أو لتنفيذ استعلامات الدفق على الجداول المشتركة مع تمكين متجهات الحذف أو تعيين العمود، يجب تعيين الخيار responseFormat=delta
الإضافي .
توضح الأمثلة التالية استعلامات الدفعة وCDF والتدفق:
import org.apache.spark.sql.SparkSession
// Batch query
spark.read.format("deltaSharing").table(<tableName>)
// CDF query
spark.read.format("deltaSharing")
.option("readChangeFeed", "true")
.option("responseFormat", "delta")
.option("startingVersion", 1)
.table(<tableName>)
// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").table(<tableName>)
قراءة طرق العرض المشتركة
إشعار
يتم دعم مشاركة العرض فقط في مشاركة Databricks-to-Databricks.
قراءة طرق العرض المشتركة هي نفسها قراءة الجداول المشتركة، مع هذه الاستثناءات:
متطلبات الحساب:
- إذا كان حساب Azure Databricks مختلفا عن حساب الموفر، فيجب عليك استخدام مستودع SQL بلا خادم للاستعلام عن طرق العرض المشتركة.
- إذا كان الموفر على نفس حساب Azure Databricks، يمكنك استخدام أي مستودع SQL ويمكن أيضا استخدام نظام مجموعة يستخدم وضع الوصول المشترك.
قيود العرض عند العرض:
لا يمكنك إنشاء طرق عرض تشير إلى طرق العرض المشتركة.
عرض قيود المشاركة:
لا يمكنك مشاركة طرق العرض التي تشير إلى الجداول المشتركة أو طرق العرض المشتركة.
متطلبات التسمية:
لا يمكن أن يكون اسم الكتالوج الذي تستخدمه للكتالوج المشترك الذي يحتوي على طريقة العرض هو نفسه أي كتالوج موفر يحتوي على جدول تشير إليه طريقة العرض. على سبيل المثال، إذا كانت طريقة العرض المشتركة موجودة في الكتالوج الخاص بك test
، وكان أحد جداول الموفر المشار إليها في طريقة العرض هذه مضمنا في كتالوج الموفر test
، فسينتج عن الاستعلام خطأ في تعارض مساحة الاسم. راجع إنشاء كتالوج من مشاركة.
المحفوظات والتدفق:
لا يمكنك الاستعلام عن المحفوظات أو استخدام طريقة عرض كمصدر تدفق.
JDBC/ODBC:
تركز الإرشادات الواردة في هذه المقالة على قراءة البيانات المشتركة باستخدام واجهات مستخدم Azure Databricks، وتحديدا بناء جملة وواجهات كتالوج Unity. يمكنك أيضا الاستعلام عن طرق العرض المشتركة باستخدام أدوات Apache Spark وPython وBI مثل Tableau وPower BI باستخدام برامج تشغيل Databricks JDBC/ODBC. لمعرفة كيفية الاتصال باستخدام برامج تشغيل Databricks JDBC/ODBC، راجع Databricks ODBC وبرامج تشغيل JDBC.
قراءة دفاتر الملاحظات المشتركة
لمعاينة ملفات دفتر الملاحظات المشتركة واستنساخها، يمكنك استخدام مستكشف الكتالوج.
الأذونات المطلوبة: مالك الكتالوج أو المستخدم الذي يتمتع بالامتياز USE CATALOG
الموجود في الكتالوج الذي تم إنشاؤه من المشاركة.
في مساحة عمل Azure Databricks، انقر فوق كتالوج.
في الجزء الأيمن، قم بتوسيع قائمة Catalog، وابحث عن الكتالوج الذي تم إنشاؤه من المشاركة وحدده.
في علامة التبويب الأصول الأخرى، سترى أي ملفات دفتر ملاحظات مشتركة.
انقر فوق اسم ملف دفتر ملاحظات مشترك لمعاينته.
(اختياري) انقر فوق الزر استنساخ لاستيراد ملف دفتر الملاحظات المشترك إلى مساحة العمل.
- في مربع الحوار استنساخ إلى، أدخل اسما جديدا اختياريا، ثم حدد مجلد مساحة العمل الذي تريد استنساخ ملف دفتر الملاحظات إليه.
- انقر Clone.
- بمجرد استنساخ دفتر الملاحظات، ينبثق مربع حوار لإعلامك بأنه تم استنساخه بنجاح. انقر فوق إظهار في محرر دفتر الملاحظات في مربع الحوار لعرضه في محرر دفتر الملاحظات.
راجع مقدمة إلى دفاتر ملاحظات Databricks.