اقسام

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

يتكون القسم من مجموعة فرعية من الصفوف في جدول تشترك في نفس القيمة لمجموعة فرعية محددة مسبقا من الأعمدة تسمى أعمدة التقسيم. يمكن أن يؤدي استخدام الأقسام إلى تسريع الاستعلامات مقابل الجدول بالإضافة إلى معالجة البيانات.

لاستخدام الأقسام، يمكنك تعريف مجموعة عمود التقسيم عند إنشاء جدول عن طريق تضمين عبارة PARTITIONED BY .

عند إدراج صفوف أو معالجتها في جدول يقوم Azure Databricks تلقائيا بإرسال الصفوف إلى الأقسام المناسبة.

يمكنك أيضا تحديد القسم مباشرة باستخدام عبارة PARTITION .

يتوفر بناء الجملة هذا أيضا للجداول التي لا تستخدم تنسيق Delta Lake، لأقسام DROP أو ADD أو RENAME بسرعة باستخدام عبارة ALTER TABLE.

مقسم حسب

PARTITIONED BY حددت العبارة قائمة الأعمدة التي يتم تقسيم الجدول الجديد على طولها.

بناء الجمله

PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )

معلمات

  • partition_column

    قد يشير المعرف إلى column_identifier في الجدول. إذا قمت بتحديد أكثر من عمود واحد، يجب ألا تكون هناك تكرارات. إذا قمت بالإشارة إلى كافة الأعمدة في الجدول column_specification ، يتم رفع خطأ.

  • column_type

    ما لم يكن partition_column يشير إلى column_identifier في الجدول column_specification، column_type يحدد نوع partition_columnبيانات .

    لا تدعم جميع مصادر البيانات جميع أنواع البيانات التي يدعمها Databricks SQL.

تلاحظ

ما لم تقم بتعريف أعمدة تقسيم جدول Delta Lake التي تشير إلى الأعمدة في مواصفات العمود، يتم نقلها دائما إلى نهاية الجدول.

قسم

يمكنك استخدام PARTITION عبارة لتحديد قسم للاستعلامات أو معالجته.

يتم تعريف القسم عن طريق تسمية جميع أعمدةه وربط كل منها بقيمة. لا تحتاج إلى تحديدها بترتيب معين.

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

PARTITION ( { partition_column  [ = partition_value | LIKE pattern ] } [ , ... ] )

معلمات

  • partition_column

    عمود يسمى عمود قسم للجدول. لا يجوز لك تحديد العمود نفسه مرتين.

  • = partition_value

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

  • LIKE pattern

    يسمح بهذا النموذج فقط في ALTER SHARE ADD TABLE.

    يطابق تمثيل السلسلة من partition_column إلى pattern. pattern يجب أن تكون سلسلة حرفية كما هو مستخدم في LIKE.

امثله

-- Use the PARTTIONED BY clause in a table definition
> CREATE TABLE student(university STRING,
                       major      STRING,
                       name       STRING)
         PARTITIONED BY(university, major)

> CREATE TABLE professor(name STRING)
         PARTITIONED BY(university STRING,
                        department STRING);

-- Use the PARTITION specification to INSERT into a table
> INSERT INTO student
         PARTITION(university= 'TU Kaiserslautern') (major, name)
         SELECT major, name FROM freshmen;

-- Use the partition specification to add and drop a partition
> CREATE TABLE log(date DATE, id INT, event STRING)
     USING CSV LOCATION 'dbfs:/log'
     PARTITIONED BY (date);

> ALTER TABLE log ADD PARTITION(date = DATE'2021-09-10');

> ALTER TABLE log DROP PARTITION(date = DATE'2021-09-10');

-- Drop all partitions from the named university, independent of the major.
> ALTER TABLE student DROP PARTITION(university = 'TU Kaiserslautern');