إنشاء الكتالوجات وإدارتها

توضح هذه المقالة كيفية إنشاء الكتالوجات وإدارتها في كتالوج Unity. يحتوي الكتالوج على مخططات (قواعد بيانات)، ويحتوي المخطط على جداول وطرق عرض ووحدات تخزين ونماذج ووظائف.

إشعار

في مساحات العمل التي تم تمكينها لكتالوج Unity تلقائيا، تم إنشاء كتالوج مساحة عمل لك بشكل افتراضي. يمكن لجميع المستخدمين في مساحة العمل الخاصة بك (ومساحة العمل فقط) الوصول إليها بشكل افتراضي. راجع الخطوة 1: تأكد من تمكين مساحة العمل الخاصة بك في كتالوج Unity.

إشعار

لمعرفة كيفية إنشاء كتالوج خارجي، كائن كتالوج Unity يعكس قاعدة بيانات في نظام بيانات خارجي، راجع إنشاء كتالوج خارجي. راجع أيضا إدارة الكتالوجات الخارجية والعمل معها.

المتطلبات

لإنشاء كتالوج:

  • يجب أن تكون مسؤول Azure Databricks metastore أو أن يكون لديك الامتياز CREATE CATALOG على metastore.

  • يجب أن يكون لديك مخزن بيانات تعريف كتالوج Unity مرتبط بمساحة العمل حيث تقوم بإنشاء الكتالوج.

  • يجب أن تستخدم المجموعة التي تستخدمها لتشغيل دفتر ملاحظات لإنشاء كتالوج وضع وصول متوافق مع كتالوج Unity. راجع أوضاع الوصول.

    تدعم مستودعات SQL دائما كتالوج Unity.

إنشاء كتالوج

لإنشاء كتالوج، يمكنك استخدام مستكشف الكتالوج أو أمر SQL.

مستكشف الكتالوج

  1. سجل الدخول إلى مساحة عمل مرتبطة ب metastore.

  2. انقر فوق أيقونة الكتالوجكتالوج.

  3. انقر فوق الزر إنشاء كتالوج.

  4. حدد نوع الكتالوج الذي تريد إنشاءه:

    • الكتالوج القياسي : عنصر قابل للتأمين ينظم أصول البيانات التي تتم إدارتها بواسطة كتالوج Unity. لجميع حالات الاستخدام باستثناء Lakehouse Federation.
    • الكتالوج الخارجي : كائن قابل للتأمين في كتالوج Unity يعكس قاعدة بيانات في نظام بيانات خارجي باستخدام Lakehouse Federation. راجع نظرة عامة على إعداد Lakehouse Federation.
  5. (اختياري ولكن يوصى به بشدة) حدد موقع تخزين مدار. يتطلب الامتياز CREATE MANAGED STORAGE على الموقع الخارجي الهدف. راجع تحديد موقع تخزين مدار في كتالوج Unity.

    هام

    إذا لم يكن لمساحة العمل موقع تخزين على مستوى metastore، فيجب تحديد موقع تخزين مدار عند إنشاء كتالوج.

  6. انقر فوق Create.

  7. (اختياري) حدد مساحة العمل التي يرتبط بها الكتالوج.

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

    لمزيد من المعلومات، راجع (اختياري) تعيين كتالوج لمساحات عمل معينة.

  8. تعيين أذونات للكتالوج. راجع امتيازات كتالوج Unity والكائنات القابلة للتأمين.

Sql

  1. قم بتشغيل أمر SQL التالي في دفتر ملاحظات أو محرر Databricks SQL. العناصر الموجودة بين قوسين اختيارية. استبدل قيم العنصر النائب:

    • <catalog-name>: اسم للكتالوج.

    • <location-path>: اختياري ولكن يوصى به بشدة. قم بتوفير مسار موقع تخزين إذا كنت تريد تخزين الجداول المدارة في هذا الكتالوج في موقع يختلف عن التخزين الجذر الافتراضي الذي تم تكوينه لمخزن بيانات التعريف.

      هام

      إذا لم يكن لمساحة العمل موقع تخزين على مستوى metastore، فيجب تحديد موقع تخزين مدار عند إنشاء كتالوج.

      يجب تعريف هذا المسار في تكوين موقع خارجي، ويجب أن يكون لديك الامتياز CREATE MANAGED STORAGE على تكوين الموقع الخارجي. يمكنك استخدام المسار الذي تم تعريفه في تكوين الموقع الخارجي أو مسار فرعي (بمعنى آخر، 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' أو 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'). يتطلب Databricks Runtime 11.3 وما فوق.

    • <comment>: وصف اختياري أو تعليق آخر.

    إشعار

    إذا كنت تقوم بإنشاء كتالوج خارجي (كائن قابل للتأمين في كتالوج Unity يعكس قاعدة بيانات في نظام بيانات خارجي، يستخدم ل Lakehouse Federation)، فإن أمر SQL مختلف CREATE FOREIGN CATALOG والخيارات مختلفة. راجع إنشاء كتالوج خارجي.

    CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
       [ MANAGED LOCATION '<location-path>' ]
       [ COMMENT <comment> ];
    

    على سبيل المثال، لإنشاء كتالوج باسم example:

    CREATE CATALOG IF NOT EXISTS example;
    

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

    للحصول على أوصاف المعلمات، راجع إنشاء كتالوج.

  2. تعيين امتيازات إلى الكتالوج. راجع امتيازات كتالوج Unity والكائنات القابلة للتأمين.

عند إنشاء كتالوج، يتم إنشاء مخططين (قواعد بيانات) تلقائيا: default و information_schema.

يمكنك أيضا إنشاء كتالوج باستخدام موفر Databricks Terraform databricks_catalog. يمكنك استرداد معلومات حول الكتالوجات باستخدام databricks_catalogs.

(اختياري) تعيين كتالوج لمساحات عمل معينة

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

يمكنك السماح بالوصول للقراءة والكتابة إلى الكتالوج من مساحة عمل (الافتراضي)، أو يمكنك تحديد الوصول للقراءة فقط. إذا قمت بتحديد للقراءة فقط، فسيتم حظر جميع عمليات الكتابة من مساحة العمل هذه إلى هذا الكتالوج.

تتضمن حالات الاستخدام النموذجية لربط كتالوج بمساحات عمل معينة ما يلي:

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

مثال ربط كتالوج مساحة العمل

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

رسم تخطيطي لربط مساحة عمل الكتالوج

في هذا الرسم التخطيطي، prod_catalog مرتبط بمساحة عمل إنتاج. لنفترض أنه تم منح مستخدم حق الوصول إلى جدول في prod_catalog يسمى my_table (باستخدام GRANT SELECT ON my_table TO <user>). إذا حاول المستخدم الوصول my_table إلى مساحة عمل Dev، فسيتلقى رسالة خطأ. يمكن للمستخدم الوصول my_table فقط من مساحات عمل Prod ETL وProd Analytics.

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

ربط كتالوج بمساحات عمل واحدة أو أكثر

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

الأذونات المطلوبة: مسؤول Metastore أو مالك الكتالوج.

إشعار

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

مستكشف الكتالوج

  1. سجل الدخول إلى مساحة عمل مرتبطة ب metastore.

  2. انقر فوق أيقونة الكتالوجكتالوج.

  3. في جزء الكتالوج، على اليسار، انقر فوق اسم الكتالوج.

    يتم تعيين جزء مستكشف الكتالوج الرئيسي افتراضيا إلى قائمة الكتالوجات. يمكنك أيضا تحديد الكتالوج هناك.

  4. في علامة التبويب مساحات العمل، قم بإلغاء تحديد خانة الاختيار كافة مساحات العمل التي لديها حق الوصول .

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

  5. انقر فوق تعيين إلى مساحات العمل وأدخل مساحات العمل التي تريد تعيينها أو ابحث عنها.

  6. (اختياري) تقييد الوصول إلى مساحة العمل للقراءة فقط.

    في القائمة إدارة مستوى الوصول، حدد تغيير الوصول إلى للقراءة فقط.

    يمكنك عكس هذا التحديد في أي وقت عن طريق تحرير الكتالوج وتحديد تغيير الوصول للقراءة والكتابة.

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

Api

هناك اثنين من واجهات برمجة التطبيقات وخطوتين مطلوبتين لتعيين كتالوج إلى مساحة عمل. في الأمثلة التالية، استبدل <workspace-url> باسم مثيل مساحة العمل. لمعرفة كيفية الحصول على اسم مثيل مساحة العمل ومعرف مساحة العمل، راجع الحصول على معرفات لكائنات مساحة العمل. للتعرف على الحصول على رموز الوصول المميزة، راجع المصادقة لأتمتة Azure Databricks - نظرة عامة.

  1. catalogs استخدم واجهة برمجة التطبيقات لتعيين الكتالوج isolation mode إلى ISOLATED:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/catalogs/<my-catalog> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
     "isolation_mode": "ISOLATED"
     }'
    

    الإعداد الافتراضي isolation mode هو OPEN لكافة مساحات العمل المرفقة ب metastore.

  2. استخدم واجهة برمجة تطبيقات التحديث bindings لتعيين مساحات العمل إلى الكتالوج:

    curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
    -H 'Authorization: Bearer <my-token> \
    -H 'Content-Type: application/json' \
    --data-raw '{
      "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...],
      "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...]
    }'
    

    استخدم الخاصيتين "add" و "remove" لإضافة روابط مساحة العمل أو إزالتها. <binding-type> يمكن أن يكون إما “BINDING_TYPE_READ_WRITE” (افتراضي) أو “BINDING_TYPE_READ_ONLY”.

لسرد كافة تعيينات مساحة العمل للكتالوج، استخدم واجهة برمجة تطبيقات القائمة bindings :

   curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
   -H 'Authorization: Bearer <my-token> \

إلغاء ربط كتالوج من مساحة عمل

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

هام

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

إضافة مخططات إلى الكتالوج

لمعرفة كيفية إضافة مخططات (قواعد بيانات) إلى الكتالوج. راجع إنشاء المخططات (قواعد البيانات) وإدارتها.

عرض تفاصيل الكتالوج

لعرض معلومات حول كتالوج، يمكنك استخدام مستكشف الكتالوج أو أمر SQL.

مستكشف الكتالوج

  1. سجل الدخول إلى مساحة عمل مرتبطة ب metastore.

  2. انقر فوق أيقونة الكتالوجكتالوج.

  3. في جزء Catalog، ابحث عن الكتالوج وانقر فوق اسمه.

    يتم سرد بعض التفاصيل في أعلى الصفحة. يمكن عرض الآخرين على علامات التبويب المخططات والتفاصيل والأذونات ومساحات العمل.

Sql

قم بتشغيل أمر SQL التالي في دفتر ملاحظات أو محرر Databricks SQL. العناصر الموجودة بين قوسين اختيارية. استبدل العنصر النائب <catalog-name>.

للحصول على التفاصيل، راجع وصف الكتالوج.

DESCRIBE CATALOG <catalog-name>;

استخدم CATALOG EXTENDED للحصول على التفاصيل الكاملة.

حذف كتالوج

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

مستكشف الكتالوج

يجب حذف كافة المخططات في الكتالوج باستثناء information_schema قبل أن تتمكن من حذف كتالوج. يتضمن ذلك المخطط الذي تم إنشاؤه default تلقائيا.

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

Sql

قم بتشغيل أمر SQL التالي في دفتر ملاحظات أو محرر Databricks SQL. العناصر الموجودة بين قوسين اختيارية. استبدل العنصر النائب <catalog-name>.

للحصول على أوصاف المعلمات، راجع DROP CATALOG.

إذا كنت تستخدم DROP CATALOG بدون CASCADE الخيار ، يجب حذف كافة المخططات في الكتالوج إلا information_schema قبل أن تتمكن من حذف الكتالوج. يتضمن ذلك المخطط الذي تم إنشاؤه default تلقائيا.

DROP CATALOG [ IF EXISTS ] <catalog-name> [ RESTRICT | CASCADE ]

على سبيل المثال، لحذف كتالوج باسم vaccine ومخططاته:

DROP CATALOG vaccine CASCADE

إدارة الكتالوج الافتراضي

يتم تكوين كتالوج افتراضي لكل مساحة عمل تم تمكينها ل Unity Catalog. يتيح لك الكتالوج الافتراضي إجراء عمليات البيانات دون تحديد كتالوج. إذا حذفت اسم كتالوج المستوى الأعلى عند إجراء عمليات البيانات، فسيتم افتراض الكتالوج الافتراضي.

يمكن لمسؤول مساحة العمل عرض الكتالوج الافتراضي أو تبديله باستخدام واجهة مستخدم مسؤول الإعدادات. يمكنك أيضا تعيين الكتالوج الافتراضي لنظام مجموعة باستخدام تكوين Spark.

يتم تقييم الأوامر التي لا تحدد الكتالوج (على سبيل المثال GRANT CREATE TABLE ON SCHEMA myschema TO mygroup) للكتالوج بالترتيب التالي:

  1. هل تم تعيين الكتالوج لجلسة العمل باستخدام عبارة USE CATALOG أو إعداد JDBC؟
  2. هل تم تعيين تكوين spark.databricks.sql.initial.catalog.namespace Spark على نظام المجموعة؟
  3. هل هناك كتالوج افتراضي لمساحة العمل تم تعيينه للمجموعة؟

تكوين الكتالوج الافتراضي عند تمكين كتالوج Unity

يعتمد الكتالوج الافتراضي الذي تم تكوينه في البداية لمساحة العمل الخاصة بك على كيفية تمكين مساحة العمل الخاصة بك للكتالوج Unity:

  • بالنسبة لبعض مساحات العمل التي تم تمكينها ل "كتالوج Unity" تلقائيا، تم تعيين كتالوج مساحة العمل ككتالوج افتراضي. راجع التمكين التلقائي للكتالوج Unity.
  • بالنسبة لكافة مساحات العمل الأخرى، تم تعيين الكتالوج hive_metastore ككتالوج افتراضي.

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

تغيير الكتالوج الافتراضي

يمكن لمسؤول مساحة العمل تغيير الكتالوج الافتراضي لمساحة العمل. يمكن لأي شخص لديه إذن لإنشاء نظام مجموعة أو تحريره تعيين كتالوج افتراضي مختلف للمجموعة.

تحذير

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

لتكوين كتالوج افتراضي مختلف لمساحة عمل:

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

أعد تشغيل مستودعات SQL ومجموعاتك حتى يدخل التغيير حيز التنفيذ. ستستخدم جميع مستودعات ومجموعات SQL الجديدة والمعاد تشغيلها هذا الكتالوج كإعداد افتراضي لمساحة العمل.

يمكنك أيضا تجاوز الكتالوج الافتراضي لمجموعة معينة عن طريق تعيين تكوين Spark التالي على نظام المجموعة. هذا الأسلوب غير متوفر لمستودعات SQL:

spark.databricks.sql.initial.catalog.name

للحصول على الإرشادات، راجع تكوين Spark.

عرض الكتالوج الافتراضي الحالي

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

إعدادات الإدارة

  1. سجل الدخول إلى مساحة العمل كمسؤول مساحة عمل.
  2. انقر فوق اسم المستخدم في الشريط العلوي لمساحة العمل وحدد الإعدادات من القائمة المنسدلة.
  3. انقر فوق علامة التبويب خيارات متقدمة.
  4. في الكتالوج الافتراضي لصف مساحة العمل، اعرض اسم الكتالوج.

Sql

قم بتشغيل الأمر التالي في دفتر ملاحظات أو استعلام محرر SQL قيد التشغيل على مستودع SQL أو نظام مجموعة متوافق مع كتالوج Unity. يتم إرجاع الكتالوج الافتراضي لمساحة العمل طالما لم يتم تعيين أي USE CATALOG عبارة أو إعداد JDBC في جلسة العمل، وطالما لم spark.databricks.sql.initial.catalog.namespace يتم تعيين تكوين لنظام المجموعة.

SELECT current_catalog();