Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime 13.3 LTS lub nowsze
Katalog Unity
Federacja zapytań umożliwia usłudze Azure Databricks wykonywanie zapytań względem danych obsługiwanych przez inne magazyny metadanych usługi Azure Databricks, a także wiele systemów zarządzania bazami danych innych firm, takich jak PostgreSQL, mySQL i Snowflake.
Aby wykonać zapytanie o dane z innego systemu, musisz:
- Utwórz obce połączenie. Zarejestrowanie określonego serwera federacyjnego w Unity Catalog i ustalenie środków komunikacji z nim, takich jak adres URL, port i poświadczenia.
- Zarejestruj katalogi obce z serwera federacyjnego w Unity Catalog
- Udziel użytkownikom dostępu do katalogów zagranicznych. Można to zrobić na poziomie katalogu, schematu lub tabeli, jak to robisz z zwykłymi obiektami zabezpieczeń.
Teraz można wysyłać zapytania w różnych relacjach zarówno lokalnych, jak i zagranicznych.
Połączenie zagraniczne
Połączenie zagraniczne to obiekt zabezpieczany w Unity Catalog, który identyfikuje serwer zewnętrzny. W ramach CREATE CONNECTIONnależy określić adres URL, pod którym można uzyskać dostęp do serwera.
Należy również podać opcje, takie jak nazwa użytkownika i hasło lub inne zaakceptowane uwierzytelnianie, którego usługa Azure Databricks będzie używać do komunikowania się.
Wykaz obcy
Biorąc pod uwagę połączenie zewnętrzne, które obsługuje trójpoziomowe przestrzenie nazw (catalog/database.schema.table), można zarejestrować całe katalogi w katalogu Unity przy użyciu polecenia CREATE FOREIGN CATALOG.
Usługa Azure Databricks utrzymuje definicję schematów katalogu i ich relacji w synchronizacji z obcym źródłem.
Przykłady
-- 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;
...