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 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:
- MySQL
- PostgreSQL
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
Anslutningskrav
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 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 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örCREATE 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.
Kommentar
Du kan också använda Databricks REST API eller Databricks CLI för att skapa en anslutning. Se POST /api/2.1/unity-catalog/connections och Unity Catalog-kommandon.
Behörigheter som krävs: Metaarkivadministratör eller användare med behörighet.CREATE CONNECTION
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på Katalog.
Längst upp i fönstret Katalog klickar du på ikonen Lägg till och väljer Lägg till en anslutning på menyn.
Du kan också klicka på knappen Externa data >på sidan Snabbåtkomst, gå till fliken Anslutningar och klicka på Skapa anslutning.
Ange ett användarvänligt anslutningsnamn.
Välj anslutningstyp (databasprovider, till exempel MySQL eller PostgreSQL).
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.
(Valfritt) Klicka på Testa anslutning för att bekräfta att den fungerar.
(Valfritt) Lägg till en kommentar.
Klicka på Skapa.
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-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 SQL-frågeredigeraren.
Kommentar
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 metaarkivet och antingen ägarskap för anslutningen eller behörigheten CREATE FOREIGN CATALOG
för anslutningen.
Katalogutforskaren
På din Azure Databricks-arbetsyta klickar du på Katalog för att öppna Katalogutforskaren.
Längst upp i fönstret Katalog klickar du på ikonen Lägg till och väljer Lägg till en katalog på menyn.
Du kan också klicka på knappen Kataloger på sidan Snabbåtkomst och sedan på knappen Skapa katalog.
Följ anvisningarna för att skapa utländska 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>
: 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;
Visa systemgenererade federerade frågor
Lakehouse Federation översätter Databricks SQL-instruktioner till instruktioner som kan push-överföras ned till den federerade datakällan. Om du vill visa den genererade SQL-instruktionen klickar du på genomsökningsnoden för sekundär datakälla i grafvyn för frågeprofilen eller kör SQL-instruktionen EXPLAIN FORMATTED . Se avsnittet Pushdown som stöds i varje datakällas dokumentation för täckning.
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.
- 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. Om resultatuppsättningen är för stor kan det ta slut på minne.
- Å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.
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
- Federerade frågor (Lakehouse Federation) i SQL-språkreferensen