Wat is Lakehouse Federation?
In dit artikel maakt u kennis met Lakehouse Federation, het queryfederatieplatform waarmee u Azure Databricks kunt gebruiken om query's uit te voeren op meerdere externe gegevensbronnen. Ook wordt beschreven hoe u Lakehouse Federation connectionsset en buitenlandse catalogs maakt in uw Unity Catalog metastore.
Wat is Lakehouse Federation?
Lakehouse Federation is het queryfederatieplatform voor Azure Databricks. De termenqueryfederatie beschrijft een verzameling functies waarmee gebruikers en systemen query's kunnen uitvoeren op meerdere gegevensbronnen zonder dat alle gegevens naar een geïntegreerd systeem hoeven te worden gemigreerd.
Azure Databricks maakt gebruik van Unity Catalog voor het beheren van queryfederatie. U configureert alleen-lezen connections met populaire databaseoplossingen met behulp van drivers die zijn opgenomen in pro-SQL-warehouses, serverloze SQL-warehouses en Databricks Runtime-clusters. Unity Catalog's hulpprogramma's voor gegevensbeheer en gegevensherkomst zorgen ervoor dat gegevenstoegang wordt beheerd en gecontroleerd voor alle federatieve query's die zijn gemaakt door de gebruikers in uw Azure Databricks-werkruimten.
Waarom Lakehouse Federation gebruiken?
Het Lakehouse benadrukt de centrale opslag van gegevens om gegevensredundantie en isolatie te verminderen. Uw organisatie heeft mogelijk talloze gegevenssystemen in productie en u wilt mogelijk om verschillende redenen query's uitvoeren op gegevens in verbonden systemen:
- Ad-hocrapportage.
- Proof-of-concept werk.
- De verkennende fase van nieuwe ETL-pijplijnen of -rapporten.
- Ondersteuning voor workloads tijdens incrementele migratie.
In elk van deze scenario's krijgt u met queryfederatie sneller inzicht, omdat u query's op de gegevens kunt uitvoeren en complexe en tijdrovende ETL-verwerking kunt voorkomen.
Lakehouse Federation is bedoeld voor gebruiksvoorbeelden wanneer:
- U wilt geen gegevens opnemen in Azure Databricks.
- U wilt dat uw query's profiteren van berekeningen in het externe databasesysteem.
- U wilt de voordelen van Unity Catalog interfaces en gegevensbeheer, waaronder gedetailleerd toegangsbeheer, gegevensherkomst en zoeken.
Overzicht van De federatie-installatie van Lakehouse
Als u een gegevensset beschikbaar wilt maken voor alleen-lezen query's met Lakehouse Federation, maakt u het volgende:
- Een -verbinding, een beveiligbaar object in Unity Catalog dat een pad en credentials opgeeft voor toegang tot een extern databasesysteem.
- Een buitenlandse catalog, een beveiligbaar object in Unity Catalog dat een database in een extern gegevenssysteem spiegelt, zodat u alleen-lezen-query's kunt uitvoeren op dat gegevenssysteem binnen uw Azure Databricks-werkruimte en de toegang kunt beheren met Unity Catalog.
Ondersteunde gegevensbronnen
Lakehouse Federation ondersteunt connections voor de volgende databasetypen:
- MySQL
- PostgreSQL
- Oracle
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
- Hive-metastore-federatie
Connectiviteitsvereisten
Vereisten voor werkruimte:
- Werkruimte ingeschakeld voor Unity Catalog.
Rekenvereisten:
- Netwerkconnectiviteit van uw rekenresource naar de doeldatabasesystemen. Zie De aanbevelingen voor netwerken voor Lakehouse Federation.
- Azure Databricks Compute moet Databricks Runtime 13.3 LTS of hoger gebruiken en gedeelde of één gebruiker toegangsmodus.
- SQL-warehouses moeten pro of serverloos zijn en moeten 2023.40 of hoger gebruiken.
Vereiste machtigingen:
- Als u een verbinding wilt maken, moet u een metastore-beheerder of een gebruiker zijn met de bevoegdheid
CREATE CONNECTION
op de Unity Catalog metastore die is gekoppeld aan de werkruimte. - Als u een vreemde catalogwilt maken, moet u de
CREATE CATALOG
machtiging hebben voor de metastore en de eigenaar van de verbinding bent of deCREATE FOREIGN CATALOG
bevoegdheid voor de verbinding hebben.
Aanvullende machtigingsvereisten worden opgegeven in elke sectie op basis van taken die volgt.
Een verbinding maken
Een verbinding specificeert een pad en credentials voor de toegang tot een extern databasesysteem. Als u een verbinding wilt maken, kunt u Catalog Explorer of de CREATE CONNECTION
SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Notitie
U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een verbinding te maken. Zie POST /api/2.1/unity-catalog/connections en Unity-opdrachten Catalog.
Vereiste machtigingen: Metastore-beheerder of gebruiker met de CREATE CONNECTION
bevoegdheid.
Catalog Explorer
Klik in uw Azure Databricks-werkruimte op Catalog.
Klik boven aan het deelvenster Catalog op het pictogram pictogram toevoegen en selectEen verbinding toevoegen vanuit het menu.
U kunt ook op de pagina Snelle toegang op de knop Externe gegevens > klikken, naar het tabblad Connections gaan en op Verbinding makenklikken.
Voer een gebruiksvriendelijke verbindingsnaam in.
Select het verbindingstype (database provider, zoals MySQL of PostgreSQL).
Voer de verbindingseigenschappen in (zoals hostgegevens, pad en toegang credentials).
Voor elk verbindingstype zijn verschillende verbindingsgegevens vereist. Zie het artikel voor uw verbindingstype, vermeld in het table van de inhoud aan de linkerkant.
(Optioneel) Klik op Verbinding testen om te bevestigen dat deze werkt.
(Optioneel) Voeg een opmerking toe.
Klik op Create.
SQL
Voer de volgende opdracht uit in een notebook of de SQL-queryeditor. Dit voorbeeld is bedoeld voor connections naar een PostgreSQL-database. De opties verschillen per verbindingstype. Zie het artikel voor uw verbindingstype, vermeld in het table van de inhoudsopgave aan de linkerkant.
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
U wordt aangeraden Azure Databricks geheimen te gebruiken in plaats van tekenreeksen zonder opmaak voor gevoelige values, zoals credentials. Voorbeeld:
CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Zie Geheimbeheer voor informatie over het instellen van geheimen.
Voor meer informatie over het beheren van bestaande connections, zie Beheer connections voor Lakehouse Federation.
Een buitenlandse catalog maken
Een vreemde catalog spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt beheren en opvragen met behulp van Azure Databricks en Unity Catalog. Als u een externe catalogwilt maken, gebruikt u een verbinding met de gegevensbron die al is gedefinieerd.
Om een buitenlandse catalogte maken, kunt u Catalog Explorer of de CREATE FOREIGN CATALOG
SQL-opdracht gebruiken in een Azure Databricks-notebook of de SQL-queryeditor.
Notitie
U kunt ook de Unity Catalog-API gebruiken. Raadpleeg de referentiedocumentatie voor Azure Databricks.
De externe catalog-metagegevens worden gesynchroniseerd in Unity Catalog tijdens elke interactie met de catalog. Voor de gegevenstypetoewijzing tussen Unity Catalog en de gegevensbron controleert u de gegevenstypetoewijzingen sectie van elke gegevensbron.
Vereiste machtigingen:CREATE CATALOG
machtiging voor de metastore en eigendom van de verbinding of de CREATE FOREIGN CATALOG
bevoegdheid voor de verbinding.
Catalog Explorer
Klik in uw Azure Databricks-werkruimte op Catalog om Catalog Explorer te openen.
Klik boven aan het deelvenster Catalog op het pictogram pictogram Toevoegen en selectEen catalog toevoegen vanuit het menu.
U kunt ook op de pagina Snelle toegang op de knop Catalogs klikken en vervolgens op de knop catalog maken klikken.
Volg de instructies voor het maken van buitenlandse catalogs in catalogste maken.
SQL
Voer de volgende SQL-opdracht uit in een notebook of de SQL-queryeditor. Items tussen haakjes zijn optioneel. Vervang de tijdelijke aanduiding values:
-
<catalog-name>
: naam voor de catalog in Azure Databricks. -
<connection-name>
: het verbindingsobject waarmee de gegevensbron, het pad en de toegang credentialsworden opgegeven. -
<database-name>
: naam van de database die u wilt spiegelen als een catalog in Azure Databricks. Niet vereist voor MySQL, die gebruikmaakt van een naamruimte met twee lagen. -
<external-catalog-name>
: Databricks-to-Databricks alleen: de naam van de catalog in de externe Databricks-werkruimte die u spiegelt. Zie Een vreemde catalogmaken.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Voor informatie over het beheren en werken met buitenlandse catalogs, zie Beheren en werken met buitenlandse catalogs.
Lakehouse-federatie en gematerialiseerd views
Databricks raadt aan om externe gegevens te laden met Lakehouse Federation wanneer u gematerialiseerde viewsmaakt. Zie Gerealiseerde views gebruiken in Databricks SQL.
Wanneer u Lakehouse Federation gebruikt, kunnen gebruikers als volgt verwijzen naar de federatieve gegevens:
CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;
Door het systeem gegenereerde federatieve query's weergeven
Lakehouse Federation vertaalt Databricks SQL-instructies in instructies die naar de federatieve gegevensbron kunnen worden gepusht. Als u de gegenereerde SQL-instructie wilt weergeven, klikt u op het scanknooppunt van de externe gegevensbron in de grafische weergave van Queryprofielof voert u de geformatteerde SQL-instructieEXPLAIN uit. Zie de sectie Ondersteunde pushdown van de documentatie van elke gegevensbron voor dekking.
Beperkingen
- Query's hebben het kenmerk Alleen-lezen.
- Beperking van snelheid van connections wordt bepaald door middel van de gelijktijdige Databricks SQL-query limit. Er is geen limit tussen magazijnen per verbinding. Zie Wachtrijen en automatisch schalen voor pro- en klassieke SQL-warehouses.
- Tables en schema's met namen die ongeldig zijn in Unity Catalog worden niet ondersteund en worden genegeerd door Unity Catalog bij het maken van een buitenlandse catalog. Zie list voor de regels en beperkingen van naamgeving in Beperkingen.
- Table namen en schema namen worden geconverteerd naar kleine letters in Unity Catalog. Zoekacties moeten ook kleine letters gebruiken. Als er tables of schema's met dubbele kleine letters in de namen zijn, wordt slechts één van de tables of schema's geïmporteerd in de externe catalog.
- Voor elke table waarnaar wordt verwezen, plant Azure Databricks een subquery in het externe systeem om een subset van gegevens van die table te retourneren en geeft vervolgens het resultaat terug aan één Azure Databricks executor-taak via een enkele stream. Als het resultaat set te groot is, heeft de uitvoerder mogelijk onvoldoende geheugen.
- De toegangsmodus voor één gebruiker is alleen beschikbaar voor gebruikers die eigenaar zijn van de verbinding.
- Lakehouse Federation kan geen vreemde tables federeren met hoofdlettergevoelige identificatoren voor Azure Synapse connections of Redshift connections.
Resourcequota
Azure Databricks dwingt resourcequota af op alle Unity-Catalog beveiligbare objecten. Deze quota worden vermeld in resourcelimieten. Externe catalogs en alle objecten die ze bevatten, worden meegeteld in uw totale quotumgebruik.
Als u verwacht deze resourcelimieten te overschrijden, neemt u contact op met uw Azure Databricks-accountteam.
U kunt uw quotumgebruik bewaken met behulp van de Quota-API's van Unity Catalog. Zie Uw gebruik van Unity Catalog resourcequotacontroleren.
Aanvullende bronnen
- Federatieve query's (Lakehouse Federation) in de SQL-taalreferentie