Delen via


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-verbindingen instelt en refererende catalogi 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 om queryfederatie te beheren. U configureert alleen-lezenverbindingen met populaire databaseoplossingen met behulp van stuurprogramma's die zijn opgenomen in Pro SQL Warehouses, Serverloze SQL Warehouses en Databricks Runtime-clusters. De hulpprogramma's voor gegevensbeheer en gegevensherkomst van Unity Catalog 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 zoekopdrachten.

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 referenties opgeeft voor toegang tot een extern databasesysteem.
  • Een refererende catalogus, een beveiligbaar object in Unity Catalog dat een database in een extern gegevenssysteem spiegelt, zodat u alleen-lezenquery's kunt uitvoeren op dat gegevenssysteem in uw Azure Databricks-werkruimte, waardoor de toegang wordt beheerd met Behulp van Unity Catalog.

Ondersteunde gegevensbronnen

Lakehouse Federation ondersteunt verbindingen met de volgende databasetypen:

Connectiviteitsvereisten

Vereisten voor werkruimte:

  • Werkruimte ingeschakeld voor Unity Catalog.

Rekenvereisten:

  • Netwerkconnectiviteit van uw Databricks Runtime-cluster of SQL Warehouse naar de doeldatabasesystemen. Zie De aanbevelingen voor netwerken voor Lakehouse Federation.
  • Azure Databricks-clusters moeten gebruikmaken van Databricks Runtime 13.3 LTS of hoger en de modus voor gedeelde of toegang tot één gebruiker.
  • SQL-warehouses moeten Pro of Serverless 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 CREATE CONNECTION bevoegdheid voor de Unity Catalog-metastore die is gekoppeld aan de werkruimte.
  • Als u een refererende catalogus wilt maken, moet u beschikken over de CREATE CATALOG machtiging voor de metastore en de eigenaar van de verbinding zijn of over de CREATE FOREIGN CATALOG bevoegdheid voor de verbinding beschikken.

Aanvullende machtigingsvereisten worden opgegeven in elke sectie op basis van taken die volgt.

Een verbinding maken

Een verbinding geeft een pad en referenties op voor 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 Catalog-opdrachten.

Vereiste machtigingen: Metastore-beheerder of gebruiker met de CREATE CONNECTION bevoegdheid.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op Cataloguspictogram Catalogus.

  2. Klik boven aan het deelvenster Catalogus op het Pictogram Toevoegen of plus pictogram Toevoegen en selecteer Een verbinding toevoegen in het menu.

    U kunt ook op de pagina Snelle toegang op de knop Externe gegevens > klikken, naar het tabblad Verbindingen gaan en op Verbinding maken klikken.

  3. Voer een gebruiksvriendelijke verbindingsnaam in.

  4. Selecteer het verbindingstype (databaseprovider, zoals MySQL of PostgreSQL).

  5. Voer de verbindingseigenschappen in (zoals hostgegevens, pad en toegangsreferenties).

    Voor elk verbindingstype zijn verschillende verbindingsgegevens vereist. Zie het artikel voor uw verbindingstype, vermeld in de inhoudsopgave aan de linkerkant.

  6. (Optioneel) Klik op Verbinding testen om te bevestigen dat deze werkt.

  7. (Optioneel) Voeg een opmerking toe.

  8. Klik op Create.

SQL

Voer de volgende opdracht uit in een notebook of de SQL-queryeditor. Dit voorbeeld is bedoeld voor verbindingen met een PostgreSQL-database. De opties verschillen per verbindingstype. Zie het artikel voor uw verbindingstype, vermeld in 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 waarden, zoals referenties. 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.

Zie Verbindingen beheren voor Lakehouse Federation voor informatie over het beheren van bestaande verbindingen.

Een refererende catalogus maken

Een refererende catalogus spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt opvragen en beheren met behulp van Azure Databricks en Unity Catalog. Als u een refererende catalogus wilt maken, gebruikt u een verbinding met de gegevensbron die al is gedefinieerd.

Als u een refererende catalogus wilt 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.

Metagegevens van refererende catalogus worden gesynchroniseerd met Unity Catalog voor elke interactie met de catalogus. Voor de toewijzing van het gegevenstype tussen Unity Catalog en de gegevensbron raadpleegt u de sectie Gegevenstypetoewijzingen van de documentatie 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.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op Cataloguspictogram Catalog om Catalog Explorer te openen.

  2. Klik boven aan het deelvenster Catalogus op het Pictogram Toevoegen of plus pictogram Toevoegen en selecteer Een catalogus toevoegen in het menu.

    U kunt ook op de pagina Snelle toegang op de knop Catalogussen klikken en vervolgens op de knop Catalogus maken klikken.

  3. Volg de instructies voor het maken van refererende catalogi in Catalogussen maken.

SQL

Voer de volgende SQL-opdracht uit in een notebook of de SQL-queryeditor. Items tussen haakjes zijn optioneel. Vervang de waarden van de tijdelijke aanduidingen:

  • <catalog-name>: Naam voor de catalogus in Azure Databricks.
  • <connection-name>: Het verbindingsobject waarmee de gegevensbron, het pad en de toegangsreferenties worden opgegeven.
  • <database-name>: De naam van de database die u wilt spiegelen als een catalogus in Azure Databricks. Niet vereist voor MySQL, die gebruikmaakt van een naamruimte met twee lagen.
  • <external-catalog-name>: alleen Databricks-to-Databricks : Naam van de catalogus in de externe Databricks-werkruimte die u spiegelt. Zie Een refererende catalogus maken.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Zie Beheren en werken met buitenlandse catalogi voor informatie over het beheren en werken met buitenlandse catalogi.

Lakehouse-federatie en gerealiseerde weergaven

Databricks raadt aan externe gegevens te laden met Lakehouse Federation wanneer u gerealiseerde weergaven maakt. Zie Gerealiseerde weergaven 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 refererende gegevensbron in de grafiekweergave van het queryprofiel of voert u de instructie EXPLAIN FORMATTED SQL uit. Zie de sectie Ondersteunde pushdown van de documentatie van elke gegevensbron voor dekking.

Beperkingen

  • Query's hebben het kenmerk Alleen-lezen.
  • Beperking van verbindingen wordt bepaald met behulp van de gelijktijdige querylimiet van Databricks SQL. Er geldt geen limiet voor magazijnen per verbinding. Zie Wachtrijen en automatisch schalen voor pro- en klassieke SQL-warehouses.
  • Tabellen 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 refererende catalogus. Zie de lijst met naamgevingsregels en beperkingen in Beperkingen.
  • Tabelnamen en schemanamen worden geconverteerd naar kleine letters in Unity Catalog. Zoekacties moeten ook kleine letters gebruiken. Als er tabellen of schema's met dubbele kleine letters zijn, wordt slechts één van de tabellen of schema's geïmporteerd in de refererende catalogus.
  • Voor elke refererende tabel waarnaar wordt verwezen, plant Azure Databricks een subquery in het externe systeem om een subset met gegevens uit die tabel te retourneren en retourneert het resultaat vervolgens naar één Azure Databricks-uitvoertaak via één stream. Als de resultatenset te groot is, is het mogelijk dat de uitvoerders onvoldoende geheugen hebben.
  • De toegangsmodus voor één gebruiker is alleen beschikbaar voor gebruikers die eigenaar zijn van de verbinding.
  • Lakehouse Federation kan geen refererende tabellen federeren met hoofdlettergevoelige id's voor Azure Synapse-verbindingen of Redshift-verbindingen.

Resourcequota

Azure Databricks dwingt resourcequota af voor alle beveiligbare objecten van Unity Catalog. Deze quota worden vermeld in resourcelimieten. Refererende catalogi en alle objecten die ze bevatten, worden opgenomen in het 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 voor Unity Catalog-resources. Zie Monitor your usage of Unity Catalog resource quotas.

Aanvullende bronnen