الجداول الخارجية

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

يستخدم كتالوج Unity ومخزن بيانات Azure Databricks Hive المضمن المواقع الافتراضية للجداول المدارة. يقدم كتالوج Unity العديد من الكائنات القابلة للتأمين الجديدة لمنح امتيازات للبيانات في تخزين الكائنات السحابية.

جدول خارجي

الجدول الخارجي هو جدول يشير إلى مسار تخزين خارجي باستخدام عبارة LOCATION .

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

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

يؤدي استخدام الجداول الخارجية إلى تجريد مسار التخزين والموقع الخارجي وبيانات اعتماد التخزين للمستخدمين الذين تم منحهم حق الوصول إلى الجدول الخارجي.

تحذير

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

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

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

تمثيل رسومي للعلاقات

يصف الرسم التخطيطي التالي العلاقة بين:

  • بيانات اعتماد التخزين
  • المواقع الخارجية
  • جداول خارجية
  • مسارات التخزين
  • كيانات IAM
  • حسابات خدمة Azure

رسم تخطيطي ER للموقع الخارجي

الأمثلة

-- `finance` can create an external table over specific object within the `finance_loc` location
> CREATE TABLE sec_filings LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings';

-- Create or replace an external table from a query
> CREATE OR REPLACE TABLE sec_filings
  LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings'
  AS (SELECT * FROM current_filings);

-- Cannot list files under an external table without permissions on it
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
  Error
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
  Error

-- Grant access to sec_filings to all employees
> GRANT SELECT ON TABLE sec_filings TO employee;

-- Any member of the `employee` group can securely read sec_filings
> SELECT count(1) FROM sec_filings;
 20

-- Any member of the `employee` group can list files under the sec_filings table
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
  _delta_log
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
  00000.json