Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här sidan beskriver hur du konfigurerar Lakehouse Federation för att köra federerade frågor på Snowflake-data som inte hanteras av Azure Databricks. Mer information om Lakehouse Federation finns i Vad är Lakehouse Federation?
Om du vill ansluta till din Snowflake-databas med Lakehouse Federation måste du skapa följande i azure Databricks Unity Catalog-metaarkivet:
- En anslutning till snowflake-databasen.
 - En utländsk katalog som speglar din Snowflake-databas i Unity Catalog så att du kan använda Unity Catalog-frågesyntax och verktyg för datastyrning för att hantera Azure Databricks-användaråtkomst till databasen.
 
Den här sidan beskriver hur du kör federerade frågor på Snowflake-data med hjälp av en OAuth-åtkomsttoken. Andra autentiseringsmetoder finns på följande sidor:
- Inbyggd OAuth i Snowflake
 - OAuth med Microsoft Entra-ID
 - OAuth med Okta
 - PRIVAT PEM-nyckel
 - Grundläggande autentisering (användarnamn/lösenord)
 
Du kan köra federerade frågor på Snowflake med hjälp av frågefederation eller katalogfederation.
I frågefederation skickar JDBC Unity Catalog-frågan till den externa databasen. Detta är idealiskt för rapportering på begäran eller koncepttestarbete på dina ETL-pipelines.
I katalogfederation körs Unity Catalog-frågan direkt mot fillagring. Den här metoden är användbar för inkrementell migrering utan kodanpassning eller som en mer långsiktig hybridmodell för organisationer som måste underhålla vissa data i Snowflake tillsammans med sina data som registrerats i Unity Catalog. Se Aktivera Snowflake-katalogfederation.
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 CONNECTIONbehörighet i Unity Catalog-metaarkivet som är kopplat till arbetsytan. - Om du vill skapa en extern katalog måste du ha behörigheten 
CREATE CATALOGi metaarkivet och antingen vara ägare till anslutningen eller haCREATE FOREIGN CATALOGbehörighet för anslutningen. 
Ytterligare tillståndskrav specificeras i varje uppgiftsbaserad sektion som följer.
Begära en OAuth-åtkomsttoken
Följ Hur du: Genererar och använder en OAuth-token med Snowflake OAuth för anpassade klienter i Snowflake Knowledge Base.
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.
Anmärkning
Du kan även 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: Metastore-admin eller användare med CREATE CONNECTION-behörighet.
På din Azure Databricks-arbetsyta klickar du på
Katalog.
Längst upp i fönstret Katalog klickar du på
lägg till och väljer Skapa en anslutning på menyn.Du kan också klicka på knappen på sidan >, gå till fliken Anslutningar och klicka på Skapa anslutning.
På sidan Anslutningsgrundläggande i Installera anslutningsguiden anger du ett användarvänligt Anslutningsnamn.
Som Anslutningstyp väljer du Snowflake.
För autentiseringstyp väljer du
OAuth Access Tokenfrån den nedrullningsbara menyn.(Valfritt) Lägg till en kommentar.
Klicka på Nästa.
Ange följande autentiserings- och anslutningsinformation på sidan Autentisering .
- 
              Värd: Till exempel 
snowflake-demo.east-us-2.azure.snowflakecomputing.com. - 
              Port: Standardvärdet är 
443. - Användare: Använd ditt personliga Snowflake-användarnamn.
 - Åtkomsttoken: Åtkomsttoken från Begär en OAuth-åtkomsttoken.
 - (Valfritt) Upphör att gälla i sekunder: Förfallotiden (i sekunder) för åtkomsttoken från Begär en OAuth-åtkomsttoken (
expires_in). 
- 
              Värd: Till exempel 
 Klicka på Nästa.
På sidan Anslutningsinformation anger du namnet på ditt Snowflake-lager.
Om du vill använda proxy för att ansluta till Snowflake markerar du rutan Använd proxy och fyller i nödvändig information.
Klicka på Skapa anslutning.
På sidan Grundläggande katalog anger du ett namn för den externa katalogen.
För Databas anger du ett databasnamn i Snowflake. 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.
(Valfritt) Klicka på Testa anslutning för att bekräfta att den fungerar.
Klicka på Skapa katalog.
På sidan Åtkomst väljer du de arbetsytor där användarna kan komma åt katalogen som du skapade. Du kan välja Alla arbetsytor har åtkomst eller klicka på Tilldela till arbetsytor, välja arbetsytor och sedan klicka på Tilldela.
Ändra ägaren som ska kunna hantera åtkomsten till alla objekt i katalogen. Börja skriva en princip i textrutan och klicka sedan på principen i de returnerade resultaten.
Bevilja privilegier i katalogen. Klicka på Tillåt:
- Ange de huvudnamn som ska ha åtkomst till objekt i katalogen. Börja skriva en princip i textrutan och klicka sedan på principen i de returnerade resultaten.
 - Välj förinställningarna för privilegier som ska beviljas varje huvudaktör . Alla kontoanvändare beviljas 
BROWSEsom standard.- Välj Dataläsare på den nedrullningsbara menyn för att bevilja 
readbehörigheter för objekt i katalogen. - Välj Dataredigeraren på den nedrullningsbara menyn för att bevilja 
readochmodifybehörigheter för objekt i katalogen. - Välj de behörigheter som ska beviljas manuellt.
 
 - Välj Dataläsare på den nedrullningsbara menyn för att bevilja 
 - Klicka på Tillåt.
 
Klicka på Nästa.
På sidan Metadata anger du taggar 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.
Skiftlägeskänsliga databasidentifierare
Fältet database i den externa katalogen mappar till en Snowflake-databasidentifierare. Om Snowflake-databasidentifieraren inte är skiftlägeskänslig bevaras det hölje som du använder i den externa katalogen <database-name>. Men om Snowflake-databasidentifieraren är skiftlägeskänslig måste du omsluta den utländska katalogen <database-name> med dubbla citattecken så att skiftläget bevaras.
Till exempel:
databasekonverteras tillDATABASE"database"konverteras tilldatabase"database"""konverteras tilldatabase"För att undvika ett dubbelt citattecken, använd ett annat dubbelt citattecken.
"database""resulterar i ett fel eftersom det dubbla citattecknet inte är korrekt escapet.
Mer information finns i Identifierarkrav i Snowflake-dokumentationen.
Pushdowns som stöds
Följande nedtryckningar stöds:
- Filterar
 - Prognoser
 - Begränsning
 - Ansluter sig
 - Aggregat (Medelvärde, Korrel, KovariansPop, KovariansSamp, Antal, Max, Min, StdavvikelsePop, StdavvikelseSamp, Summa, VariansPop, VariansSamp)
 - Funktioner (strängfunktioner, matematiska funktioner, data- och tids- och tidsstämpelfunktioner, och andra olika funktioner, till exempel Alias, Cast, SortOrder)
 - Windows-funktioner (DenseRank, Rank, RowNumber)
 - Sortering
 
Datatypsmappningar
När du läser från Snowflake till Spark mappar datatyper enligt följande:
| Snöflingetyp | Sparktyp | 
|---|---|
| decimal, nummer, siffra | Decimaltyp | 
| bigint, byteint, int, heltal, smallint, tinyint | IntegerType | 
| float, float4, float8 | Flyttalstyp | 
| dubbel, dubbelprecision, reell | DubbelTyp | 
| char, tecken, sträng, text, tid, varchar | strängtyp | 
| binär | Binärtyp | 
| booleskt | Booleskt Datatyp | 
| datum | Datumtyp | 
| datum och tid, tidsstämpel, timestamp_ltz, timestamp_ntz, timestamp_tz | Tidsstämpeltyp | 
Begränsningar
- Snowflake OAuth-slutpunkten måste vara tillgänglig från Databricks-kontrollplanets IP-adresser. Se Utgående IP-adresser från Azure Databricks-kontrollplanet. Snowflake stöder konfiguration av nätverksprinciper på säkerhetsintegreringsnivå, vilket möjliggör en separat nätverksprincip som möjliggör direkt anslutning från Databricks-kontrollplanet till OAuth-slutpunkten för auktorisering.
 - Använd proxy, Proxyvärd, Proxyport och konfigurationsalternativen för Snowflake-roll stöds inte. Ange Snowflake-rollen som en del av OAuth-omfånget.
 
Ytterligare resurser
Se följande artiklar i Snowflake-dokumentationen: