Spouštění federovaných dotazů na Teradata

Tato stránka popisuje, jak nastavit federaci Lakehouse tak, aby bylo možné spouštět federované dotazy na data Teradata, která nespravuje Azure Databricks. Další informace o federaci Lakehouse najdete v tématu Připojení k externím databázím a katalogům.

Pokud se chcete připojit k databázi Teradata pomocí Lakehouse Federation, musíte vytvořit následující v metastoru katalogu Unity Azure Databricks (pracovní prostory vytvořené po 9. listopadu 2023 již mají automaticky zřízený metastore katalogu Unity):

  • připojení k databázi Teradata.
  • Cizí katalog, který zrcadlí vaši databázi Teradata v systému Unity Catalog tak, abyste mohli použít dotazovací syntaxi a nástroje správy dat Unity ke správě přístupu uživatelů systému Azure Databricks k databázi.

Než začnete

Než začnete, ujistěte se, že splňujete požadavky v této části.

Požadavky na Databricks

Požadavky na pracovní prostor:

  • Pracovní prostor je povolený pro katalog Unity. Pracovní prostory vytvořené po 9. listopadu 2023 jsou pro Unity Catalog automaticky povolené, včetně automatického provisioningu metastoru. Metastore nemusíte vytvářet ručně, pokud váš pracovní prostor pochází z doby před automatickým povolením a nebyl povolen pro Unity Catalog. Viz Začínáme s katalogem 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 síťová doporučení pro Lakehouse Federation.
  • Výpočetní prostředky Azure Databricks musí používat Databricks Runtime 16.1 nebo novější a Standard nebo Dedicated přístupový režim.
  • Sql Warehouse musí být pro nebo bezserverové a musí používat verzi 2024.50 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 katalogu Unity připojenému k pracovnímu prostoru. V pracovních prostorech, které byly automaticky povoleny pro Katalog Unity, mají správci pracovišť CREATE CONNECTION ve výchozím nastavení oprávnění.
  • Chcete-li vytvořit cizí katalog, 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 pro připojení. V pracovních prostorech, které byly automaticky povoleny pro Katalog Unity, mají správci pracovišť CREATE CATALOG ve výchozím nastavení oprávnění.

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

Ověřování Teradata

Připojení Teradata v Azure Databricks Lakehouse Federation podporují pouze mechanismus ověřování TD2 (výchozí ověřování Teradata). TD2 ověřuje uživatele pomocí uživatelského jména a hesla spravovaného databází Teradata.

Jiné mechanismy ověřování Teradata, jako je LDAP, Kerberos a TDNEGO, se nepodporují.

Teradata TLS

  • Můžete si vybrat mezi režimy SSL require, prefer, verify-ca, verify-full a disable. Režim prefer spoléhá na server k povolení šifrování (číslo portu je možné nakonfigurovat). Pokud používáte protokol TLS, bude stačit jakákoli možnost (port bude 443) (verify-ca a verify-full zpevní zabezpečení připojení, ale vyžaduje další nastavení na straně serveru). Databricks doporučuje přijmout SSL. Pokud váš server nepodporuje protokol SSL, použijte režim disable. Používání require pro pokus o SSL, pokud není podporován, představuje zátěž pro výkon. Další informace najdete v tématu Postup zabezpečení připojení pomocí protokolu TLS v dokumentaci k Teradata.

Vytvoření připojení Azure Databricks

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 příkazy Unity Catalog.

Požadovaná oprávnění : správce metastoru nebo uživatel, který má oprávnění CREATE CONNECTION.

Průzkumník katalogu

  1. V pracovním prostoru Azure Databricks klikněte na Data icon.Catalog.
  2. V horní části podokna Katalog klikněte na ikonu Přidat nebo plusPřidat a v nabídce vyberte Vytvořit připojení .
  3. Na stránce Základy připojení průvodce Nastavení připojení zadejte uživatelsky přívětivý název připojení.
  4. Vyberte typ připojení Teradata.
  5. (Volitelné) Přidejte komentář.
  6. Klikněte na tlačítko Další.
  7. Na stránce Ověřování zadejte následující vlastnosti připojení pro instanci Teradata:
    • Hostitel: Například teradata-demo.teradata.com
    • port: Například 1025
    • Uživatelský: Například teradata_user
    • heslo: Například password123
    • Režim ssl: require, prefer, verify-ca, verify-full, disable
  8. Klikněte na Vytvořit připojení.
  9. 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 katalogu Unity.
  10. (Volitelné) Kliknutím na Otestovat připojení potvrďte, že funguje.
  11. Klikněte na Vytvořit katalog.
  12. 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.
  13. Změňte vlastníka, který bude moct spravovat přístup ke všem objektům v katalogu. 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. Udělte oprávnění v katalogu. Klikněte na Udělit:
    1. Zadejte subjekty, kteří budou mít přístup k objektům v katalogu. 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. Vyberte přednastavení oprávnění , které se mají každému objektu zabezpečení udělit. 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 read oprávnění k objektům v katalogu.
      • V rozevírací nabídce vyberte Editor dat a udělte oprávnění read a modify k objektům v katalogu.
      • Ručně vyberte oprávnění, která chcete udělit.
    3. Klikněte na Povolit.
  15. Klikněte na tlačítko Další.
  16. Na stránce Metadata zadejte páry klíčů a hodnot značek. Další informace najdete v tématu Použití značek pro objekty zabezpečitelné v katalogu Unity.
  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 teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>',
  ssl_mode '<ssl_mode>' -- optional
);

Databricks doporučuje používat Azure Databricks secrets místo řetězců prostého textu pro citlivé hodnoty, jako jsou přihlašovací údaje. Například:

CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>'),
  ssl_mode '<ssl_mode>' -- optional
)

Pokud je nutné použít řetězce prostého textu v příkazech SQL poznámkového bloku, vyhněte se zkrácení řetězce tak, že vyčiste speciální znaky, jako je $ s \. Příklad: \$.

Informace o nastavení tajných kódů naleznete 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 katalogu Unity. 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 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 katalogu Unity.

Požadovaná oprávnění :CREATE CATALOG oprávnění k metastoru a buď vlastnictví připojení, nebo oprávnění CREATE FOREIGN CATALOG pro připojení.

Průzkumník katalogu

  1. V pracovním prostoru Azure Databricks kliknutím na Data icon.Catalog otevřete Průzkumníka katalogu.

  2. V horní části podokna katalogu klikněte na ikonu Přidat nebo plusIkona Přidat a v nabídce vyberte Př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.

  3. 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>');

Kompatibilita se specifikací ANSI

Konektor Teradata používá ve výchozím nastavení TMODE=ANSI pro všechny relace od Databricks Runtime 17.1. Toto nastavení zarovná porovnávání řetězců a chování číselných operací s dialektem ANSI SQL, který Azure Databricks ve výchozím nastavení používá. V režimu ANSI se porovnávání řetězců rozlišují malá a velká písmena, zatímco v režimu TERA, který Teradata používala dříve, se malá a velká písmena nerozlišují (například 'ABC' = 'abc' vyhodnocuje jako true). Staré chování může způsobit neočekávané výsledky, při dotazování Teradata z Azure Databricks s podporou ANSI ve výpočetním prostředí.

Důležité

Pokud přepnete na Databricks Runtime 17.1 nebo novější, Databricks SQL nebo bezserverové výpočetní prostředky, změní se výchozí režim relace z TERA na ANSI. To může mít vliv na výsledky dotazů, zejména u zobrazení Teradata, která spoléhají na porovnávání řetězců bez rozlišování malých a velkých písmen. Například zobrazení s filtrem, jako WHERE status = 'Active' je, může vrátit různé výsledky, pokud podkladová data obsahují 'ACTIVE' nebo 'active' protože ANSI režim je považuje za různé hodnoty.

Podporovaná snižování

Následující tabulka uvádí pushdown operace podporované pro Teradata spolu s požadovanou výpočetní kapacitou pro každou z nich.

Zásobník Podporované výpočetní prostředky
Aggregates Podporovány Všechny výpočetní prostředky
Aritmetické operátory
(například +, -, *, %, /) – není podporováno, pokud je režim ANSI zakázaný.
Podporovány Všechny výpočetní prostředky
bitové operátory
(&, |, ^)
Podporovány Všechny výpočetní prostředky
Logické operátory
(například =, <=>, <, <=, >, >=)
Podporovány Všechny výpočetní prostředky
Obsahuje, Začíná s, Končí s, Jako Podporovány Všechny výpočetní prostředky
Filters Podporovány Všechny výpočetní prostředky
Limit Podporovány Všechny výpočetní prostředky
Matematické funkce
(FLOOR, CEIL, ROUND, ABS, MOD, POWER, SQRT, LN, EXP, LEAST, GREATEST, COS, COSH, ACOS, SIN, SINH, ASIN, TAN, TANH, ATAN — částečná podpora, pouze pro výrazy filtru; ABS a MOD vyžadují režim ANSI)
Podporovány Všechny výpočetní prostředky
Různé funkce
(Přetypování – částečná podpora, pouze pro výrazy filtru)
Podporovány Všechny výpočetní prostředky
Projections Podporovány Všechny výpočetní prostředky
Řazení při použití s limitem Podporovány Všechny výpočetní prostředky
Řetězcové funkce
(UPPER, LOWER, CONCAT, SUBSTRING – částečná podpora, pouze výrazy filtru)
Podporovány Všechny výpočetní prostředky
Řetězcové funkce
(TRIM, LTRIM, RTRIM – částečná podpora, pouze výrazy filtru)
Podporováno Výpočetní prostředí Databricks Runtime 17.3 a novější a SQL Warehouse
Řetězcové funkce
(RPAD – částečná podpora, pouze výrazy filtru)
Podporovány Výpočetní prostředí Databricks Runtime 18.1 a novější a SQL Warehouse
Slučování Podporováno: Databricks Runtime 17.2 a vyšší verze a výpočetní prostředky SQL Warehouse. Tento posun je ve verzi Public Preview; na stránce Náhledy povolte přepínač Připojit se k nabízeným oznámením pro federované dotazy.
Funkce okna Nepodporováno Nepodporováno

Mapování datových typů

Při čtení z Teradata do Sparku se datové typy mapuje takto:

Typ Teradata Typ Spark
Byte, Blob BinaryType
Byteint, Smallint, Integer IntegerType
BigInt LongType
Float, Double, Double Precision DoubleType
Number(n, m) DecimalType
Number(*, m), Number(*), Number Unsupported
Varchar(N) StringType
Time, Timestamp TimestampType

Dodatečné zdroje