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 tak, aby spouštěla federované dotazy na data SQL Serveru, 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 SQL Serveru pomocí federace Lakehouse, musíte v metastore katalogu Azure Databricks Unity vytvořit následující:
- Připojení k databázi SQL Serveru.
- cizí katalog, který zrcadlí databázi SQL Serveru v katalogu Unity, takže můžete použít syntaxi dotazů a nástroje pro správu dat z katalogu Unity ke správě uživatelského přístupu k databázi v Azure Databricks.
Lakehouse Federation podporuje SQL Server, Azure SQL Database a Azure SQL Managed Instance.
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. Viz doporučení k sítím pro Federaci Lakehouse.
- 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.
- Pokud chcete provést ověření na SQL Serveru pomocí ID Microsoft Entra, dokončete nastavení v části Konfigurace Microsoft Entra ID pro federaci SQL Serveru.
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.
Note
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 Unity Catalog příkazy.
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 Přidat nebo plus Ikona Přidat a v nabídce vybertePř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í v průvodci Nastavení připojení zadejte uživatelsky přívětivý název připojení.
Vyberte typ připojení SQL Serveru.
Vyberte typ ověřováníOAuth, OAuth Stroj ke Stroji nebo uživatelské jméno a heslo (základní ověřování).
(Volitelné) Přidejte komentář.
Klikněte na tlačítko Další.
Na stránce Ověřování zadejte následující vlastnosti připojení pro vaši instanci SQL Serveru. Vlastnosti specifické pro metodu ověřování, kterou jste vybrali, jsou před
Auth typev závorkách.- Hostitel: Server SQL.
- (Základní ověřování) Přístav
- (Základní ověřování) trustServerCertificate: Výchozí hodnota
falseje . Když je nastavená hodnotatrue, transportní vrstva používá protokol SSL k šifrování kanálu a obchází řetěz certifikátů k ověření důvěryhodnosti. Ponechte tuto možnost nastavenou na výchozí, pokud nemáte konkrétní potřebu obejít ověření důvěryhodnosti. - (Základní ověřování) Uživatel
- (Základní ověřování) Heslo
- (OAuth) Zadejte podrobnosti o připojení, které jste shromáždili v části Konfigurace ID Microsoft Entra pro federaci SQL Serveru.
Klikněte na Vytvořit připojení.
(Základní ověřování) Na stránce Podrobnosti o připojení zadejte následující:
- důvěřovat certifikátu serveru: Ve výchozím nastavení je tato možnost zrušena. Při výběru používá transportní vrstva SSL k šifrování kanálu a obchází řetězec certifikátů k ověření důvěry. Ponechte tuto možnost nastavenou na výchozí, pokud nemáte konkrétní potřebu obejít ověření důvěryhodnosti.
- záměr aplikace: Typ úlohy aplikace při připojování k serveru.
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.
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 schopen spravovat přístup ke všem objektům v katalogu. Začněte do textového pole zadávat hlavní entitu a potom ve vrácených výsledcích klikněte na hlavní entitu.
Udělte privilegia na katalogu. Klikněte na Odsouhlasit:
- Zadejte Principály, kteří budou mít přístup k objektům v katalogu. Začněte do textového pole zadávat hlavní entitu a potom ve vrácených výsledcích klikněte na hlavní entitu.
- Vyberte přednastavení práv , která mají být udělena každému objektu zabezpečení. Všichni uživatelé účtu mají ve výchozím nastavení udělené
BROWSE.- V rozevírací nabídce vyberte Čtečka dat a udělte
readoprávnění k objektům v katalogu. - V rozevírací nabídce vyberte Datový editor a udělte
readamodifyoprávnění k objektům v katalogu. - Ručně vyberte oprávnění, která chcete udělit.
- V rozevírací nabídce vyberte Čtečka dat a udělte
- Klikněte na Povolit.
Klikněte na tlačítko Další.
Na stránce Metadata zadejte páry klíč-hodnota štítků. Další informace najdete v tématu Použití značek pro zabezpečitelné objekty v katalogu Unity.
(Volitelné) Přidejte komentář.
Klikněte na Uložit.
Note
(OAuth) Koncový bod OAuth ID Azure Entra musí být přístupný z IP adres řídicí roviny Azure Databricks. Viz oblasti Azure Databricks.
SQL
V poznámkovém bloku nebo editoru dotazů SQL Databricks spusťte následující příkaz.
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Doporučujeme používat Azure Databricks tajných kódů místo řetězců prostého textu pro citlivé hodnoty, jako jsou přihlašovací údaje. Například:
CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
host '<hostname>',
port '<port>',
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ů.
Vytvoření zahraničního katalogu
Note
Pokud k vytvoření připojení ke zdroji dat použijete uživatelské rozhraní, zahrne se vytvoření cizího katalogu a tento krok můžete přeskočit.
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. Chcete-li vytvořit cizí katalog, použijete připojení ke zdroji dat, který již byl definován.
K vytvoření cizího katalogu můžete použít Průzkumníka katalogu nebo příkaz CREATE FOREIGN CATALOG SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL. K vytvoření katalogu můžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/catalogs a příkazy Unity Catalog.
Požadovaná oprávnění:CREATE CATALOG oprávnění k metastoru a vlastnictví připojení nebo CREATE FOREIGN CATALOG oprávnění k připojení.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na
Klikněte na Katalog pro otevření Průzkumníka katalogu.
V horní části podokna katalogu
klikněte na ikonu Přidat nebo plus Ikona Přidat a v nabídce vybertePřidat katalogu.Případně na stránce Rychlý přístup klikněte na tlačítko Katalogy a potom klikněte na tlačítko Vytvořit katalog.
Postupujte podle pokynů pro vytváření cizích katalogů v Vytvořit katalogy.
SQL
V poznámkovém bloku nebo editoru dotazů SQL spusťte následující příkaz SQL. Položky v závorkách jsou volitelné. Nahraďte zástupné hodnoty:
-
<catalog-name>: Název katalogu v Azure Databricks. -
<connection-name>: Objekt připojení , který určuje zdroj dat, cestu a přihlašovací údaje pro přístup. -
<database-name>: Název databáze, kterou chcete zrcadlit jako katalog v Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');
Podporovaná snižování
Na všech výpočetních prostředcích se podporují následující nabízení:
- Filters
- Projections
- Limit
- Funkce: částečné, pouze pro výrazy filtru. (Řetězcové funkce, matematické funkce, data, časová a časová razítka a další různé funkce, jako jsou Alias, Cast, SortOrder)
V Databricks Runtime 13.3 LTS a novějších a na výpočetních prostředcích SQL Warehouse se podporují následující nabízení:
- Aggregates
- Následující logické operátory: =, <, <=, >, >=, <=>
- Následující matematické funkce (nepodporuje se, pokud je anSI zakázán): +, -, *, %, /
- Následující různé operátory: ^, |, ~
- Řazení při použití s limitem
Následující nabízená oznámení nejsou podporována:
- Joins
- Funkce Systému Windows
Mapování datového typu
Při čtení z SQL Serveru do Sparku se datové typy mapuje takto:
| Typ SQL Serveru | Typ Spark |
|---|---|
| bigint (bez znaménka), desetinné číslo, peníze, číselné, malé | DecimalType |
| smallint, tinyint | ShortType |
| int | IntegerType |
| bigint (pokud je podepsaný) | LongType |
| real | FloatType |
| float | DoubleType |
| char, nchar, uniqueidentifier | CharType |
| nvarchar, varchar | VarcharType |
| textový soubor, xml | StringType |
| binary, geografie, geometrie, image, timestamp, udt, varbinary | BinaryType |
| bit | BooleanType |
| date | DateType |
| datum a čas, datum a čas, malý datum a čas, čas | TimestampType/TimestampNTZType |
*Při čtení z SQL Serveru se SQL Server datetimes mapuje na Spark TimestampType , pokud preferTimestampNTZ = false (výchozí). SQL Server datetimes je mapován na TimestampNTZType if preferTimestampNTZ = true.