Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato stránka popisuje, jak nastavit federaci Lakehouse pro spouštění federovaných dotazů na data Snowflake, která nespravuje Azure Databricks. Další informace o federaci Lakehouse najdete v tématu Co je Federace Lakehouse?
Pokud se chcete připojit k databázi Snowflake pomocí federace Lakehouse, musíte v metastore katalogu Azure Databricks Unity vytvořit následující:
- Připojení k databázi Snowflake.
- Cizí katalog , který zrcadlí databázi Snowflake v katalogu Unity Catalog, abyste mohli použít syntaxi dotazů Unity Catalog a nástroje řízení dat ke správě přístupu uživatelů Azure Databricks k databázi.
Tato stránka popisuje, jak spouštět federované dotazy na data Snowflake pomocí základního ověřování (uživatelské jméno a heslo). Další metody ověřování najdete na následujících stránkách:
- Vestavěný OAuth od Snowflake
- OAuth s ID Microsoft Entra
- OAuth s Okta
- Přístupový token OAuth
- Privátní klíč PEM
Ve Snowflake můžete spouštět federované dotazy pomocí federace dotazů nebo federace katalogu.
V federaci dotazů JDBC odešle dotaz katalogu Unity do externí databáze. To je ideální pro vytváření sestav na vyžádání nebo testování konceptu ve vašich kanálech ETL.
V federování katalogu se dotaz katalogu Unity spouští přímo v úložišti souborů. Tento přístup je užitečný pro přírůstkovou migraci bez přizpůsobení kódu nebo jako dlouhodobější hybridní model pro organizace, které musí udržovat některá data ve Snowflake společně s daty registrovanými v katalogu Unity. Viz Povolení federace katalogu Snowflake.
Než začnete
Požadavky na pracovní prostor:
- Pracovní prostor aktivován pro katalog Unity.
Požadavky na výpočetní prostředky:
- Síťové připojení z vašeho výpočetního prostředku k cílovým databázovým systémům. Podívejte se na doporučení pro síťování pro Lakehouse Federation.
- Výpočetní prostředky Azure Databricks musí používat Databricks Runtime 13.3 LTS nebo novější a Standard nebo dedikovaný režim přístupu.
- Sql Warehouse musí být pro nebo bezserverové a musí používat verzi 2023.40 nebo vyšší.
Požadovaná oprávnění:
- Pokud chcete vytvořit připojení, musíte být správcem metastoru nebo uživatelem s oprávněním
CREATE CONNECTIONk metastoru katalogu Unity připojenému k pracovnímu prostoru. - Chcete-li vytvořit cizí katalog, musíte mít oprávnění
CREATE CATALOGk metastoru a být buď vlastníkem připojení, nebo mít oprávněníCREATE FOREIGN CATALOGpro připojení.
Další požadavky na oprávnění jsou uvedeny v následující části založené na úlohách.
Nakonfigurujte Microsoft Entra ID
V dokumentaci Snowflake postupujte podle návodu Konfigurace Microsoft Entra ID pro externí OAuth.
Vytvoření připojení
Připojení určuje cestu a přihlašovací údaje pro přístup k externímu databázovému systému. K vytvoření připojení můžete použít Průzkumníka katalogu nebo příkaz CREATE CONNECTION SQL v poznámkovém bloku Azure Databricks nebo editoru dotazů SQL Databricks.
Poznámka:
K vytvoření připojení můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/connections a příkazy Unity Catalog .
Požadovaná oprávnění : správce metastoru nebo uživatel s oprávněním CREATE CONNECTION.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na
Katalog.
V horní části podokna katalogu klikněte na ikonu
ikona Přidat a v nabídce vyberte možnost Přidat připojení.Případně na stránce Rychlý přístup klikněte na tlačítko Externí data >, přejděte na kartu Připojení a klikněte na Vytvořit připojení.
Na stránce základy připojení průvodce Nastavení připojení zadejte uživatelsky přívětivý název připojení.
Vyberte typ připojeníSnowflake.
Jako typ ověřování vyberte
Username and passwordv rozevírací nabídce možnost (základní ověřování).(Volitelné) Přidejte komentář.
Klikněte na tlačítko Další.
Zadejte následující podrobnosti o ověřování a připojení pro váš sklad Snowflake. Vlastnosti specifické pro metodu ověřování, kterou jste vybrali, jsou před
Auth typev závorkách.-
Hostitel: Příklad:
snowflake-demo.east-us-2.azure.snowflakecomputing.com -
Port: Například
443 -
Uživatel: Příklad:
snowflake-user -
heslo: Například
password123
-
Hostitel: Příklad:
Klikněte na tlačítko Další.
Na stránce Podrobnosti o připojení zadejte následující:
-
Snowflake Warehouse: Například
my-snowflake-warehouse - (Volitelné) Proxy host: Hostitel proxy serveru používaného k připojení ke Snowflake. Musíte také vybrat Použít proxy a zadat proxy port.
- (Volitelné) Použít proxy: Jestli se chcete připojit ke Snowflake pomocí proxy serveru.
- (Volitelné) proxy port: Port proxy serveru, který se používá pro připojení ke Snowflake. Musíte také vybrat Použít proxy a zadat hostitele proxy.
- (Volitelné) Snowflake role: Výchozí zabezpečovací role, která se má použít pro relaci po připojení.
-
Snowflake Warehouse: Například
Klikněte na tlačítko Další.
Na stránce základy katalogu zadejte název cizího katalogu. Cizí katalog zrcadlí databázi v externím datovém systému, abyste mohli dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog.
(Volitelné) Kliknutím na test připojení potvrďte, že funguje.
Klikněte na Vytvořit katalog.
Na stránce Access vyberte pracovní prostory, ve kterých mají uživatelé přístup k vytvořenému katalogu. Můžete vybrat Všechny pracovní prostory mají přístup, nebo klepněte na Přiřadit k pracovním prostorům, vyberte pracovní prostory a potom klikněte na Přiřadit.
Změňte vlastníka , který bude moci spravovat přístup ke všem objektům v katalogu. Začněte do textového pole zadávat název entity a potom ve vrácených výsledcích klikněte na tuto entitu.
Udělte oprávnění na katalog. Klikněte na Odsouhlasit:
- Uveďte uživatele Principals, kteří budou mít přístup k objektům v katalogu. Začněte do textového pole zadávat název entity a potom ve vrácených výsledcích klikněte na tuto entitu.
- Vyberte přednastavení oprávnění, které se mají každému subjektu udělit. Všichni uživatelé účtu mají ve výchozím nastavení udělené
BROWSE.- V rozevírací nabídce vyberte Data Reader a poskytněte
readoprávnění k objektům v katalogu. - V rozevírací nabídce vyberte Datový editor a udělte oprávnění
readamodifyk objektům v katalogu. - Ručně vyberte oprávnění, která chcete udělit.
- V rozevírací nabídce vyberte Data Reader a poskytněte
- Klikněte na Povolit.
Klikněte na tlačítko Další.
Na stránce Metadata zadejte páry klíč-hodnota tagů. Další informace najdete v tématu Použití značek na zabezpečitelné objekty v Katalogu Unity.
(Volitelné) Přidejte komentář.
Klikněte na Uložit.
SQL
V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz.
CREATE CONNECTION <connection-name> TYPE snowflake
OPTIONS (
host '<hostname>',
port '<port>',
sfWarehouse '<warehouse-name>',
user '<user>',
password '<password>'
);
Doporučujeme používat Azure Databricks tajemství místo prostého textu pro citlivé hodnoty, jako jsou přihlašovací údaje. Například:
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>')
)
Informace o nastavení tajných kódů najdete v tématu Správa tajných kódů.
Identifikátory rozlišující malá a velká písmena v databázích
Pole database cizího katalogu mapuje identifikátor databáze Snowflake. Pokud identifikátor databáze Snowflake nerozlišuje velká a malá písmena, zachová se formátování, které používáte v cizím katalogu <database-name>. Pokud je však identifikátor databáze Snowflake citlivý na velikost písmen, musíte cizí katalog <database-name> uzavřít do dvojitých uvozovek, aby se zachovala správná velikost písmen.
Například:
databaseje převeden naDATABASE"database"je převeden nadatabase"database"""je převeden nadatabase"Pro únik dvojité uvozovky použijte jinou dvojitou uvozovku.
"database""způsobí chybu, protože dvojitá uvozovka není správně escapována.
Další informace najdete v tématu Požadavky na identifikátor v dokumentaci Snowflake.
Podporovaná snižování
Podporují se následující pushdowny:
- Filtry
- Projekce
- Omezení
- Připojuje
- Agregace (Průměr, Corr, CovPopulation, CovSample, Počet, Maximum, Minimum, StddevPop, StddevSamp, Součet, VariancePop, VarianceSamp)
- Funkce (řetězcové funkce, matematické funkce, data, časová a časová razítka a další různé funkce, jako jsou Alias, Cast, SortOrder)
- Funkce Systému Windows (DenseRank, Rank, RowNumber)
- Řazení
Mapování datových typů
Při čtení ze Snowflake do Spark se datové typy mapují takto:
| Typ sněhové vločky | Typ Spark |
|---|---|
| desetinný, číslo, numerický | TypDesetinnéhoČísla |
| bigint (velké číslo), byteint (základní bajt), int (celé číslo), integer (celé číslo), smallint (malé celé číslo), tinyint (malé číslo) | IntegerType |
| float, float4, float8 (typy dat) | Datový typ float |
| dvojité číslo, dvojitá přesnost, reálné číslo | DoubleType |
| char, znak, řetězec, text, čas, varchar | Typ řetězce |
| binární | BinárníTyp |
| Boolean | Booleovský typ |
| datum | Typ datumu |
| datetime, timestamp, timestamp_ltz, timestamp_ntz, timestamp_tz | Typ časového razítka |