Sdílet prostřednictvím


Spouštění federovaných dotazů v Microsoft Azure Synapse

Tento článek popisuje, jak set up Lakehouse Federation ke spouštění federovaných dotazů na data Azure Synapse (SQL Data Warehouse), 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 Azure Synapse (SQL Data Warehouse) pomocí federace Lakehouse, musíte ve svém metastoru Azure Databricks Unity Catalog vytvořit následující:

  • Připojení k databázi Azure Synapse (SQL Data Warehouse).
  • cizí catalog, která zrcadlí vaši databázi Azure Synapse (SQL Data Warehouse) v Unity Catalog, abyste mohli používat syntax dotazů a nástroje pro správu datového řízení v Unity Catalog ke správě uživatelského přístupu k databázi Azure Databricks.

Než začnete

Požadavky na pracovní prostor:

  • Pracovní prostor aktivován pro Unity Catalog.

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 v režimu přístupu sdíleném nebo jednoho uživatele.
  • 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 CONNECTION k metastoru Unity Catalog připojenému k pracovnímu prostoru.
  • Chcete-li vytvořit cizí catalog, musíte mít oprávnění CREATE CATALOG k metastoru a být buď vlastníkem připojení, nebo mít oprávnění CREATE FOREIGN CATALOG k připojení.

Další požadavky na oprávnění jsou uvedeny v následující části založené na úlohách.

Vytvoření připojení

Připojení určuje cestu a credentials pro přístup k externímu databázovému systému. K vytvoření připojení můžete použít Catalog Explorer 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 .

Catalog Explorer

  1. V pracovním prostoru Azure Databricks klikněte na ikonu CatalogCatalog.

  2. V horní části podokna Catalog klikněte na ikonu Přidat nebo plusIkona Přidat a v nabídce selectPřidat připojení.

    Případně na stránce Rychlý přístup klikněte na tlačítko Externí data >, přejděte na kartu Connections a klikněte na připojení Vytvořit.

  3. Na stránce základy Připojení průvodce Set připojení zadejte uživatelsky přívětivý název Název připojení.

  4. Select a typ připojeníSQLDW.

  5. (Volitelné) Přidejte komentář.

  6. Klikněte na Další.

  7. Na stránce Ověřování zadejte následující vlastnosti připojení pro vaši instanci Azure Synapse:

    • Hostitel: Například sqldws-demo.database.windows.net.
    • Port: Příklad: 1433
    • Uživatel
    • Heslo
    • důvěřovat certifikátu serveru: Ve výchozím nastavení je tato možnost zrušena. Pokud je tato možnost vybraná, vrstva přenosu používá SSL k šifrování kanálu a obchází řetěz certifikátů při ověřování důvěryhodnosti. Tuto set ponechte výchozí, pokud nemáte konkrétní potřebu obejít ověření důvěryhodnosti.
  8. Klikněte na Vytvořit připojení.

  9. Na stránce základů Catalog zadejte název pro cizí catalog. Cizí catalog zrcadlí databázi uvnitř externího datového systému, abyste mohli provádět dotazy a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog.

  10. (Volitelné) Kliknutím na test připojení potvrďte, že funguje.

  11. Klikněte na Vytvořit catalog.

  12. Na stránce Accessselect pracovní prostory, do kterých mají uživatelé přístup k catalog, které jste vytvořili. Můžete select, všechna pracovní místa mají přístup, nebo klikněte na Přiřadit pracovním místům, vyberte pracovní místa select a poté klikněte na Přiřadit.

  13. Změňte vlastníka, aby mohl spravovat přístup ke všem objektům v catalog. Začněte do textového pole zadávat objekt zabezpečení a potom ve vrácených výsledcích klikněte na objekt zabezpečení.

  14. Grant oprávnění na catalog. Klikněte na Grant:

    1. Zadejte principály , kteří budou mít přístup k objektům v catalog. Začněte do textového pole zadávat objekt zabezpečení a potom ve vrácených výsledcích klikněte na objekt zabezpečení.
    2. Select přednastavení privilegií grant každému subjektu. Všichni uživatelé účtu mají ve výchozím nastavení udělené BROWSE.
      • Select Čtečka dat v rozevírací nabídce pro grantread oprávnění na objekty v catalog.
      • Select Data Editor z rozevírací nabídky grantread a modify oprávnění k objektům v catalog.
      • Ručně přiřaďte oprávnění select k grant.
    3. Klikněte na Grant.
  15. Klikněte na Další.

  16. Na stránce Metadata zadejte páry klíč-hodnota tagů. Další informace naleznete v tématu Použití značek na Unity Catalog zabezpečitelné objekty.

  17. (Volitelné) Přidejte komentář.

  18. 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 sqldw
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Doporučujeme používat tajné kódy Azure Databricks namísto řetězců prostého textu pro citlivé , jako je . Příklad:

CREATE CONNECTION <connection-name> TYPE sqldw
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ř cizí catalog

Poznámka:

Pokud použijete uživatelské rozhraní k vytvoření připojení ke zdroji dat, zahrnuje se automaticky vytvoření cizího prvku catalog a tento krok můžete přeskočit.

Cizí catalog zrcadlí databázi v externím datovém systému, aby bylo možné dotazovat a spravovat přístup k datům v této databázi pomocí Azure Databricks a Unity Catalog. Chcete-li vytvořit cizí prvek catalog, použijete připojení ke zdroji dat, který již byl definován.

K vytvoření cizího catalogmůžete použít Catalog Explorer nebo příkaz CREATE FOREIGN CATALOG SQL v poznámkovém bloku Azure Databricks nebo v editoru dotazů SQL.

K vytvoření catalogmůžete použít také rozhraní REST API Databricks nebo rozhraní příkazového řádku Databricks. Viz POST /api/2.1/unity-catalog/catalogs a Unity příkazy 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í.

Catalog Průzkumník

  1. V pracovním prostoru Azure Databricks kliknutím na ikonu CatalogCatalog otevřete průzkumníka Catalog.

  2. V horní části podokna Catalog klikněte na ikonu Přidat nebo plusIkona Přidat a selectPřidat catalog z nabídky.

    Případně na stránce Rychlý přístup klikněte na tlačítko Catalogs a potom klikněte na tlačítko Vytvořit catalog.

  3. Postupujte podle pokynů pro vytváření cizích catalogs v Vytvořit catalogs.

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ý text values:

  • <catalog-name>: Název catalog v Azure Databricks.
  • <connection-name>: objekt připojení , který určuje zdroj dat, cestu a přístup credentials.
  • <database-name>: Název databáze, kterou chcete zrcadlit jako catalog v Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Podporované odsdílení změn

Podporují se následující nabízení:

  • Filtry
  • Projekce
  • Limit
  • Aggregates (Average, Count, Max, Min, StddevPop, StddevSamp, Sum, VarianceSamp)
  • Funkce (Aritmetika a další různé funkce, například Alias, Cast, SortOrder)
  • Třídění

Následující nabízená oznámení nejsou podporována:

  • Spojení
  • Funkce Systému Windows

Mapování datového typu

Při čtení ze služby Synapse / SQL Data Warehouse do Sparku se datové typy mapuje takto:

Typ Synapse Typ Sparku
decimal, money, numeric, smallmoney DecimalType
smallint Krátký typ
tinyint ByteType
int IntegerType
bigint LongType
real FloatType
float (číslo s plovoucí řádovou čárkou) DoubleType
char, nchar, ntext, nvarchar, text, uniqueidentifier, varchar, xml StringType
binary, geography, geometry, image, timestamp, udt, varbinary BinaryType
bitové BooleanType
datum Typ data
datetime, datetime, smalldatetime, time TimestampType/TimestampNTZType*

*Při čtení ze služby Synapse / SQL Data Warehouse (SQLDW) se SQLDW datetimes mapují na Spark TimestampType ( preferTimestampNTZ = false výchozí). SQLDW datetimes jsou mapovány na TimestampNTZType if preferTimestampNTZ = true.