Aracılığıyla paylaş


Federasyon sorguları (Lakehouse Federasyonu)

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Yalnızca Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime 13.3 LTS ve üzeri onay işareti evet olarak işaretlenmiş Unity Kataloğu

Sorgu federasyonu, Azure Databricks'in diğer Azure Databricks meta veri depolarının yanı sıra PostgreSQL, mySQL ve Snowflake gibi birçok üçüncü taraf veritabanı yönetim sistemi (DBMS) tarafından sunulan verilere yönelik sorgular yürütmesine olanak tanır.

Başka bir sistemden veri sorgulamak için:

  1. Yabancı bir bağlantı oluşturun. Bu, belirli birleştirilmiş sunucuyu Unity Kataloğu'na kaydeder ve kullanılan URL, bağlantı noktası ve kimlik bilgileri gibi onunla iletişim kurmak için araçlar oluşturur.
  2. Unity Kataloğu'na federasyon sunucusundan yabancı katalogları kaydetme
  3. Kullanıcılara yabancı kataloglara erişim izni verin . Bu, normal güvenli hale getirilebilir öğelerde yaptığınız gibi katalog, şema veya tablo düzeyinde yapılabilir.

Artık çeşitli yerel ve dış ilişkiler genelinde sorgular düzenleyebilirsiniz.

Yabancı bağlantı

Yabancı bağlantı, yabancı sunucuyu tanımlayan bir Unity Kataloğu güvenli hale getirilebilir nesnedir. CREATE CONNECTION'ın bir parçası olarak, sunucunun erişilebileceği URL'yi belirtirsiniz.

Azure Databricks'in iletişim kurmak için kullanacağı kullanıcı adı ve parola veya kabul edilen diğer kimlik doğrulaması gibi seçenekleri de sağlamanız gerekir.

Yabancı katalog

Üç düzeyli ad alanlarını (catalog/database.schema.table) destekleyen bir yabancı bağlantı verildiğinde, CREATE FOREIGN CATALOG komutunu kullanarak katalogların tamamını Unity Kataloğu'na kaydedebilirsiniz. Azure Databricks, kataloğun şemalarının tanımını ve bunların ilişkilerini yabancı kaynakla eşitlenmiş olarak tutar.

Örnekler

-- 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;
  ...