الاستعلامات الموحدة (Lakehouse Federation)

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 13.3 LTS وما فوق وضع علامة كتالوج Unity فقط

يسمح اتحاد الاستعلامات ل Azure Databricks بتنفيذ الاستعلامات مقابل البيانات التي تقدمها متاجر بيانات Azure Databricks الأخرى بالإضافة إلى العديد من أنظمة إدارة قواعد البيانات التابعة لجهات خارجية (DBMS) مثل PostgreSQL وmySQL و Snowflake.

للاستعلام عن البيانات من نظام آخر، يجب عليك:

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

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

اتصال خارجي

الاتصال الخارجي هو كائن قابل للتأمين لكتالوج Unity يعرف خادما خارجيا. كجزء من CREATE CONNECTION، يمكنك تحديد عنوان URL حيث يمكن الوصول إلى الخادم.

يجب عليك أيضا توفير خيارات مثل اسم المستخدم وكلمة المرور أو المصادقة المقبولة الأخرى، والتي ستستخدمها Azure Databricks للاتصال.

كتالوج خارجي

نظرا لاتصال خارجي يدعم مساحات الأسماء ثلاثية المستويات (catalog/database.schema.table) يمكنك تسجيل كتالوجات بأكملها باستخدام كتالوج Unity باستخدام الأمر CREATE FOREIGN CATALOG . يحتفظ Azure Databricks بتعريف مخططات الكتالوج وعلاقاتها بالتزامن مع المصدر الخارجي.

الأمثلة

-- Create a postgresql connection
> CREATE CONNECTION postgresql_connection
    TYPE POSTGRESQL
    OPTIONS (
       host 'qf-postgresql-demo.xxxxxx.us-west-2.rds.amazonaws.com',
       port '5432',
       user 'postgresql_user',
       password 'password123');

-- Alternatively create a postgresql connection with secret scope
> CREATE CONNECTION postgresql_connection
    TYPE POSTGRESQL
    OPTIONS (
       host 'qf-postgresql-demo.xxxxxx.us-west-2.rds.amazonaws.com',
       port '5432',
       user secret('secrets.r.us', 'postgresUser'),
       password secret('secrets.r.us', 'postgresPassword'));

-- Expose the "postgresdb" database with schemas and tables postgresql_user can access.
> CREATE FOREIGN CATALOG postgresql_catalog
    USING CONNECTION postgresql_connection
    OPTIONS (database 'postgresdb');

-- Execute a query across tables in the above catalog, schema, and table.
> SELECT * FROM postgresql_catalog.a_schema.table1
  UNION ALL
  SELECT * FROM default.postgresql_schema.table2
  UNION ALL
  SELECT * FROM default.postgresql.mytable
  UNION ALL
  SELECT local_table;
  ...