Spouštění federovaných dotazů na Teradata
Důležitý
Tato funkce je ve verzi Public Preview.
Tento článek popisuje, jak nastavit federaci Lakehouse pro spouštění federovaných dotazů na data Teradata, 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 Teradata pomocí federace Lakehouse, musíte v metastore katalogu Azure Databricks Unity vytvořit následující:
- připojení k databázi Teradata.
- cizí katalog, který zrcadlí vaši databázi Teradata v Unity Catalog, abyste mohli používat syntaxi dotazů Unity Catalog a nástroje pro správu dat k řízení přístupu uživatelů 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.
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 sdílený nebo režim přístupu jednoho uživatele.
- 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. - 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í.
Další požadavky na oprávnění jsou uvedeny v následující části založené na úlohách.
Požadavky na Teradata
- Na hostitelském serveru je povolený protokol TLS. Ve výchozím nastavení je
SSLMODE
REQUIRE
. 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.
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, který má oprávnění CREATE CONNECTION
.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na ikonu katalogu 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í průvodce Nastavení připojení zadejte uživatelsky přívětivý název připojení.
Vyberte typ připojení Teradata.
(Volitelné) Přidejte komentář.
Klikněte na Další.
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
-
Hostitel: Například
Klikněte na Vytvořit připojení.
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 Otestovat 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 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í.
Udělte oprávnění v katalogu. Klikněte na Udělit:
- 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í.
- 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
amodify
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 Udělit.
Klikněte na Další.
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.
(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 teradata
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Databricks doporučuje používat Azure Databricks tajemství místo textových ř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>')
)
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
Poznámka
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 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
V pracovním prostoru Azure Databricks kliknutím na ikonu katalogu Katalog otevřete 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é optimalizace
Jsou podporovány následující mechanismy:
- Filtruje
- Projekce
- Limit
- Agregáty
- Obsazení
- Obsahuje, Začíná s, Končí s, Jako
Mapování datových typů
Při čtení z Teradata do Sparku se datové typy mapuje takto:
Typ Teradata | Typ Spark |
---|---|
Bajt, Blob | TypBinarni |
Byteint, Smallint, Celé číslo | IntegerType |
BigInt | LongType |
Desetinné číslo, Dvojité, Dvojitá přesnost | DoubleType |
Number(n; m) | DecimalType |
Number(; m); Number(); Číslo | Nepodporovaný |
Varchar(N) | Typ řetězce |
Čas, časové razítko | TimestampType |