تحميل البيانات باستخدام جداول الدفق في Databricks SQL

هام

هذه الميزة في المعاينة العامة. للتسجيل في الوصول، املأ هذا النموذج.

توصي Databricks باستخدام جداول الدفق لاستيعاب البيانات باستخدام Databricks SQL. جدول الدفق هو جدول مدار من كتالوج Unity مع دعم إضافي للتدفق أو معالجة البيانات المتزايدة. يتم إنشاء مسار DLT تلقائيا لكل جدول دفق. يمكنك استخدام جداول الدفق لتحميل البيانات المتزايدة من Kafka وتخزين الكائنات السحابية.

توضح هذه المقالة استخدام جداول الدفق لتحميل البيانات من تخزين كائن السحابة الذي تم تكوينه كوحدة تخزين كتالوج Unity (مستحسن) أو موقع خارجي.

إشعار

لمعرفة كيفية استخدام جداول Delta Lake كمصادر تدفق ومتلقين، راجع قراءات وكتابات دفق جدول Delta.

قبل البدء

قبل البدء، تأكد من أن لديك ما يلي:

  • حساب Azure Databricks مع تمكين بلا خادم. لمزيد من المعلومات، راجع تمكين مستودعات SQL بلا خادم.

  • مساحة عمل مع تمكين كتالوج Unity. لمزيد من المعلومات، راجع إعداد كتالوج Unity وإدارته.

  • مستودع SQL يستخدم القناة Current .

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

  • الامتياز READ FILES على موقع خارجي كتالوج Unity. للحصول على معلومات، راجع إنشاء موقع خارجي لتوصيل التخزين السحابي ب Azure Databricks.

  • الامتياز USE CATALOG على الكتالوج الذي تقوم فيه بإنشاء جدول الدفق.

  • الامتياز USE SCHEMA على المخطط الذي تقوم فيه بإنشاء جدول الدفق.

  • الامتياز CREATE TABLE على المخطط الذي تقوم فيه بإنشاء جدول الدفق.

  • المسار إلى بيانات المصدر.

    مثال مسار وحدة التخزين: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

    مثال على مسار الموقع الخارجي: abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis

    إشعار

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

اكتشاف البيانات المصدر ومعاينةها

  1. في الشريط الجانبي لمساحة العمل، انقر فوق استعلامات، ثم انقر فوق إنشاء استعلام.

  2. في محرر الاستعلام، حدد مستودع SQL الذي يستخدم القناة Current من القائمة المنسدلة.

  3. الصق ما يلي في المحرر، واستبدل القيم في أقواس الزاوية (<>) للحصول على المعلومات التي تحدد بيانات المصدر، ثم انقر فوق تشغيل.

    إشعار

    قد تواجه أخطاء في استنتاج المخطط عند تشغيل دالة read_files قيم الجدول إذا لم تتمكن الإعدادات الافتراضية للدالة من تحليل بياناتك. على سبيل المثال، قد تحتاج إلى تكوين وضع متعدد الأسطر لملفات CSV أو JSON متعددة الأسطر. للحصول على قائمة بخيارات المحلل، راجع read_files دالة ذات قيمة جدول.

    /* Discover your data in a volume */
    LIST "/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>"
    
    /* Preview your data in a volume */
    SELECT * FROM read_files("/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>") LIMIT 10
    
    /* Discover your data in an external location */
    LIST "abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>"
    
    /* Preview your data */
    SELECT * FROM read_files("abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>") LIMIT 10
    

تحميل البيانات في جدول دفق

لإنشاء جدول دفق من البيانات في تخزين كائن السحابة، الصق ما يلي في محرر الاستعلام، ثم انقر فوق تشغيل:

/* Load data from a volume */
CREATE OR REFRESH STREAMING TABLE <table-name> AS
SELECT * FROM STREAM read_files('/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>')

/* Load data from an external location */
CREATE OR REFRESH STREAMING TABLE <table-name> AS
SELECT * FROM STREAM read_files('abfss://<container>@<storage-account>.dfs.core.windows.net/<path>/<folder>')

تحديث جدول دفق باستخدام مسار DLT

يصف هذا القسم أنماط تحديث جدول دفق مع أحدث البيانات المتوفرة من المصادر المحددة في الاستعلام.

CREATE تستخدم عمليات تدفق الجداول مستودع Databricks SQL لإنشاء البيانات وتحميلها الأولي في جدول الدفق. REFRESH تستخدم عمليات تدفق الجداول جداول Delta Live (DLT). يتم إنشاء مسار DLT تلقائيا لكل جدول دفق. عند تحديث جدول تدفق، يتم بدء تحديث البنية الأساسية لبرنامج ربط العمليات التجارية DLT لمعالجة التحديث.

بعد تشغيل REFRESH الأمر، يتم إرجاع ارتباط مسار DLT. يمكنك استخدام ارتباط مسار DLT للتحقق من حالة التحديث.

إشعار

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

راجع ما هي جداول Delta Live؟.

استيعاب البيانات الجديدة فقط

بشكل افتراضي، تقرأ الدالة read_files كافة البيانات الموجودة في الدليل المصدر أثناء إنشاء الجدول، ثم تعالج السجلات التي تصل حديثا مع كل تحديث.

لتجنب استيعاب البيانات الموجودة بالفعل في الدليل المصدر في وقت إنشاء الجدول، قم بتعيين includeExistingFiles الخيار إلى false. وهذا يعني أنه تتم معالجة البيانات التي تصل إلى الدليل فقط بعد إنشاء الجدول. على سبيل المثال:

CREATE OR REFRESH STREAMING TABLE my_bronze_table
AS SELECT *
FROM STREAM read_files(
  'abfss://myContainer@myStorageAccount.dfs.core.windows.net/analysis/*/*/*.json',
  includeExistingFiles => false)

تحديث جدول دفق بشكل كامل

يقوم التحديث الكامل بإعادة معالجة جميع البيانات المتوفرة في المصدر بأحدث تعريف. لا يوصى باستدعاء التحديثات الكاملة على المصادر التي لا تحتفظ بمحفوظات البيانات بأكملها أو لديها فترات استبقاء قصيرة، مثل Kafka، لأن التحديث الكامل يقتطع البيانات الموجودة. قد لا تتمكن من استرداد البيانات القديمة إذا لم تعد البيانات متوفرة في المصدر.

على سبيل المثال:

REFRESH STREAMING TABLE my_bronze_table FULL

جدولة جدول تدفق للتحديث التلقائي

لتكوين جدول دفق للتحديث تلقائيا استنادا إلى جدول محدد، الصق ما يلي في محرر الاستعلام، ثم انقر فوق تشغيل:

ALTER STREAMING TABLE
[[<catalog>.]<database>.]<name>
ADD [SCHEDULE [REFRESH]
        CRON '<cron-string>'
                [ AT TIME ZONE '<timezone-id>' ]];

على سبيل المثال، تحديث استعلامات الجدول، راجع ALTER STREAMING TABLE.

تعقب حالة التحديث

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

DESCRIBE EXTENDED <table-name>

استيعاب البث من Kafka

للحصول على مثال على استيعاب البث من Kafka، راجع read_kafka.

منح المستخدمين حق الوصول إلى جدول دفق

لمنح المستخدمين الامتياز SELECT على جدول الدفق حتى يتمكنوا من الاستعلام عنه، الصق ما يلي في محرر الاستعلام، ثم انقر فوق تشغيل:

GRANT SELECT ON TABLE <catalog>.<schema>.<table> TO <user-or-group>

لمزيد من المعلومات حول منح الامتيازات على الكائنات القابلة للتأمين لكتالوج Unity، راجع امتيازات كتالوج Unity والكائنات القابلة للتأمين.

القيود

  • جداول دفق Databricks SQL غير مدعومة في منطقتي جنوب وسط الولايات المتحدة وغرب الولايات المتحدة 2.

الموارد الإضافية