إنشاء مخطط

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

إنشاء مخطط (قاعدة بيانات) بالاسم المحدد. إذا كان هناك مخطط بنفس الاسم موجود بالفعل، يتم طرح استثناء.

بناء الجملة

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ COMMENT schema_comment ]
    [ LOCATION schema_directory | MANAGED LOCATION location_path ]
    [ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]

المعلمات

  • schema_name

    اسم المخطط الذي سيتم إنشاؤه.

    يمكن أن تحتوي المخططات التي تم إنشاؤها في الكتالوج hive_metastore على أحرف ASCII أبجدية رقمية فقط وتسطير أسفل السطر (INVALID_SCHEMA_OR_RELATION_NAME).

  • إذا لم يكن موجودا

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

  • مكان schema_directory

    LOCATION غير معتمد في كتالوج Unity. إذا كنت تريد تحديد موقع تخزين لمخطط في كتالوج Unity، فاستخدم MANAGED LOCATION.

    schema_directory هي قيمة حرفية STRING . مسار نظام الملفات الذي سيتم إنشاء المخطط المحدد فيه. إذا لم يكن المسار المحدد موجودا في نظام الملفات الأساسي، ينشئ دليلا بالمسار. إذا لم يتم تحديد الموقع، يتم إنشاء المخطط في دليل المستودع الافتراضي، الذي يتم تكوين مساره بواسطة التكوين spark.sql.warehouse.dirالثابت .

    تحذير

    إذا تم تسجيل مخطط (قاعدة بيانات) في Hive metastore على مستوى مساحة العمل، فإن إسقاط هذا المخطط باستخدام CASCADE الخيار يؤدي إلى حذف جميع الملفات في موقع المخطط هذا بشكل متكرر، بغض النظر عن نوع الجدول (مدار أو خارجي).

    إذا تم تسجيل المخطط في مخزن بيانات تعريف كتالوج Unity، يتم حذف ملفات الجداول المدارة كتالوج Unity بشكل متكرر. ومع ذلك، لا يتم حذف ملفات الجداول الخارجية. يجب إدارة هذه الملفات باستخدام موفر التخزين السحابي مباشرة.

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

  • التعليق schema_comment

    قيمة حرفية STRING . وصف المخطط.

  • الموقع المدار location_path

    MANAGED LOCATION اختياري ويتطلب كتالوج Unity. إذا كنت تريد تحديد موقع تخزين لمخطط مسجل في Hive على مستوى مساحة العمل أو metastore التابع لجهة خارجية، فاستخدم LOCATION بدلا من ذلك.

    location_path يجب أن تكون قيمة حرفية STRING . يحدد المسار إلى موقع جذر تخزين للمخطط الذي يختلف عن موقع جذر التخزين للكتالوج أو metastore. يجب تعريف هذا المسار في تكوين موقع خارجي، ويجب أن يكون لديك الامتياز CREATE MANAGED STORAGE على تكوين الموقع الخارجي. يمكنك استخدام المسار الذي تم تعريفه في تكوين الموقع الخارجي أو مسار فرعي (بمعنى آخر، 'abfss://container@storageaccount.dfs.core.windows.net/finance' أو 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). مدعوم في Databricks SQL أو على أنظمة المجموعات التي تقوم بتشغيل Databricks Runtime 11.3 LTS وما فوق.

    راجع أيضا العمل مع الجداول المدارة وإنشاء مخزن بيانات تعريف كتالوج Unity.

  • WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )

    خصائص المخطط في أزواج قيم المفاتيح.

  • خيارات

    تعيين معلمات محددة من نوع الاتصال اللازمة لتعريف الكتالوج في الاتصال.

    • option

      مفتاح الخيار. يمكن أن يتكون المفتاح من معرف واحد أو أكثر مفصول بنقطة أو حرفيةSTRING.

      يجب أن تكون مفاتيح الخيارات فريدة وأن تكون حساسة لحالة الأحرف.

    • value

      قيمة الخيار . يجب أن تكون القيمة تعبير ثابت BOOLEANSTRINGINTEGERأو.DECIMAL قد تكون القيمة أيضا استدعاء لدالة SECRET SQL. على سبيل المثال، value قد يتكون secret('secrets.r.us', 'postgresPassword') ل password بدلا من إدخال كلمة المرور الحرفية.

الأمثلة

-- Create schema `customer_sc`. This throws exception if schema with name customer_sc
-- already exists.
> CREATE SCHEMA customer_sc;

-- Create schema `customer_sc` only if schema with same name doesn't exist.
> CREATE SCHEMA IF NOT EXISTS customer_sc;

-- Create schema `customer_sc` only if schema with same name doesn't exist with
-- `Comments`,`Specific Location` and `Database properties`. LOCATION is not supported in Unity Catalog.
> CREATE SCHEMA IF NOT EXISTS customer_sc COMMENT 'This is customer schema' LOCATION '/samplepath'
    WITH DBPROPERTIES (ID=001, Name='John');

-- Create schema with a different managed storage location than the metastore's. MANAGED LOCATION is supported only in Unity Catalog.
> CREATE SCHEMA customer_sc MANAGED LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/finance';

-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED customer_sc;
database_description_item database_description_value
------------------------- --------------------------
            Database Name                customer_sc
              Description  This is customer schema
                  Location      hdfs://hacluster/samplepath
                Properties    ((ID,001), (Name,John))