Dela via


Vad är Lakehouse Federation?

Den här artikeln introducerar Lakehouse Federation, frågefederationsplattformen som gör att du kan använda Azure Databricks för att köra frågor mot flera externa datakällor. Den beskriver också hur du konfigurerar Lakehouse Federation anslutningar och skapar utländska kataloger i ditt Unity Catalog-metaarkiv.

Vad är Lakehouse Federation?

Lakehouse Federation är frågefederationsplattformen för Azure Databricks. Termen frågefederation beskriver en samling funktioner som gör att användare och system kan köra frågor mot flera datakällor utan att behöva migrera alla data till ett enhetligt system.

Azure Databricks använder Unity Catalog för att hantera frågefederation. Du konfigurerar skrivskyddade anslutningar till populära databaslösningar med drivrutiner som ingår i pro SQL-lager, serverlösa SQL-lager och Databricks Runtime-kluster. Unity Catalogs verktyg för datastyrning och dataursprung säkerställer att dataåtkomst hanteras och granskas för alla federerade frågor som görs av användarna på dina Azure Databricks-arbetsytor.

Varför använda Lakehouse Federation?

Lakehouse betonar central lagring av data för att minska dataredundans och isolering. Din organisation kan ha många datasystem i produktion och du kanske vill köra frågor mot data i anslutna system av flera orsaker:

  • Ad hoc-rapportering.
  • Konceptbevisarbete.
  • Den undersökande fasen av nya ETL-pipelines eller rapporter.
  • Stöd för arbetsbelastningar under inkrementell migrering.

I varje av dessa scenarier får du insikter snabbare genom frågefederering, eftersom du kan fråga data direkt där det finns och undvika komplexa och tidskrävande ETL-processer.

Lakehouse Federation är avsett för användningsfall när:

  • Du vill inte mata in data i Azure Databricks.
  • Du vill att dina frågor ska dra nytta av beräkning i det externa databassystemet.
  • Du vill ha fördelarna med Unity Catalog-gränssnitt och datastyrning, inklusive detaljerad åtkomstkontroll, data härkomst och sökning.

Lakehouse Federation jämfört med Lakeflow Connect

Med Lakehouse Federation kan du fråga externa datakällor utan att flytta dina data. Databricks rekommenderar inmatning med hjälp av hanterade anslutningsappar eftersom de är anpassade för att hantera stora datavolymer, frågor med låg latens och API-gränser från tredje part. Men du kanske vill köra frågor mot dina data utan att flytta dem.

När du har ett val mellan hanterade anslutningar och Lakehouse Federation, välj Lakehouse Federation för följande scenarier:

  • Ad hoc-rapportering eller konceptverifieringsarbete på dina ETL-pipelines.

Översikt över Konfiguration av Lakehouse Federation

För att göra en datauppsättning tillgänglig för skrivskyddad sökfråga med Lakehouse Federation skapar du följande:

  • En anslutning, ett skyddsbart objekt i Unity Catalog som anger en sökväg och autentiseringsuppgifter för åtkomst till ett externt databassystem.

  • Ett extern katalog, ett objekt som kan säkras i Unity Catalog som speglar en databas i ett externt datasystem, vilket gör att du kan utföra endast läsbara frågor på datasystemet i din Azure Databricks-arbetsyta och hantera åtkomst med hjälp av Unity Catalog.

Datakällor som stöds

Lakehouse Federation stöder anslutningar till följande källor:

Anslutningskrav

Krav för arbetsyta:

  • Arbetsytan är aktiverad för Unity Catalog.

Beräkningskrav:

  • Nätverksanslutning från beräkningsresursen till måldatabassystemen. Se Nätverksrekommendationer för Lakehouse Federation.
  • Azure Databricks-beräkning måste använda Databricks Runtime 13.3 LTS eller senare och Standard eller dedikerat åtkomstläge.
  • SQL-lager måste vara pro eller serverlösa och måste använda 2023.40 eller senare.

Behörigheter som krävs:

  • Om du vill skapa en anslutning måste du vara metaarkivadministratör eller användare med CREATE CONNECTION behörighet i Unity Catalog-metaarkivet som är kopplat till arbetsytan.
  • Om du vill skapa en extern katalog måste du ha behörigheten CREATE CATALOG i metaarkivet och antingen vara ägare till anslutningen eller ha CREATE FOREIGN CATALOG behörighet för anslutningen.

Ytterligare behörighetskrav anges i varje aktivitetsbaserat avsnitt som följer.

Skapa en anslutning

En anslutning anger en sökväg och autentiseringsuppgifter för åtkomst till ett externt databassystem. Om du vill skapa en anslutning kan du använda Catalog Explorer eller kommandot CREATE CONNECTION SQL i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.

Kommentar

Du kan också använda Databricks REST API eller Databricks CLI för att skapa en anslutning. Se kommandona POST /api/2.1/unity-catalog/connections och Unity Catalog.

Behörigheter som krävs: Metaarkivadministratör eller användare med behörighet.CREATE CONNECTION

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på dataikonen.Katalog.

  2. Längst upp i fönstret Catalog klickar du på ikonen Lägg till eller plusIkonen Lägg till och väljer Lägg till en anslutning på menyn.

    Från sidan Snabbåtkomst klickar du på knappen Externa data >, går till fliken Anslutningar och klickar på Skapa anslutning.

  3. Ange ett användarvänligt anslutningsnamn.

  4. Välj anslutningstyp (databasprovider, till exempel MySQL eller PostgreSQL).

  5. (Valfritt) Lägg till en kommentar.

  6. Klicka på Nästa.

  7. Ange anslutningsegenskaperna (till exempel värdinformation, sökväg och autentiseringsuppgifter för åtkomst).

    Varje anslutningstyp kräver olika anslutningsinformation. Se artikeln för din anslutningstyp, som visas i innehållsförteckningen till vänster.

  8. Klicka på Skapa anslutning.

  9. Ange ett namn för den externa katalogen.

  10. (Valfritt) Klicka på Testa anslutning för att bekräfta att den fungerar.

  11. Klicka på Skapa katalog.

  12. Välj de arbetsytor där användarna kan komma åt katalogen som du skapade. Du kan välja Alla arbetsytor har åtkomsteller klicka på Tilldela till arbetsytor, välj arbetsytor och klicka sedan på Tilldela.

  13. Byt ägare till, som kan hantera åtkomst till alla objekt i katalogen. Börja skriva en principalanvändare i textrutan och klicka sedan på användaren i de returnerade resultaten.

  14. Bevilja privilegier i katalogen. Klicka på Bevilja:

    1. Ange principals vem som ska ha åtkomst till objekt i katalogen. Börja skriva en principalanvändare i textrutan och klicka sedan på användaren i de returnerade resultaten.
    2. Välj Privilege-förinställningar som ska beviljas varje huvudkonto. Alla kontoanvändare beviljas BROWSE som standard.
      • Välj dataläsare från den nedrullningsbara menyn för att bevilja read behörigheter för objekt i katalogen.
      • Välj dataredigeraren från den nedrullningsbara menyn för att bevilja read och modify behörigheter för objekt i katalogen.
      • Välj de behörigheter som ska beviljas manuellt.
    3. Klicka på Bevilja.
    4. Klicka på Nästa.
    5. På sidan metadata anger du taggar för nyckel/värde-par. Mer information finns i Tillämpa taggar på skyddsbara objekt i Unity Catalog.
    6. (Valfritt) Lägg till en kommentar.
    7. Klicka på Spara.

SQL

Kör följande kommando i en notebook-fil eller SQL-frågeredigeraren. Det här exemplet gäller anslutningar till en PostgreSQL-databas. Alternativen skiljer sig åt beroende på anslutningstyp. Se artikeln för din anslutningstyp, som visas i innehållsförteckningen till vänster.

CREATE CONNECTION <connection-name> TYPE postgresql
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Vi rekommenderar att du använder Azure Databricks hemliga nycklar istället för att använda textsträngar för känsliga värden som autentiseringsuppgifter. Till exempel:

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>')
)

Information om hur du konfigurerar hemligheter finns i Hemlighetshantering.

Information om hur du hanterar befintliga anslutningar finns i Hantera anslutningar för Lakehouse Federation.

Skapa en extern katalog

Kommentar

Om du använder användargränssnittet för att skapa en anslutning till datakällan inkluderas skapande av utländsk katalog och du kan hoppa över det här steget.

En extern katalog speglar en databas i ett externt datasystem så att du kan köra frågor mot och hantera åtkomst till data i databasen med hjälp av Azure Databricks och Unity Catalog. För att skapa en extern katalog använder du en anslutning till datakällan som redan har definierats.

För att skapa en utländsk katalog kan du använda Catalog Explorer eller kommandot CREATE FOREIGN CATALOG SQL i en Azure Databricks-notebook-fil eller SQL-frågeredigeraren. Du kan också använda API:et för Unity Catalog. Se Referensdokumentation för Azure Databricks.

Metadata för utländsk katalog synkroniseras till Unity Catalog för varje interaktion med katalogen. Information om datatypsmappning mellan Unity Catalog och datakällan finns i avsnittet Datatypsmappningar i varje datakällas dokumentation.

Behörigheter som krävs:CREATE CATALOG behörighet för metadatalagret och antingen äganderätt till anslutningen eller behörigheten CREATE FOREIGN CATALOG för anslutningen.

Katalogutforskaren

  1. På din Azure Databricks-arbetsyta klickar du på dataikonen.Katalog för att öppna Katalogutforskaren.

  2. Längst upp i fönstret Catalog klickar du på Lägg till- eller plusikonenikonen Lägg till och väljer Lägg till en katalog från menyn.

    Från sidan Snabbåtkomst klickar du på knappen Kataloger och klickar sedan på knappen Skapa katalog.

  3. Följ anvisningarna för att skapa externa kataloger i Skapa kataloger.

SQL

Kör följande SQL-kommando i en notebook-fil eller SQL-frågeredigeraren. Objekt inom hakparenteser är valfria. Ersätt platshållarvärdena:

  • <catalog-name>: Namn på katalogen i Azure Databricks.
  • <connection-name>: Det anslutningsobjektet som anger autentiseringsuppgifterna för datakälla, sökväg och åtkomst.
  • <database-name>: Namnet på databasen som du vill spegla som en katalog i Azure Databricks. Krävs inte för MySQL, som använder ett namnområde med två lager.
  • <external-catalog-name>: Databricks-to-Databricks endast: Namnet på katalogen i den externa Databricks-arbetsytan som du speglar. Se Skapa en utländsk katalog.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Information om hur du hanterar och arbetar med utländska kataloger finns i Hantera och arbeta med utländska kataloger.

Läsa in data från externa tabeller med materialiserade vyer

Databricks rekommenderar att du läser in externa data med Lakehouse Federation när du skapar materialiserade vyer. Se Materialiserade vyer.

När du använder Lakehouse Federation kan användarna referera till federerade data på följande sätt:

CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;

Visa systemgenererade federerade frågor

Lakehouse Federation översätter Databricks SQL-instruktioner till instruktioner som kan pushas ner till den federerade datakällan. Om du vill visa den genererade SQL-instruktionen klickar du på genomsökningsnoden för extern datakälla i grafvyn för Frågeprofileller kör SQL-instruktionen EXPLAIN FORMATTED. Se avsnittet Pushdown som stöds i varje datakällas dokumentation för mer information.

Begränsningar

  • Förfrågningar är skrivskyddade.

    Det enda undantaget är när Lakehouse Federation används för att federera en arbetsytas äldre Hive-metaarkiv (även kallat Hive-metaarkivfederation). Utländska tabeller i det scenariot är skrivbara. Se Vad innebär det att skriva till en utländsk katalog i ett federerat Hive-metaarkiv?.

  • Begränsning av anslutningar bestäms med den samtidiga frågegränsen för Databricks SQL. Det finns ingen gräns för lager per anslutning. Se Köhantering och autoskalning för pro- och klassiska SQL-databaser.

  • Tabeller och scheman med namn som är ogiltiga i Unity Catalog stöds inte och ignoreras av Unity Catalog när en extern katalog skapas. Se listan över namngivningsregler och begränsningar i Begränsningar.

  • Tabellnamn och schemanamn konverteras till små bokstäver i Unity Catalog. Uppslag måste också använda namn i gemener. Om det finns tabeller eller scheman med identiska namn i gemener, importeras bara en av tabellerna eller schemana till den externa katalogen.

  • För varje utländsk tabell som refereras schemalägger Azure Databricks en underfråga i fjärrsystemet för att returnera en delmängd av data från den tabellen och returnerar sedan resultatet till en Azure Databricks-exekveringsuppgift över en enkel dataström. Om resultatuppsättningen är för stor kan exekveraren få slut på minne.

  • Dedikerat åtkomstläge (tidigare enanvändarläge) är endast tillgängligt för användare som äger anslutningen.

  • Lakehouse Federation kan inte federera externa tabeller med teckenstorlekskänsliga identifierare för Azure Synapse-anslutningar eller Redshift-anslutningar.

Resurskvoter

Azure Databricks tillämpar resurskvoter på alla skyddsbara objekt i Unity Catalog. Dessa kvoter visas i Resursgränser. Utländska kataloger och alla objekt som de innehåller ingår i din totala kvotanvändning.

Om du förväntar dig att överskrida dessa resursgränser kontaktar du ditt Azure Databricks-kontoteam.

Du kan övervaka din kvotanvändning med hjälp av API:erna för Enhetskatalogens resurskvoter. Se Övervaka din användning av Unity Catalog-resurskvoter.

Ytterligare resurser