Verbundabfragen (Lakehouse-Verbund)
Gilt für: Databricks SQL Databricks Runtime 13.3 LTS und höher Nur Unity Catalog
Der Abfrageverbund ermöglicht Azure Databricks das Ausführen von Abfragen für Daten, die von anderen Azure Databricks-Metastores sowie vielen Datenbankverwaltungssystemen (DBMS) von Drittanbietern wie PostgreSQL, mySQL und Snowflake bereitgestellt werden.
Um Daten von einem anderen System abzufragen, müssen Sie:
- Eine Fremdverbundung erstellen. Dadurch wird der spezifische Verbundserver bei Unity Catalog registriert und Mittel für die Kommunikation mit diesem werden eingerichtet, z. B. die URL, der Port und die verwendeten Anmeldeinformationen.
- Fremdkataloge vom Verbundserver bei Unity Catalog registrieren.
- Benutzern Zugriff auf die Fremdkataloge gewähren. Dies kann wie bei regulären Sicherungsvorgängen auf Katalog-, Schema- oder Tabellenebene erfolgen.
Sie können jetzt Abfragen für die verschiedenen lokalen und Fremdbeziehungen ausstellen.
Fremdverbindung
Eine Fremdverbindung ist ein sicherungsfähiges Unity Catalog-Objekt, das einen Fremdserver identifiziert. Im Rahmen von CREATE CONNECTION geben Sie die URL an, über die auf den Server zugegriffen werden kann.
Sie müssen auch Optionen wie Benutzername und Kennwort oder andere akzeptierte Authentifizierung angeben, die Azure Databricks für die Kommunikation verwendet.
Fremdkatalog
Bei einer Fremdverbindung, die Namespaces auf drei Ebenen (catalog/database.schema.table
) unterstützt, können Sie ganze Kataloge mit dem Befehl CREATE FOREIGN CATALOG bei Unity Catalog registrieren.
Azure Databricks hält die Definition der Schemas des Katalogs und deren Beziehungen mit der fremdsprachigen Quelle synchron.
Beispiele
-- 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;
...