مرجع الجدول

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime

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

بناء الجملة

table_reference
  { table_name [ TABLESAMPLE clause ] [ table_alias ] |
    { STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
    view_name [ table_alias ] |
    JOIN clause |
    PIVOT clause |
    UNPIVOT clause |
    [ STREAM ] table_valued_function [ table_alias ] |
    [ LATERAL ] table_valued_function [ table_alias ] |
    VALUES clause |
    [ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }

المعلمات

  • table_name

    تعريف جدول قد يحتوي على مواصفات زمنية. راجع العمل مع محفوظات جدول Delta Lake للحصول على التفاصيل.

    إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .

    راجع العمود، الحقل، المعلمة، ودقة المتغير للحصول على مزيد من المعلومات حول تحليل الاسم.

  • view_name

    تعريف طريقة عرض أو تعبير جدول شائع (CTE). إذا تعذر العثور على طريقة العرض، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .

    راجع العمود، الحقل، المعلمة، ودقة المتغير للحصول على مزيد من المعلومات حول تحليل الاسم.

  • تيار

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

  • الانضمام

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

  • المحوريه

    ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق.

    يستخدم لمنظور البيانات؛ يمكنك الحصول على القيم المجمعة استنادا إلى قيمة عمود محددة.

    قبل Databricks Runtime 12.0 يقتصر PIVOT على SELECT الذي يتبع العبارة FROM .

  • UNPIVOT

    ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 12.2 LTS وما فوق.

    يستخدم لمنظور البيانات؛ يمكنك تقسيم مجموعات أعمدة متعددة إلى صفوف.

  • [لاحقا]table_valued_function_invocation

    استدعاء دالة ذات قيمة جدول. للإشارة إلى الأعمدة المكشوفة بواسطة السابق table_reference في نفس FROM العبارة يجب تحديد LATERAL.

  • القيم

    تعريف جدول مضمن.

  • [لاحقا] ( استعلام )

    يحسب مرجع جدول باستخدام استعلام. قد يشير استعلام مسبوق بأعمدة LATERAL تم كشفها بواسطة سابق table_reference في نفس FROM العبارة. تسمى هذه البنية استعلاما مرتبطا أو تابعا.

  • الطابع الزمني للجداول

    قم بشكل اختياري بتقليل حجم مجموعة النتائج عن طريق أخذ عينات من جزء صغير من الصفوف فقط.

  • table_alias

    يحدد اختياريا تسمية ل table_reference. table_alias إذا كان يتضمن column_identifiers يجب أن يتطابق رقمها مع عدد الأعمدة في table_reference.

تحديد على جدول Delta

بالإضافة إلى الخيارات القياسية SELECT ، تدعم جداول Delta خيارات السفر عبر الوقت الموضحة في هذا القسم. للحصول على التفاصيل، راجع العمل مع محفوظات جدول Delta Lake.

AS OF بناء الجمله

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression يمكن أن يكون أي واحد من:
    • '2018-10-18T22:15:12.013Z'، أي سلسلة يمكن تحويلها إلى طابع زمني
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18'، أي سلسلة تاريخ
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • أي تعبير آخر يتم تحويله أو يمكن تحويله إلى طابع زمني
  • version هي قيمة طويلة يمكن الحصول عليها من إخراج DESCRIBE HISTORY table_spec.

لا timestamp_expression يمكن ولا version الاستعلامات الفرعية.

مثال

> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'

> SELECT * FROM delta.`/mnt/delta/events` VERSION AS OF 123

@ بناء الجمله

استخدم بناء الجملة @ لتحديد الطابع الزمني أو الإصدار. يجب أن يكون الطابع الزمني بالتنسيق yyyyMMddHHmmssSSS . يمكنك تحديد إصدار بعد @ عن طريق إلحاق بالإصدار v . على سبيل المثال، للاستعلام عن إصدار 123 الجدول events، حدد events@v123.

مثال

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

الأمثلة

-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  1   2   3   4

-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  3   4

-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  1   2   3

-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  1  { "a" : 2 }

-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  1  { }

-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  Error: EXCEPT_OVERLAPPING_COLUMNS