كائنات البيانات في مستودع Databricks

ينظم مستودع Databricks البيانات المخزنة مع Delta Lake في تخزين كائن السحابة مع علاقات مألوفة مثل قاعدة البيانات والجداول وطرق العرض. يجمع هذا النموذج بين العديد من فوائد مستودع بيانات المؤسسة مع قابلية التوسع والمرونة في مستودع البيانات. تعرف على المزيد حول كيفية عمل هذا النموذج، والعلاقة بين بيانات العنصر وبيانات التعريف بحيث يمكنك تطبيق أفضل الممارسات عند تصميم Databricks lakehouse وتنفيذها لمؤسستك.

ما هي كائنات البيانات الموجودة في مستودع Databricks؟

تجمع بنية Databricks lakehouse بين البيانات المخزنة مع بروتوكول Delta Lake في تخزين كائن السحابة مع بيانات التعريف المسجلة في مخزن بيانات التعريف. هناك خمسة كائنات أساسية في مستودع Databricks:

  • الكتالوج: تجميع لقواعد البيانات.
  • قاعدة البيانات أو المخطط: تجميع الكائنات في كتالوج. تحتوي قواعد البيانات على جداول وطرق عرض ووظائف.
  • الجدول: مجموعة من الصفوف والأعمدة المخزنة كملفات بيانات في تخزين الكائن.
  • طريقة العرض: عادة ما يكون الاستعلام المحفوظ مقابل جدول واحد أو أكثر أو مصدر بيانات.
  • دالة: منطق محفوظ يرجع قيمة عددية أو مجموعة من الصفوف.

Unity Catalog object model diagram

للحصول على معلومات حول تأمين الكائنات باستخدام كتالوج Unity، راجع نموذج العناصر القابلة للتأمين.

ما هو metastore؟

يحتوي metastore على جميع بيانات التعريف التي تحدد كائنات البيانات في lakehouse. يوفر Azure Databricks خيارات metastore التالية:

  • مخزن بيانات تعريف كتالوج Unity: يوفر كتالوج Unity إمكانية مركزية للتحكم في الوصول والتدقيق والنسل واكتشاف البيانات. يمكنك إنشاء مخازن تعريف كتالوج Unity على مستوى حساب Azure Databricks، ويمكن استخدام مخزن بيانات تعريف واحد عبر مساحات عمل متعددة.

    يتم تكوين كل مخزن بيانات تعريف كتالوج Unity مع موقع تخزين جذر في حاوية Azure Data Lake Storage Gen2 في حساب Azure الخاص بك. يتم استخدام موقع التخزين هذا بشكل افتراضي لتخزين البيانات للجداول المدارة.

    في كتالوج Unity، تكون البيانات آمنة بشكل افتراضي. في البداية، لا يمكن للمستخدمين الوصول إلى البيانات في metastore. يمكن منح الوصول إما من قبل مسؤول metastore أو مالك كائن. الكائنات القابلة للتأمين في كتالوج Unity هرمية ويتم توريث الامتيازات لأسفل. يوفر كتالوج Unity مكانا واحدا لإدارة نهج الوصول إلى البيانات. يمكن للمستخدمين الوصول إلى البيانات في كتالوج Unity من أي مساحة عمل يتم إرفاق metastore بها. لمزيد من المعلومات، راجع إدارة الامتيازات في كتالوج Unity.

  • Hive metastore المضمن (قديم): تتضمن كل مساحة عمل Azure Databricks مخزن بيانات Hive مضمنا كخدمة مدارة. يتم نشر مثيل metastore في كل نظام مجموعة والوصول بأمان إلى بيانات التعريف من مستودع مركزي لكل مساحة عمل عميل.

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

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

  • مخزن بيانات الخلية الخارجي (قديم): يمكنك أيضا إحضار metastore الخاص بك إلى Azure Databricks. يمكن لمجموعات Azure Databricks الاتصال بمخازن بيانات تعريف Apache Hive الخارجية الموجودة. يمكنك استخدام التحكم في الوصول إلى الجدول لإدارة الأذونات في metastore خارجي. لا يتم تخزين عناصر التحكم في الوصول إلى الجدول في metastore الخارجي، وبالتالي يجب تكوينها بشكل منفصل لكل مساحة عمل. توصي Databricks باستخدام كتالوج Unity بدلا من ذلك لبساطته ونموذج الحوكمة الذي يتمحور حول الحساب.

بغض النظر عن metastore الذي تستخدمه، يخزن Azure Databricks جميع بيانات الجدول في تخزين الكائن في حسابك على السحابة.

ما هو الكتالوج؟

الكتالوج هو أعلى تجريد (أو حبة خاطفة) في النموذج العلائقي لبحيرة Databricks. سيتم إقران كل قاعدة بيانات بكتالوج. توجد الكتالوجات ككائنات داخل metastore.

قبل إدخال كتالوج Unity، استخدم Azure Databricks مساحة اسم من طبقتين. الكتالوجات هي المستوى الثالث في نموذج تسمية كتالوج Unity:

catalog_name.database_name.table_name

يدعم Hive metastore المضمن كتالوج واحد فقط، hive_metastore.

ما هي قاعدة البيانات؟

قاعدة البيانات هي مجموعة من كائنات البيانات، مثل الجداول أو طرق العرض (تسمى أيضا "العلاقات")، والوظائف. في Azure Databricks، يتم استخدام مصطلحي "المخطط" و"قاعدة البيانات" بالتبادل (بينما في العديد من الأنظمة العلائقية، قاعدة البيانات هي مجموعة من المخططات).

ستقترن قواعد البيانات دائما بموقع على تخزين كائن السحابة. يمكنك اختياريا تحديد LOCATION عند تسجيل قاعدة بيانات، مع الأخذ في الاعتبار ما يلي:

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

هذا التفاعل بين المواقع التي تديرها قاعدة البيانات وملفات البيانات مهم جدا. لتجنب حذف البيانات عن طريق الخطأ:

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

ما هو الجدول؟

جدول Azure Databricks عبارة عن مجموعة من البيانات المنظمة. يخزن جدول Delta البيانات كدليل للملفات على تخزين كائن السحابة ويسجل بيانات تعريف الجدول إلى metastore داخل كتالوج ومخطط. نظرا لأن Delta Lake هو موفر التخزين الافتراضي للجداول التي تم إنشاؤها في Azure Databricks، فإن جميع الجداول التي تم إنشاؤها في Databricks هي جداول دلتا، بشكل افتراضي. نظرا لأن جداول Delta تخزن البيانات في تخزين الكائنات السحابية وتوفر مراجع للبيانات من خلال مخزن بيانات التعريف، يمكن للمستخدمين عبر المؤسسة الوصول إلى البيانات باستخدام واجهات برمجة التطبيقات المفضلة لديهم؛ على Databricks، يتضمن ذلك SQL وPython وPySpark وSc scala وR.

لاحظ أنه من الممكن إنشاء جداول على Databricks ليست جداول Delta. هذه الجداول غير مدعومة من قبل Delta Lake، ولن توفر معاملات ACID والأداء الأمثل لجداول Delta. تتضمن الجداول التي تندرج في هذه الفئة جداول مسجلة مقابل البيانات في الأنظمة الخارجية والجداول المسجلة مقابل تنسيقات الملفات الأخرى في مستودع البيانات. راجع الاتصال لمصادر البيانات.

هناك نوعان من الجداول في Databricks، الجداول المدارة وغير المدارة (أو الخارجية).

إشعار

لا يتم فرض تمييز Delta Live Tables بين الجداول المباشرة والجداول المباشرة المتدفقة من منظور الجدول.

ما هو الجدول المدار؟

يدير Azure Databricks كلا من بيانات التعريف والبيانات لجدول مدار؛ عند إسقاط جدول، يمكنك أيضا حذف البيانات الأساسية. قد يفضل محللو البيانات والمستخدمون الآخرون الذين يعملون في الغالب في SQL هذا السلوك. الجداول المدارة هي الإعداد الافتراضي عند إنشاء جدول. توجد بيانات الجدول المدار في LOCATION قاعدة البيانات المسجلة فيه. تعني هذه العلاقة المدارة بين موقع البيانات وقاعدة البيانات أنه من أجل نقل جدول مدار إلى قاعدة بيانات جديدة، يجب إعادة كتابة كافة البيانات إلى الموقع الجديد.

هناك عدد من الطرق لإنشاء جداول مدارة، بما في ذلك:

CREATE TABLE table_name AS SELECT * FROM another_table
CREATE TABLE table_name (field_name1 INT, field_name2 STRING)
df.write.saveAsTable("table_name")

ما هو الجدول غير المدار؟

يدير Azure Databricks بيانات التعريف للجداول غير المدارة (الخارجية) فقط؛ عند إسقاط جدول، لا تؤثر على البيانات الأساسية. ستحدد LOCATION الجداول غير المدارة دائما أثناء إنشاء الجدول؛ يمكنك إما تسجيل دليل موجود لملفات البيانات كجدول أو توفير مسار عند تعريف جدول لأول مرة. نظرا لإدارة البيانات وبيانات التعريف بشكل مستقل، يمكنك إعادة تسمية جدول أو تسجيله في قاعدة بيانات جديدة دون الحاجة إلى نقل أي بيانات. غالبا ما يفضل مهندسو البيانات الجداول غير المدارة والمرونة التي يوفرونها لبيانات الإنتاج.

هناك عدد من الطرق لإنشاء جداول غير مدارة، بما في ذلك:

CREATE TABLE table_name
USING DELTA
LOCATION '/path/to/existing/data'
CREATE TABLE table_name
(field_name1 INT, field_name2 STRING)
LOCATION '/path/to/empty/directory'
df.write.option("path", "/path/to/empty/directory").saveAsTable("table_name")

ما هي طريقة العرض؟

تخزن طريقة العرض نص استعلام عادة مقابل واحد أو أكثر من مصادر البيانات أو الجداول في metastore. في Databricks، تكون طريقة العرض مكافئة لاستمرار Spark DataFrame ككائن في قاعدة بيانات. على عكس DataFrames، يمكنك الاستعلام عن طرق العرض من أي جزء من منتج Databricks، بافتراض أن لديك الإذن للقيام بذلك. لا يؤدي إنشاء طريقة عرض إلى معالجة أي بيانات أو كتابتها؛ يتم تسجيل نص الاستعلام فقط في metastore في قاعدة البيانات المقترنة.

ما هي طريقة العرض المؤقتة؟

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

  • في دفاتر الملاحظات والمهام، يتم تحديد نطاق طرق العرض المؤقتة إلى مستوى دفتر الملاحظات أو البرنامج النصي. لا يمكن الرجوع إليها خارج دفتر الملاحظات الذي تم الإعلان عنها فيه، ولن تكون موجودة بعد الآن عند فصل دفتر الملاحظات عن نظام المجموعة.
  • في Databricks SQL، يتم تحديد نطاق طرق العرض المؤقتة إلى مستوى الاستعلام. يمكن أن تستخدم عبارات متعددة داخل نفس الاستعلام طريقة العرض المؤقتة، ولكن لا يمكن الرجوع إليها في استعلامات أخرى، حتى داخل نفس لوحة المعلومات.
  • يتم تحديد نطاق طرق العرض المؤقتة العمومية على مستوى نظام المجموعة ويمكن مشاركتها بين دفاتر الملاحظات أو المهام التي تشترك في موارد الحوسبة. توصي Databricks باستخدام طرق العرض مع قوائم التحكم بالوصول للجداول المناسبة بدلا من طرق العرض المؤقتة العمومية.

ما هي الدالة؟

تسمح لك الوظائف بربط المنطق المعرف من قبل المستخدم بقاعدة بيانات. يمكن أن ترجع الدالات إما قيما عددية أو مجموعات من الصفوف. تستخدم الدالات لتجميع البيانات. يسمح لك Azure Databricks بحفظ الوظائف بلغات مختلفة اعتمادا على سياق التنفيذ الخاص بك، مع دعم SQL على نطاق واسع. يمكنك استخدام الدالات لتوفير وصول مدار إلى منطق مخصص عبر مجموعة متنوعة من السياقات على منتج Databricks.

كيف تعمل الكائنات الارتباطية في Delta Live Tables؟

تستخدم Delta Live Tables بناء الجملة التعريفي لتعريف DDL وDML ونشر البنية الأساسية وإدارتها. تستخدم Delta Live Tables مفهوم "مخطط ظاهري" أثناء التخطيط المنطقي والتنفيذ. يمكن أن تتفاعل Delta Live Tables مع قواعد البيانات الأخرى في بيئة Databricks الخاصة بك، ويمكن ل Delta Live Tables نشر الجداول واستمرارها للاستعلام في مكان آخر عن طريق تحديد قاعدة بيانات هدف في إعدادات تكوين البنية الأساسية لبرنامج ربط العمليات التجارية.

جميع الجداول التي تم إنشاؤها في Delta Live Tables هي جداول Delta. عند استخدام كتالوج Unity مع جداول Delta Live، تكون جميع الجداول هي جداول مدارة في كتالوج Unity. إذا لم يكن كتالوج Unity نشطا، يمكن تعريف الجداول كجداول مدارة أو غير مدارة.

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

ستقوم بعض العمليات، مثل APPLY CHANGES INTO، بتسجيل كل من الجدول وطريقة العرض إلى قاعدة البيانات؛ وسيبدأ اسم الجدول بتسطير أسفل السطر (_) وسيعلن اسم الجدول في طريقة العرض كهدف للعملية APPLY CHANGES INTO . يستعلم العرض عن الجدول المخفي المقابل لتجسيد النتائج.