Vad är Lakehouse Federation

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

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-anslutningaroch 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 Warehouses, serverlösa SQL Warehouses 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.
  • Proof-of-concept-arbete.
  • Den undersökande fasen av nya ETL-pipelines eller rapporter.
  • Stöd för arbetsbelastningar under inkrementell migrering.

I vart och ett av dessa scenarier ger frågefederation dig insikter snabbare, eftersom du kan köra frågor mot data på plats och undvika komplex och tidskrävande ETL-bearbetning.

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.

Översikt över Konfiguration av Lakehouse Federation

Om du vill göra en datauppsättning tillgänglig för skrivskyddad frå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.
  • En sekundär katalog, ett skyddsbart objekt i Unity Catalog som speglar en databas i ett externt datasystem, så att du kan utföra skrivskyddade frågor på datasystemet på 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 databastyper:

Anslut ionskrav

Krav för arbetsyta:

  • Arbetsytan är aktiverad för Unity Catalog.

Beräkningskrav:

  • Nätverksanslutning från ditt Databricks Runtime-kluster eller SQL-lager till måldatabassystemen. Se Nätverksrekommendationer för Lakehouse Federation.
  • Azure Databricks-kluster måste använda Databricks Runtime 13.3 LTS eller senare och delat eller enanvändarläge.
  • SQL-lager måste vara Pro eller Serverless.

Behörigheter som krävs:

  • Om du vill skapa en anslutning måste du vara metaarkivadministratör eller användare med behörigheten CREATE CONNECTION på Unity Catalog-metaarkivet som är kopplat till arbetsytan.
  • Om du vill skapa en extern katalog måste du ha behörigheten CREATE CATALOG för metaarkivet och antingen vara ägare till anslutningen eller ha behörighet för CREATE FOREIGN CATALOG 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 CREATE CONNECTION SQL-kommandot i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.

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å KatalogikonKatalog.

  2. I den vänstra rutan expanderar du menyn Externa data och väljer Anslut ions.

  3. Klicka på Skapa anslutning.

  4. Ange ett användarvänligt Anslut ionsnamn.

  5. Välj Anslut ionstyp (databasprovider, till exempel MySQL eller PostgreSQL).

  6. 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.

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

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

  9. Klicka på Skapa.

SQL

Kör följande kommando i en notebook-fil eller Databricks 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-hemligheter i stället för klartextsträ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 sekundär katalog

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. Om du vill skapa en sekundär katalog använder du en anslutning till datakällan som redan har definierats.

Om du vill skapa en sekundär katalog kan du använda Catalog Explorer eller CREATE FOREIGN CATALOG SQL-kommandot i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren.

Behörigheter som krävs:CREATE CATALOG behörighet för metaarkivet och antingen ägarskap för anslutningen eller behörigheten CREATE FOREIGN CATALOG för anslutningen.

Katalogutforskaren

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

  2. Klicka på knappen Skapa katalog .

  3. I dialogrutan Skapa en ny katalog anger du ett namn för katalogen och väljer en typ av sekundär.

  4. Välj den Anslut ion som ger åtkomst till databasen som du vill spegla som en Unity Catalog-katalog.

  5. Ange namnet på den databas som du vill spegla som en katalog.

    Kraven varierar beroende på datakällan:

    • MySQL använder ett namnområde med två lager och kräver därför inget databasnamn.
    • För anslutningar till en katalog på en annan Databricks-arbetsyta anger du Namnet på Databricks-katalogen i stället för ett databasnamn.
  6. Klicka på Skapa.

SQL

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

    • <catalog-name>: Namn på katalogen i Azure Databricks.
    • <connection-name>: Anslutningsobjektet som anger autentiseringsuppgifterna för datakälla, sökväg och åtkomst.
    • <database-name>: Namnet på den databas 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>: Endast Databricks-to-Databricks : Namnet på katalogen på den externa Databricks-arbetsytan som du speglar. Se Skapa en sekundär 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.

Lakehouse federation och materialiserade vyer

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

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;

Begränsningar

  • Frågor är skrivskyddade.

  • Begränsning av anslutningar bestäms med databricks SQL-samtidig frågegräns. Det finns ingen gräns för lager per anslutning. Se Köa och autoskalning för pro- och klassiska SQL-lager.

  • 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 i Unity Catalog.

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

  • För varje sekundär tabell som refereras schemalägger Azure Databricks en underfråga i fjärrsystemet för att returnera en delmängd data från tabellen och returnerar sedan resultatet till en Azure Databricks-köruppgift över en enda dataström.

  • Åtkomstläge för en användare är endast tillgängligt för användare som äger anslutningen.

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