الأقسام

ينطبق على: وضع علامة 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
     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');