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.
- 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.
- 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 databastyper:
- MySQL
- PostgreSQL
- Teradata
- Oracle
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
- Hive-metadatalagerfederation
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.
- En Azure Databricks-beräkning måste använda Databricks Runtime 13.3 LTS eller senare och Delad eller Enkelanvändare å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 haCREATE 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
På din Azure Databricks-arbetsyta klickar du på ikonen Katalog.
Längst upp i fönstret Catalog klickar du på ikonen Ikonen 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.
Ange ett användarvänligt anslutningsnamn.
Välj anslutningstyp (databasprovider, till exempel MySQL eller PostgreSQL).
(Valfritt) Lägg till en kommentar.
Klicka på Nästa.
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.
Klicka på Skapa anslutning.
Ange ett namn för den externa katalogen.
(Valfritt) Klicka på Testa anslutning för att bekräfta att den fungerar.
Klicka på Skapa katalog.
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.
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.
Bevilja privilegier i katalogen. Klicka på Bevilja:
- 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.
- 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
ochmodify
behörigheter för objekt i katalogen. - Välj de behörigheter som ska beviljas manuellt.
- Välj dataläsare från den nedrullningsbara menyn för att bevilja
- Klicka på Bevilja.
- Klicka på Nästa.
- 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.
- (Valfritt) Lägg till en kommentar.
- 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. För datatypsmappning mellan Unity Catalog och datakällan kontrollerar du avsnittet datatypmappningar 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å ikonen Catalog för att öppna Katalogutforskaren.
Längst upp i fönstret Catalog klickar du på ikonen 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.
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.
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änd 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 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 täckning.
Begränsningar
- Frågor är skrivskyddade.
- 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ö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 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.
- Å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 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
- Federerade frågor (Lakehouse Federation) i SQL-språkreferensen