أفضل ممارسات كتالوج Unity

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

كتالوج Unity هو حل تحكم دقيق للبيانات الذكاء الاصطناعي على النظام الأساسي Databricks. يساعد على تبسيط أمان بياناتك وإدارتها من خلال توفير مكان مركزي لإدارة الوصول إلى البيانات وتدققه. Delta Sharing هو نظام أساسي آمن لمشاركة البيانات يتيح لك مشاركة البيانات في Azure Databricks مع مستخدمين من خارج مؤسستك. يستخدم كتالوج Unity لإدارة سلوك المشاركة وتدققه.

كتل إنشاء إدارة البيانات وعزل البيانات

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

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

رسم تخطيطي لنموذج كائن كتالوج Unity

تتضمن الكائنات في هذا التسلسل الهرمي ما يلي:

  • Metastore: metastore هو حاوية المستوى الأعلى للكائنات في كتالوج Unity. تعيش Metastores على مستوى الحساب وتعمل كأعلى الهرم في نموذج إدارة بيانات Azure Databricks.

    تدير Metastores أصول البيانات (الجداول وطرق العرض ووحدات التخزين) والأذونات التي تحكم الوصول إليها. يمكن لمسؤولي حساب Azure Databricks إنشاء مخزن بيانات تعريف واحد لكل منطقة يعملون فيها، وتعيينهم إلى مساحات عمل Azure Databricks متعددة في نفس المنطقة. يمكن لمسؤولي Metastore إدارة جميع الكائنات في metastore. ليس لديهم حق الوصول المباشر للقراءة والكتابة إلى الجداول المسجلة في metastore، ولكن لديهم وصول غير مباشر من خلال قدرتهم على نقل ملكية كائن البيانات.

    التخزين الفعلي لأي مخزن بيانات تعريف معين، بشكل افتراضي، معزول عن التخزين لأي مخزن بيانات تعريف آخر في حسابك.

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

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

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

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

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

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

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

    يمكن تخزين المخططات في نفس التخزين الفعلي مثل الكتالوج الأصل، أو يمكنك تكوين مخطط ليتم تخزينه بشكل منفصل عن بقية الكتالوج الأصل.

    يمكن لمسؤولي Metastore ومالكي الكتالوجات الأصليين ومالكي المخططات إدارة الوصول إلى المخططات.

  • الجداول: توجد الجداول في الطبقة الثالثة من مساحة الاسم ثلاثية المستوى في كتالوج Unity. تحتوي على صفوف من البيانات.

    يتيح لك كتالوج Unity إنشاء جداول مدارة وجداول خارجية.

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

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

    يمكن لمالكي الكتالوجات الأصليين ومالكي المخططات إدارة الوصول إلى الجداول، كما يمكن لمسؤولي metastore (بشكل غير مباشر).

  • طرق العرض: طريقة العرض هي كائن للقراءة فقط مشتق من جدول واحد أو أكثر وطرق عرض في metastore.

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

  • وحدات التخزين: توجد وحدات التخزين في الطبقة الثالثة من مساحة الاسم ثلاثية المستوى في كتالوج Unity. يديرون البيانات غير الجدولية. يمكنك استخدام وحدات التخزين لتخزين الملفات وتنظيمها والوصول إليها بأي تنسيق، بما في ذلك البيانات المنظمة وشبه المنظمة وغير المنظمة. لا يمكن تسجيل الملفات في وحدات التخزين كجداول.

  • النماذج والوظائف: على الرغم من أنها ليست، بشكل صارم، يمكن أيضا إدارة أصول البيانات والنماذج المسجلة والوظائف المعرفة من قبل المستخدم في كتالوج Unity والموجودة في أدنى مستوى في التسلسل الهرمي للكائنات. راجع إدارة دورة حياة النموذج في كتالوج Unity والوظائف المعرفة من قبل المستخدم (UDFs) في كتالوج Unity.

تخطيط نموذج عزل البيانات

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

قد تختلف معايير العزل لمؤسستك، ولكنها تتضمن عادة التوقعات التالية:

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

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

يمكن للمستخدمين الوصول إلى البيانات استنادا إلى قواعد وصول محددة فقط

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

يمكن إدارة البيانات فقط من قبل أشخاص معينين أو فرق معينة

يمنحك كتالوج Unity القدرة على الاختيار بين نماذج الحوكمة المركزية والموزعة.

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

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

بغض النظر عما إذا كنت تختار metastore أو الكتالوجات كمجال بيانات، توصي Databricks بشدة بتعيين مجموعة كمسؤول metastore أو مالك الكتالوج.

ملكية كتالوج Unity والوصول إليه

يتم فصل البيانات فعليا في التخزين

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

يمنح كتالوج Unity القدرة على تكوين مواقع التخزين على مستوى metastore أو الكتالوج أو المخطط لتلبية مثل هذه المتطلبات.

على سبيل المثال، لنفترض أن مؤسستك لديها نهج توافق مع الشركة يتطلب وجود بيانات الإنتاج المتعلقة بالموارد البشرية في الحاوية abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. في كتالوج Unity، يمكنك تحقيق هذا المطلب عن طريق تعيين موقع على مستوى الكتالوج، وإنشاء كتالوج يسمى، على سبيل المثال hr_prod، وتعيين الموقع abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog إليه. وهذا يعني أن الجداول أو وحدات التخزين المدارة التي تم إنشاؤها في الكتالوج hr_prod (على سبيل المثال، باستخدام CREATE TABLE hr_prod.default.table …) تخزن بياناتها في abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. اختياريا، يمكنك اختيار توفير مواقع على مستوى المخطط لتنظيم البيانات داخل hr_prod catalog على مستوى أكثر دقة.

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

يقيم النظام التسلسل الهرمي لمواقع التخزين من المخطط إلى الكتالوج إلى metastore.

على سبيل المثال، إذا تم إنشاء جدول myCatalog.mySchema.myTable في my-region-metastore، يتم تحديد موقع تخزين الجدول وفقا للقاعدة التالية:

  1. إذا تم توفير موقع ل mySchema، فسيتم تخزينه هناك.
  2. إذا لم يكن الأمر كذلك، وتم توفير موقع على myCatalog، فسيتم تخزينه هناك.
  3. وأخيرا، إذا لم يتم توفير أي موقع على myCatalog، فسيتم تخزينه في الموقع المقترن my-region-metastoreب .

التسلسل الهرمي لتخزين كتالوج Unity

لا يمكن الوصول إلى البيانات إلا في البيئات المعينة

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

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

الآن دعونا نلقي نظرة أعمق على عملية إعداد كتالوج Unity لتلبية احتياجاتك.

تكوين مخزن بيانات تعريف كتالوج Unity

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

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

تلميحات لتكوين المخازن الوصفية:

  • يجب عليك إعداد metastore واحد لكل منطقة يكون لديك فيها مساحات عمل Azure Databricks.

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

  • يمكن تكوين كل مخزن بيانات التعريف مع موقع تخزين مدار (يسمى أيضا التخزين الجذر) في مستأجر السحابة الخاص بك الذي يمكن استخدامه لتخزين الجداول المدارة ووحدات التخزين المدارة.

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

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

  • يجب أن تفهم امتيازات مسؤولي مساحة العمل في مساحات العمل التي تم تمكينها لكتالوج Unity، ومراجعة تعيينات مسؤول مساحة العمل الحالية.

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

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

  • إذا كنت تستخدم مساحات العمل لعزل الوصول إلى بيانات المستخدم، فقد تحتاج إلى استخدام روابط كتالوج مساحة العمل. تمكنك روابط كتالوج مساحة العمل من تقييد الوصول إلى الكتالوج حسب حدود مساحة العمل. على سبيل المثال، يمكنك التأكد من أن مسؤولي مساحة العمل والمستخدمين يمكنهم الوصول إلى بيانات الإنتاج فقط من prod_catalog بيئة مساحة عمل الإنتاج، prod_workspace. الإعداد الافتراضي هو مشاركة الكتالوج مع كافة مساحات العمل المرفقة بمخزن بيانات التعريف الحالي. راجع (اختياري) تعيين كتالوج لمساحات عمل معينة.

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

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

تكوين المواقع الخارجية وبيانات اعتماد التخزين

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

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

تغلف بيانات اعتماد التخزين بيانات اعتماد سحابية طويلة الأجل توفر الوصول إلى التخزين السحابي. يمكن أن تكون إما هوية مدارة من Azure (مستحسن بشدة) أو كيان خدمة. استخدام هوية مدارة من Azure له الفوائد التالية على استخدام كيان الخدمة:

  • لا تتطلب منك الهويات المدارة الاحتفاظ ببيانات الاعتماد أو تدوير الأسرار.
  • إذا تم نشر مساحة عمل Azure Databricks إلى الشبكة الظاهرية الخاصة بك (المعروفة أيضا باسم حقن الشبكة الظاهرية)، يمكنك الاتصال بحساب Azure Data Lake Storage Gen2 المحمي بجدار حماية التخزين.

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

تلميح

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

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

تنظيم بياناتك

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

كتالوجات كتالوج Unity

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

يمكن إدارة الكائنات التي يحكمها كتالوج Unity أو خارجي:

  • الكائنات المدارة هي الطريقة الافتراضية لإنشاء كائنات البيانات في كتالوج Unity.

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

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

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

    تستخدم الجداول المدارة دائما تنسيق جدول Delta .

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

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

    تدعم الجداول الخارجية Delta Lake والعديد من تنسيقات البيانات الأخرى، بما في ذلك Parquet وJSON وCSV. يمكن استخدام كل من وحدات التخزين المدارة والخارجية للوصول إلى الملفات ذات التنسيقات العشوائية وتخزينها: يمكن أن تكون البيانات منظمة أو شبه منظمة أو غير منظمة البنية.

لمزيد من المعلومات حول إنشاء الجداول ووحدات التخزين، راجع إنشاء جداول في كتالوج Unity وإنشاء وحدات التخزين والعمل معها.

إدارة المواقع الخارجية والجداول الخارجية ووحدات التخزين الخارجية

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

المواقع الخارجية

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

إشعار

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

التوصيات لاستخدام مواقع خارجية

التوصيات لمنح أذونات على مواقع خارجية:

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

    توفر المواقع الخارجية الوصول من داخل كتالوج Unity إلى موقع شامل على نطاق واسع في التخزين السحابي - على سبيل المثال، مستودع أو حاوية بأكملها (abfss://my-container@storage-account.dfs.core.windows.net) أو مسار فرعي واسع (abfss://my-container@storage-account.dfs.core.windows.net/مسار/إلى/دليل فرعي). الهدف هو أن يشارك مسؤول السحابة في إعداد بعض المواقع الخارجية ثم تفويض مسؤولية إدارة هذه المواقع إلى مسؤول Azure Databricks في مؤسستك. يمكن لمسؤول Azure Databricks بعد ذلك تنظيم الموقع الخارجي بشكل أكبر في مناطق ذات أذونات أكثر دقة عن طريق تسجيل وحدات التخزين الخارجية أو الجداول الخارجية في بادئات معينة ضمن الموقع الخارجي.

    نظرا لأن المواقع الخارجية شاملة جدا، توصي Databricks بمنح CREATE EXTERNAL LOCATION الإذن فقط للمسؤول المكلف بإعداد الاتصالات بين كتالوج Unity والتخزين السحابي، أو لمهندسي البيانات الموثوق بهم. لتزويد المستخدمين الآخرين بإمكانية وصول أكثر دقة، توصي Databricks بتسجيل جداول أو وحدات تخزين خارجية أعلى المواقع الخارجية ومنح المستخدمين حق الوصول إلى البيانات باستخدام وحدات التخزين أو الجداول. نظرا لأن الجداول ووحدات التخزين تابعة للكتالوج والمخطط، فإن مسؤولي الكتالوج أو المخطط لديهم التحكم النهائي في أذونات الوصول.

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

  • لا تمنح المستخدمين النهائيين أذونات عامة READ FILES أو WRITE FILES أذونات على مواقع خارجية.

    مع توفر وحدات التخزين، يجب ألا يستخدم المستخدمون مواقع خارجية لأي شيء باستثناء إنشاء الجداول أو وحدات التخزين أو المواقع المدارة. يجب ألا تستخدم المواقع الخارجية للوصول المستند إلى المسار لعلوم البيانات أو حالات استخدام البيانات الأخرى غير الجدولية.

    توفر وحدات التخزين الدعم للعمل مع الملفات باستخدام أوامر SQL وdbutils وSpark APIs وواجهات برمجة تطبيقات REST وTerraform وواجهة مستخدم لاستعراض الملفات وتحميلها وتنزيلها. علاوة على ذلك، توفر وحدات التخزين تحميل FUSE الذي يمكن الوصول إليه على نظام الملفات المحلي ضمن /Volumes/<catalog_name>/<schema_name>/<volume_name>/. يسمح تحميل FUSE لعلماء البيانات ومهندسي التعلم الآلي بالوصول إلى الملفات كما لو كانت في نظام ملفات محلي، كما هو مطلوب من قبل العديد من مكتبات التعلم الآلي أو نظام التشغيل.

    إذا كان يجب عليك منح حق الوصول المباشر إلى الملفات في موقع خارجي (لاستكشاف الملفات في التخزين السحابي قبل أن يقوم المستخدم بإنشاء جدول أو وحدة تخزين خارجية، على سبيل المثال)، يمكنك منح READ FILES. حالات الاستخدام لمنح WRITE FILES نادرة.

يجب استخدام مواقع خارجية للقيام بما يلي:

  • تسجيل الجداول ووحدات التخزين الخارجية باستخدام CREATE EXTERNAL VOLUME الأوامر أو CREATE TABLE .
  • استكشف الملفات الموجودة في التخزين السحابي قبل إنشاء جدول خارجي أو وحدة تخزين في بادئة معينة. الامتياز READ FILES شرط مسبق.
  • تسجيل موقع كمخزن مدار للكتالوجات والمخططات بدلا من مستودع جذر metastore. الامتياز CREATE MANAGED STORAGE شرط مسبق.

مزيد من التوصيات لاستخدام المواقع الخارجية:

  • تجنب تعارضات تداخل المسار: لا تنشئ أبدا وحدات تخزين خارجية أو جداول في جذر موقع خارجي.

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

التوصيات لاستخدام وحدات التخزين الخارجية

يجب استخدام وحدات التخزين الخارجية للقيام بما يلي:

  • تسجيل مناطق الهبوط للبيانات الأولية التي تنتجها الأنظمة الخارجية لدعم معالجتها في المراحل المبكرة من مسارات ETL وأنشطة هندسة البيانات الأخرى.
  • تسجيل مواقع التقسيم المرحلي لاستيعابها، على سبيل المثال، باستخدام عبارات التحميل التلقائي أو COPY INTOأو CTAS (CREATE TABLE AS).
  • توفير مواقع تخزين الملفات لعلماء البيانات ومحللي البيانات ومهندسي التعلم الآلي لاستخدامها كأجزاء من تحليل البيانات الاستكشافية ومهام علوم البيانات الأخرى، عندما لا تكون وحدات التخزين المدارة خيارا.
  • منح مستخدمي Azure Databricks حق الوصول إلى الملفات العشوائية التي يتم إنتاجها وإيداعها في التخزين السحابي بواسطة أنظمة أخرى، على سبيل المثال، مجموعات كبيرة من البيانات غير المنظمة (مثل ملفات الصور والصوت والفيديو وملفات PDF) التي تم التقاطها بواسطة أنظمة المراقبة أو أجهزة IoT، أو ملفات المكتبة (ملفات عجلة JARs وPython) التي تم تصديرها من أنظمة إدارة التبعية المحلية أو مسارات CI/CD.
  • تخزين البيانات التشغيلية، مثل ملفات تسجيل الدخول أو نقاط التفتيش، عندما لا تكون وحدات التخزين المدارة خيارا.

مزيد من التوصيات لاستخدام وحدات التخزين الخارجية:

  • توصي Databricks بإنشاء وحدات تخزين خارجية من موقع خارجي واحد داخل مخطط واحد.

تلميح

بالنسبة لحالات استخدام الاستيعاب التي يتم فيها نسخ البيانات إلى موقع آخر - على سبيل المثال باستخدام أداة التحميل التلقائي أو COPY INTO- استخدم وحدات التخزين الخارجية. استخدم الجداول الخارجية عندما تريد الاستعلام عن البيانات في مكانها كجدول، دون تضمين أي نسخة.

التوصيات لاستخدام الجداول الخارجية

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

مزيد من التوصيات لاستخدام الجداول الخارجية:

  • توصي Databricks بإنشاء جداول خارجية باستخدام موقع خارجي واحد لكل مخطط.
  • توصي Databricks بشدة ضد تسجيل جدول كجدول خارجي في أكثر من مخزن بيانات تعريف واحد بسبب مخاطر مشكلات التناسق. على سبيل المثال، لن يتم تسجيل تغيير في المخطط في metastore واحد في metastore الثاني. استخدم Delta Sharing لمشاركة البيانات بين المخازن الوصفية. راجع مشاركة البيانات بأمان باستخدام Delta Sharing.

تكوين التحكم بالوصول

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

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

لقراءة البيانات من جدول أو عرض يجب أن يتمتع المستخدم بالامتيازات التالية:

  • SELECT على الجدول أو طريقة العرض
  • USE SCHEMA على المخطط الذي يمتلك الجدول
  • USE CATALOG على الكتالوج الذي يمتلك المخطط

USE CATALOG تمكين من يمنح من اجتياز الكتالوج من أجل الوصول إلى الكائنات USE SCHEMA التابعة له وتمكين المنحة من اجتياز المخطط من أجل الوصول إلى الكائنات التابعة له. على سبيل المثال، لتحديد البيانات من جدول، يحتاج المستخدمون إلى الحصول SELECT على الامتياز على هذا الجدول والامتياز USE CATALOG على الكتالوج الأصل الخاص به، بالإضافة إلى الامتياز على USE SCHEMA المخطط الأصل الخاص به. لذلك، يمكنك استخدام هذا الامتياز لتقييد الوصول إلى أقسام مساحة اسم البيانات الخاصة بك إلى مجموعات معينة. السيناريو الشائع هو إعداد مخطط لكل فريق حيث يحتوي USE SCHEMA هذا الفريق فقط على المخطط وعلىه CREATE . وهذا يعني أنه لا يمكن مشاركة أي جداول ينتجها أعضاء الفريق إلا داخل الفريق.

يمكنك تأمين الوصول إلى جدول باستخدام بناء جملة SQL التالي:

GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >
TO < group_name >;
GRANT
SELECT
  ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;

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

CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
  id,
  CASE WHEN is_account_group_member(< group_name >) THEN email ELSE 'REDACTED' END AS email,
  country,
  product,
  total
FROM
  < catalog_name >.< schema_name >.< table_name >;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
GRANT
SELECT
  ON < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;

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

CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
  *
FROM
  < catalog_name >.< schema_name >.< table_name >
WHERE
  CASE WHEN is_account_group_member(managers) THEN TRUE ELSE total <= 1000000 END;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
GRANT
SELECT
  ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;

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

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

إدارة تكوينات نظام المجموعة

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

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

توصي Databricks باستخدام وضع الوصول المشترك عند مشاركة نظام مجموعة ووضع وصول المستخدم الفردي للوظائف التلقائية وأحمال عمل التعلم الآلي.

يوفر JSON أدناه تعريف نهج لنظام مجموعة مع وضع الوصول المشترك:

{
"spark_version": {
    "type": "regex",
    "pattern": "1[0-1]\\.[0-9]*\\.x-scala.*",
    "defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
    "type": "fixed",
    "value": "USER_ISOLATION",
    "hidden": true
}
}

يوفر JSON أدناه تعريف نهج لمجموعة مهام تلقائية مع وضع وصول المستخدم الفردي:

{
"spark_version": {
    "type": "regex",
    "pattern": "1[0-1]\\.[0-9].*",
    "defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
    "type": "fixed",
    "value": "SINGLE_USER",
    "hidden": true
},
"single_user_name": {
    "type": "regex",
    "pattern": ".*",
    "hidden": true
}
}

تدقيق الوصول

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

يمكنك الوصول إلى سجلات التدقيق الخاصة بحسابك باستخدام جداول النظام. لمزيد من المعلومات حول جدول نظام سجل التدقيق، راجع مرجع جدول نظام سجل التدقيق.

راجع مراقبة النظام الأساسي لذكاء بيانات Databricks باستخدام سجلات التدقيق للحصول على تفاصيل حول كيفية الحصول على رؤية كاملة للأحداث الهامة المتعلقة بمنصة Databricks Data Intelligence Platform.

مشاركة البيانات بأمان باستخدام Delta Sharing

Delta Sharing هو بروتوكول مفتوح تم تطويره بواسطة Databricks لمشاركة البيانات الآمنة مع المؤسسات الأخرى أو الأقسام الأخرى داخل مؤسستك، بغض النظر عن الأنظمة الأساسية للحوسبة التي يستخدمونها. عند تمكين Delta Sharing على metastore، يقوم كتالوج Unity بتشغيل خادم Delta Sharing.

لمشاركة البيانات بين المخازن الوصفية، يمكنك الاستفادة من Databricks-to-Databricks Delta Sharing. يسمح لك هذا بتسجيل الجداول من المخازن الوصفية في مناطق مختلفة. ستظهر هذه الجداول ككائنات للقراءة فقط في metastore المستهلك. يمكن منح هذه الجداول حق الوصول مثل أي كائن آخر داخل كتالوج Unity.

عند استخدام Databricks-to-Databricks Delta Sharing للمشاركة بين المخازن الوصفية، ضع في اعتبارك أن التحكم في الوصول يقتصر على مخزن بيانات واحد. إذا كان كائن قابل للتأمين، مثل الجدول، يحتوي على منح، وكان هذا المورد مشتركا في metastore داخل الحساب، فلن تنطبق المنح من المصدر على مشاركة الوجهة. سيتعين على مشاركة الوجهة تعيين المنح الخاصة بها.

معرفة المزيد