مشاركة عبر


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

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

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

إشعار

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

هام

يتم دعم جداول الدفق التي تم إنشاؤها في Databricks SQL بواسطة مسار Delta Live Tables بلا خادم. يجب أن تدعم مساحة العمل البنية الأساسية لبرنامج ربط العمليات التجارية بدون خادم لاستخدام هذه الوظيفة.

قبل البدء

قبل البدء، يجب أن تفي بالمتطلبات التالية.

متطلبات مساحة العمل:

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

متطلبات الحساب:

يجب استخدام أحد الإجراءات التالية:

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

  • حساب مع وضع الوصول المشترك على Databricks Runtime 13.3 LTS أو أعلى.

  • الحساب مع وضع وصول مستخدم واحد على Databricks Runtime 15.4 LTS أو أعلى.

    في Databricks Runtime 15.3 والإدناه، لا يمكنك استخدام حساب مستخدم واحد للاستعلام عن جداول الدفق التي يملكها مستخدمون آخرون. يمكنك استخدام حساب مستخدم واحد على Databricks Runtime 15.3 وما دونه فقط إذا كنت تملك جدول البث. منشئ الجدول هو المالك.

    يدعم Databricks Runtime 15.4 LTS وما فوق الاستعلامات على جداول Delta Live التي تم إنشاؤها على حساب مستخدم واحد، بغض النظر عن ملكية الجدول. للاستفادة من تصفية البيانات المتوفرة في Databricks Runtime 15.4 LTS وما فوق، يجب التأكد من تمكين مساحة العمل الخاصة بك للحساب بلا خادم لأن وظيفة تصفية البيانات التي تدعم الجداول التي تم إنشاؤها في Delta Live Tables تعمل على حساب بلا خادم. يمكن تحصيل رسوم منك مقابل موارد الحوسبة بلا خادم عند استخدام حساب مستخدم واحد لتشغيل عمليات تصفية البيانات. راجع التحكم في الوصول الدقيق على حساب مستخدم واحد.

متطلبات الأذونات:

  • الامتياز 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>')

تعيين قناة وقت التشغيل

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

توصي Databricks باستخدام القناة current لأحمال عمل الإنتاج. يتم إصدار الميزات الجديدة أولا إلى القناة preview . يمكنك تعيين مسار إلى قناة معاينة Delta Live Tables لاختبار الميزات الجديدة عن طريق تحديد preview كخاصية جدول. يمكنك تحديد هذه الخاصية عند إنشاء الجدول أو بعد إنشاء الجدول باستخدام عبارة ALTER.

يوضح مثال التعليمات البرمجية التالي كيفية تعيين القناة للمعاينة في عبارة CREATE:

CREATE OR REPLACE MATERIALIZED VIEW foo.default.bar
TBLPROPERTIES ('pipelines.channel' = 'preview') as
SELECT
  *
FROM
  range(5)

## <a id="refresh"></a> Refresh a <st> using a DLT pipeline

This section describes patterns for refreshing a <st> with the latest data available from the sources defined in the query.

When you `CREATE` or `REFRESH` a <st>, the update processes using a serverless <DLT> pipeline. Each <st> you define has an associated <DLT> pipeline.

After you run the `REFRESH` command, the DLT pipeline link is returned. You can use the DLT pipeline link to check the status of the refresh.

.. note:: Only the table owner can refresh a <st> to get the latest data. The user that creates the table is the owner, and the owner can't be changed. You might need to refresh your <st> before using [time travel](/delta/history.md#time-travel) queries.

See [_](/delta-live-tables/index.md).

### Ingest new data only

By default, the `read_files` function reads all existing data in the source directory during table creation, and then processes newly arriving records with each refresh.

To avoid ingesting data that already exists in the source directory at the time of table creation, set the `includeExistingFiles` option to `false`. This means that only data that arrives in the directory after table creation is processed. For example:

.. azure::

  ```sql
  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 والكائنات القابلة للتأمين.

مراقبة عمليات التشغيل باستخدام محفوظات الاستعلام

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

هام

هذه الميزة في المعاينة العامة. يمكن لمسؤولي مساحة العمل تمكين هذه الميزة من صفحة المعاينات . راجع إدارة معاينات Azure Databricks.

تظهر جميع العبارات المتعلقة بجداول الدفق في محفوظات الاستعلام. يمكنك استخدام عامل التصفية المنسدلة العبارة لتحديد أي أمر وفحص الاستعلامات ذات الصلة. تتبع كافة CREATE العبارات بجملة REFRESH يتم تنفيذها بشكل غير متزامن على مسار Delta Live Tables. REFRESH تتضمن العبارات عادة خطط استعلام مفصلة توفر رؤى حول تحسين الأداء.

للوصول إلى REFRESH عبارات في واجهة مستخدم محفوظات الاستعلام، استخدم الخطوات التالية:

  1. انقر في أيقونة المحفوظات الشريط الجانبي الأيسر لفتح واجهة مستخدم محفوظات الاستعلام.
  2. حدد خانة الاختيار REFRESH من عامل التصفية المنسدلة العبارة .
  3. انقر فوق اسم عبارة الاستعلام لعرض تفاصيل الملخص مثل مدة الاستعلام والمقاييس المجمعة.
  4. انقر فوق عرض ملف تعريف الاستعلام لفتح ملف تعريف الاستعلام. راجع ملف تعريف الاستعلام للحصول على تفاصيل حول التنقل في ملف تعريف الاستعلام.
  5. اختياريا، يمكنك استخدام الارتباطات في قسم مصدر الاستعلام لفتح الاستعلام أو المسار ذي الصلة.

يمكنك أيضا الوصول إلى تفاصيل الاستعلام باستخدام ارتباطات في محرر SQL أو من دفتر ملاحظات مرفق بمستودع SQL.

إشعار

يجب تكوين جدول البث الخاص بك للتشغيل باستخدام قناة المعاينة. راجع تعيين قناة وقت التشغيل.

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