Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Op deze pagina wordt beschreven hoe u Lakehouse Federation instelt om federatieve query's uit te voeren op Snowflake-gegevens die niet worden beheerd door Azure Databricks. Zie Wat is Lakehouse Federation voor meer informatie over Lakehouse Federation?
Als u verbinding wilt maken met uw Snowflake-database met Behulp van Lakehouse Federation, moet u het volgende maken in uw Azure Databricks Unity Catalog-metastore:
- Een verbinding met uw Snowflake-database.
- Een vreemde catalogus die uw Snowflake-database in Unity Catalog spiegelt, zodat u de query-syntaxis en gegevensbeheertools van Unity Catalog kunt gebruiken om de toegang van Azure Databricks-gebruikers tot de database te beheren.
Op deze pagina wordt beschreven hoe u federatieve query's kunt uitvoeren op Snowflake-gegevens met behulp van basisverificatie (gebruikersnaam/wachtwoord). Zie de volgende pagina's voor andere verificatiemethoden:
- Ingebouwde OAuth van Snowflake
- OAuth met Microsoft Entra-id
- OAuth met Okta
- OAuth-toegangstoken
- PERSOONLIJKE PEM-sleutel
U kunt federatieve query's uitvoeren op Snowflake met behulp van queryfederatie of catalogusfederatie.
In queryfederatie pusht JDBC de Unity Catalog-query omlaag naar de externe database. Dit is ideaal voor rapportage op verzoek of voor een proof-of-concept voor uw ETL-pijplijnen.
In catalogusfederatie wordt de Unity Catalog-query rechtstreeks uitgevoerd op bestandsopslag. Deze aanpak is handig voor incrementele migratie zonder codeaanpassing of als een hybride model op langere termijn voor organisaties die bepaalde gegevens in Snowflake moeten onderhouden naast hun gegevens die zijn geregistreerd in Unity Catalog. Zie Snowflake-catalogusfederatie inschakelen.
Voordat u begint
Vereisten voor werkruimte:
- Werkruimte geactiveerd voor Unity Catalog.
Rekenvereisten:
- Netwerkconnectiviteit van uw rekenresource naar de doeldatabasesystemen. Zie De aanbevelingen voor netwerken voor Lakehouse Federation.
- Azure Databricks Compute moet gebruikmaken van Databricks Runtime 13.3 LTS of hoger en de standaard - of toegewezen toegangsmodus.
- SQL-warehouses moeten pro of serverloos zijn en moeten 2023.40 of hoger gebruiken.
Vereiste toestemmingen:
- Als u een verbinding wilt maken, moet u een metastore-beheerder of een gebruiker zijn met de
CREATE CONNECTIONbevoegdheid voor de Unity Catalog-metastore die is gekoppeld aan de werkruimte. - Als u een buitenlandse catalogus wilt maken, moet u de machtiging
CREATE CATALOGhebben voor de metastore en ofwel de eigenaar van de verbinding zijn of het privilegeCREATE FOREIGN CATALOGvoor de verbinding hebben.
Aanvullende machtigingsvereisten worden opgegeven in elke sectie op basis van taken die volgt.
Microsoft Entra-id configureren
Volg Microsoft Entra-id configureren voor externe OAuth in de Snowflake-documentatie.
Een verbinding maken
Een verbinding geeft een pad en referenties op voor toegang tot een extern databasesysteem. Als u een verbinding wilt maken, kunt u Catalog Explorer of de CREATE CONNECTION SQL-opdracht gebruiken in een Azure Databricks-notebook of de Databricks SQL-queryeditor.
Opmerking
U kunt ook de Databricks REST API of de Databricks CLI gebruiken om een verbinding te maken. Zie POST /api/2.1/unity-catalog/connections en Unity Catalog-opdrachten.
Vereiste machtigingen: Metastore-beheerder of gebruiker met de CREATE CONNECTION bevoegdheid.
Catalogusverkenner
Klik in uw Azure Databricks-werkruimte op
Catalogus.
Klik boven in het deelvenster Catalogus op het
Toevoegen pictogram en selecteer Verbinding toevoegen in het menu.U kunt ook op de pagina Snelle toegang op de knop Externe gegevens > klikken, naar het tabblad Verbindingen gaan en op Verbinding maken klikken.
Voer op de pagina Verbindingsbeginselen van de wizard Verbinding instellen een gebruiksvriendelijke verbindingsnaam in.
Selecteer een verbindingstype van Snowflake.
Selecteer (basisverificatie) in de vervolgkeuzelijst voor
Username and password.(Optioneel) Voeg een opmerking toe.
Klik op Volgende.
Voer de volgende verificatie- en verbindingsgegevens in voor uw Snowflake-magazijn. Eigenschappen die specifiek zijn voor de verificatiemethode die u hebt geselecteerd, worden voorafgegaan door de
Auth typetussen haakjes.-
Host: bijvoorbeeld
snowflake-demo.east-us-2.azure.snowflakecomputing.com -
poort: bijvoorbeeld
443 -
Gebruiker: bijvoorbeeld
snowflake-user -
Wachtwoord: bijvoorbeeld
password123
-
Host: bijvoorbeeld
Klik op Volgende.
Geef op de pagina Verbindingsgegevens het volgende op:
-
Snowflake warehouse: bijvoorbeeld
my-snowflake-warehouse - (Optioneel) proxyhost: host van de proxy die wordt gebruikt om verbinding te maken met Snowflake. U moet ook de optie Gebruik proxy selecteren en proxypoortopgeven.
- (Optioneel) Proxy-gebruiken: of u verbinding wilt maken met Snowflake met behulp van een proxyserver.
- (Optioneel) proxypoort: poort van de proxy die wordt gebruikt om verbinding te maken met Snowflake. U moet ook proxy- gebruiken selecteren en proxyhost opgeven.
- (Optioneel) Snowflake-rol: de standaardbeveiligingsrol die moet worden gebruikt voor de sessie nadat u verbinding hebt gemaakt.
-
Snowflake warehouse: bijvoorbeeld
Klik op Volgende.
Voer op de pagina Catalogus Basis een naam in voor de buitenlandse catalogus. Een refererende catalogus spiegelt een database in een extern gegevenssysteem, zodat u de toegang tot gegevens in die database kunt opvragen en beheren met behulp van Azure Databricks en Unity Catalog.
(Optioneel) Klik op Verbinding testen om te bevestigen dat deze werkt.
Klik op Catalogus maken.
Selecteer op de pagina Access de werkruimten waarin gebruikers toegang hebben tot de catalogus die u hebt gemaakt. U kunt Alle werkruimten hebben toegang selecteren, of op Toewijzen aan werkruimten klikken, de werkruimten selecteren en vervolgens op Toewijzen klikken.
Wijzig de eigenaar die de toegang tot alle objecten in de catalogus kan beheren. Begin met het typen van een principe in het tekstvak en klik vervolgens op het principe in de weergegeven resultaten.
Verleen privileges aan de catalogus. Klik op Toestaan:
- Geef de principals op die toegang hebben tot objecten in de catalogus. Begin met het typen van een principe in het tekstvak en klik vervolgens op het principe in de weergegeven resultaten.
- Selecteer de vooraf ingestelde bevoegdheden om aan elke principal toe te kennen. Alle accountgebruikers krijgen standaard
BROWSEtoegewezen.- Selecteer Gegevenslezer in de vervolgkeuzelijst om bevoegdheden voor objecten in de catalogus te verlenen
read. - Selecteer Gegevenseditor in de vervolgkeuzelijst om
readenmodifyrechten toe te kennen op objecten in de catalogus. - Selecteer handmatig de bevoegdheden die u wilt verlenen.
- Selecteer Gegevenslezer in de vervolgkeuzelijst om bevoegdheden voor objecten in de catalogus te verlenen
- Klik op Toestaan.
Klik op Volgende.
Op de pagina Metagegevens geef je sleutel-waardeparen voor tags op. Zie Tags toepassen op beveiligbare objecten in Unity Catalog voor meer informatie.
(Optioneel) Voeg een opmerking toe.
Klik op Opslaan.
SQL
Voer de volgende opdracht uit in een notebook of de Sql-query-editor van Databricks.
CREATE CONNECTION <connection-name> TYPE snowflake
OPTIONS (
host '<hostname>',
port '<port>',
sfWarehouse '<warehouse-name>',
user '<user>',
password '<password>'
);
We raden aan Azure Databricks secrets te gebruiken in plaats van gewone tekststrings voor gevoelige waarden, zoals inloggegevens. Voorbeeld:
CREATE CONNECTION <connection-name> TYPE snowflake
OPTIONS (
host '<hostname>',
port '<port>',
sfWarehouse '<warehouse-name>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>')
)
Zie Geheimbeheer voor informatie over het instellen van geheimen.
Hoofdlettergevoelige database-identificatoren
Het database-veld van de vreemde catalogus komt overeen met een Snowflake-database-id. Als de Snowflake-database-id niet hoofdlettergevoelig is, blijft de behuizing die u in de refererende catalogus gebruikt, behouden <database-name>. Als de Snowflake-database-identificatie echter hoofdlettergevoelig is, moet u de externe catalogus "<database-name>" tussen dubbele aanhalingstekens plaatsen om de hoofdlettergevoeligheid te behouden.
Voorbeeld:
databasewordt geconverteerd naarDATABASE"database"wordt geconverteerd naardatabase"database"""wordt geconverteerd naardatabase"Als u een dubbele aanhalingsteken wilt ontsnappen, gebruikt u nog een dubbele aanhalingsteken.
"database""resulteert in een fout omdat het dubbele aanhalingsteken niet correct is geëscaped.
Zie Id-vereisten in de documentatie van Snowflake voor meer informatie.
Ondersteunde pushdowns
De volgende pushdowns worden ondersteund:
- Filteren
- Prognoses
- Limiet
- [Samenvoegingen]
- Aggregates (Average, Corr, CovPopulation, CovSample, Count, Max, Min, StddevPop, StddevAmp, Sum, VariancePop, VarianceSamp)
- Functies (tekenreeksfuncties, wiskundige functies, gegevens, tijd- en tijdstempelfuncties en andere diverse functies, zoals Alias, Cast, SortOrder)
- Windows functies (DenseRank, Rank, RowNumber)
- Sorteervolgorde
Gegevenstypetoewijzingen
Wanneer u van Snowflake naar Spark leest, worden de gegevenstypen als volgt toegewezen:
| Sneeuwvloktype | Sparktype |
|---|---|
| decimaal, getal, numeriek | DecimaalType |
| Bigint, Byteint, Int, Integer, Smallint, Tinyint | IntegerType |
| float, float4, float8 | Drijftype |
| dubbel, dubbele precisie, reëel | DoubleType |
| char, karakter, tekenreeks, tekst, tijd, varchar | Stringtype |
| binair | BinaireType |
| booleaan | BooleaansType |
| datum | Datumtype |
| datum/tijd, tijdstempel, timestamp_ltz, timestamp_ntz, timestamp_tz | Tijdstempeltype |