الاستعلامات الموحدة (Lakehouse Federation)
ينطبق على: Databricks SQL Databricks Runtime 13.3 LTS وما فوق كتالوج Unity فقط
يسمح اتحاد الاستعلامات ل Azure Databricks بتنفيذ الاستعلامات مقابل البيانات التي تقدمها متاجر بيانات Azure Databricks الأخرى بالإضافة إلى العديد من أنظمة إدارة قواعد البيانات التابعة لجهات خارجية (DBMS) مثل PostgreSQL وmySQL و Snowflake.
للاستعلام عن البيانات من نظام آخر، يجب عليك:
- إنشاء اتصال خارجي. يسجل هذا الخادم الموحد المحدد مع كتالوج Unity وينشئ وسائل للاتصال به، مثل عنوان URL والمنفذ وبيانات الاعتماد المستخدمة.
- تسجيل كتالوجات خارجية من الخادم الموحد باستخدام كتالوج Unity
- منح المستخدمين حق الوصول إلى الكتالوجات الخارجية. يمكن القيام بذلك على مستوى الكتالوج أو المخطط أو الجدول كما تفعل مع القابلات للتأمين العادية.
يمكنك الآن إصدار استعلامات عبر العلاقات المحلية والخارجية المختلفة.
اتصال خارجي
الاتصال الخارجي هو كائن قابل للتأمين لكتالوج 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;
...