Dela via


Köra federerade frågor på en annan Databricks-arbetsyta

Den här artikeln beskriver hur du konfigurerar Lakehouse Federation för att köra federerade frågor på Databricks-data på en annan Databricks-arbetsyta. Mer information om Lakehouse Federation finns i Vad är Lakehouse Federation?.

Viktigt!

Databricks-till-Databricks Lakehouse Federation är ett bra verktyg för att köra frågor på data som hanteras av en annan Databricks-arbetsytas Hive- eller AWS Glue-metaarkiv. I de flesta andra scenarier är andra Azure Databricks-arbetsflöden mer effektiva:

  • Om Azure Databricks-arbetsytor delar samma Unity Catalog-metaarkiv kan du hantera frågor mellan arbetsytor med hjälp av vanliga Unity Catalog-frågor och datastyrningsverktyg.
  • Om du vill ha åtkomst med skrivskydd till data på en Databricks-arbetsyta som är kopplad till ett annat Unity Catalog-metaarkiv, oavsett om det är i ditt Azure Databricks-konto eller inte, är Delta Sharing ett bättre val.

Du behöver inte konfigurera Lakehouse Federation i något av dessa scenarier.

Om du vill ansluta till en Databricks-katalog på en annan arbetsyta med Lakehouse Federation måste du skapa följande i azure Databricks Unity Catalog-metaarkivet:

  • Ett kluster eller SQL-lager på en Databricks-arbetsyta.
  • En anslutning till klustret eller SQL-lagret.
  • En utländsk katalog i ditt Unity Catalog-metaarkiv som speglar den andra Databricks-katalogen som är tillgänglig från klustret eller SQL-lagret så att du kan använda Unity Catalog-frågesyntax och datastyrningsverktyg för att hantera Azure Databricks-användaråtkomst till data.

Innan du börjar

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.

Du måste också ha ett aktivt kluster eller SQL-lager i Azure Databricks-arbetsytan som du använder för att konfigurera anslutningen.

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 Anslutningsnamnpå sidan Anslutningsgrunder i guiden Konfigurera anslutning .

  4. Välj en anslutningstyp för Databricks.

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

  6. Klicka på Nästa.

  7. På sidan Authentication anger du följande anslutningsegenskaper för den andra Databricks-instansen:

    • Värd: Namnet på arbetsytans instans. För att lära dig hur du hämtar arbetsytans instansnamn, se Hämta identifierare för arbetsyteobjekt.
    • Personlig åtkomsttoken: En personlig åtkomsttoken för Azure Databricks som ger åtkomst till målarbetsytan.. Information om hur du hämtar en token finns i Autentisera med personliga åtkomsttoken för Azure Databricks (äldre). För anslutningar rekommenderar Databricks att du använder en personlig åtkomsttoken för ett tjänsthuvudkonto.
    • HTTP-sökväg: HTTP-sökvägen för ditt SQL-lager. Om du vill hämta sökvägen går du till SQL > SQL Warehouses i sidofältet, väljer SQL-lagret, går till fliken Anslutningsinformation och kopierar värdet för HTTP-sökväg.
  8. Klicka på Skapa anslutning.

  9. På sidan Catalog basics anger du katalognamnet på den andra Azure Databricks-arbetsytan som kan mappas till ett katalogobjekt i det här metaarkivet.

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

  11. Klicka på Skapa katalog.

  12. På sidan Access väljer du 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. Ändra ägaren som kommer att kunna hantera åtkomst till alla objekt i katalogen. Börja skriva en användarprofil i textrutan, och klicka sedan på profilen 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 användarprofil i textrutan, och klicka sedan på profilen i de returnerade resultaten.
    2. Välj Privilege-förinställningar att bevilja till varje användare. 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" .
  15. Klicka på Nästa.

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

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

  18. Klicka på Spara.

SQL

Kör följande kommando i en notebook-fil eller Databricks SQL-frågeredigeraren och ersätt följande:

  • <connection-name>: Användarvänligt namn för den anslutning som du skapar.
  • <workspace-instance>: Målarbetsytans instans. För att lära dig hur du hämtar arbetsytans instansnamn, se Hämta identifierare för arbetsyteobjekt.
  • <sql-warehouse-path>: HTTP-sökvägen för ditt SQL-lager. Om du vill hämta sökvägen går du till SQL > SQL Warehouses i sidofältet, väljer SQL-lagret, går till fliken Anslutningsinformation och kopierar värdet för HTTP-sökväg.
  • <personal-access-token>: En personlig åtkomsttoken för Azure Databricks som ger åtkomst till målarbetsytan. Information om hur du hämtar en token finns i Autentisera med personliga åtkomsttoken för Azure Databricks (äldre). För anslutningar rekommenderar Databricks att du använder ett tjänsthuvudnamns personliga åtkomsttoken.
CREATE CONNECTION <connection-name> TYPE databricks
OPTIONS (
  host '<workspace-instance>',
  httpPath '<sql-warehouse-path>',
  personalAccessToken '<personal-access-token>'
);

Vi rekommenderar att du använder Azure Databricks secrets istället för klartextsträngar för känsliga värden såsom inloggningsuppgifter. Till exempel:

CREATE CONNECTION <connection-name> TYPE databricks
OPTIONS (
  host '<workspace-instance>',
  httpPath '<sql-warehouse-path>',
  personalAccessToken secret ('<secret-scope>','<secret-key-password>')
)

Information om hur du konfigurerar hemligheter finns i Hemlighetshantering.

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 utländsk katalog speglar en katalog i Databricks-arbetsytan så att du kan fråga och hantera åtkomst till data i den externa Databricks-katalogen som om det vore en katalog i din egen arbetsyta. Om du vill skapa en sekundär katalog använder du en anslutning till den externa Databricks-arbetsytan som redan har definierats.

Om du vill skapa en sekundär katalog kan du använda Catalog Explorer eller kommandot CREATE FOREIGN CATALOG SQL i en Azure Databricks-notebook-fil eller Databricks SQL-frågeredigeraren. Du kan också använda Databricks REST API eller Databricks CLI för att skapa en katalog. Se kommandona POST /api/2.1/unity-catalog/catalogs och Unity Catalog.

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å dataikonen.Katalog för att öppna Katalogutforskaren.

  2. Längst upp i panelen Catalog klickar du på Lägg till- eller plusikonenikonen Lägg till och väljer Lägg till en katalog i 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- eller Databricks SQL-redigerare. Objekt inom hakparenteser är valfria. Ersätt platshållarvärdena:

  • <catalog-name>: Namn på den utländska katalog som du skapar.
  • <connection-name>: Det anslutningsobjektet som anger autentiseringsuppgifterna för datakälla, sökväg och åtkomst.
  • <external-catalog-name>: Namnet på katalogen på den externa Databricks-arbetsytan som du speglar.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (catalog '<external-catalog-name>');

Pushdowns som stöds

Följande pushdowns stöds för all beräkning:

  • Filter
  • Projektioner
  • Gräns
  • Funktioner: endast filteruttryck stöds (strängfunktioner, matematiska funktioner, data, tid och tidsstämpel samt andra diverse funktioner, till exempel Alias, Cast, SortOrder).

Följande pushdowns stöds på Databricks Runtime 13.3 LTS och senare och SQL Warehouse Compute:

  • Aggregeringar
  • Följande booleska operatorer: =, <, <=, >, >=, <=>
  • Följande matematiska funktioner (stöds inte om ANSI är inaktiverat): +, -, *, %, /
  • Följande övriga operatorer: ^, |, ~
  • Sortering, när den används med gräns

Följande pushdowns stöds inte:

  • Kopplingar
  • Windows-funktioner

Datatypsmappningar

Datatyper mappar vanligtvis en-till-en när du använder Databricks-till-Databricks-federation. Följande datatyper mappas dock till StringType:

Från Till
ArrayType StringType
IntervalType StringType
MapType StringType
StructType StringType