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 Lakehouse Federation pro spouštění federovaných dotazů na data Oracle, 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 Oracle pomocí federace Lakehouse, musíte v metastoru katalogu Azure Databricks Unity vytvořit následující:
- Připojení k databázi Oracle.
- cs-CZ: cizí katalog, který zrcadlí vaši databázi Oracle v katalogu Unity, abyste mohli používat syntaxi dotazů a nástroje správy zásad katalogu Unity k řízení přístupu uživatelů Azure Databricks k databázi.
Limitations
Lakehouse Federation podporuje pouze připojení TLS (Transport Layer Security) ke službě Oracle Cloud. Připojení k jiným databázím Oracle používají nativní šifrování sítě (NNE).
Existuje známý problém při připojování k instancím 11.2.0.3.0 a novějším, které nemají hodnotu časového pásma
Etc/UTC(Chyba:ORA-01882: timezone region not found).- Alternativní řešení: Použijte
spark.databricks.connector.oracle.timezoneAsRegionkonfiguraci, která se přímo mapuje naoracle.jdbc.timezoneAsRegionparametr ovladače JDBC. - Upozornění: Dočasné řešení může způsobit nesprávné chování letního času (DST). Pokud potřebujete pomoc, obraťte se na podporu Oracle.
- Alternativní řešení: Použijte
License
Ovladač Oracle a další nezbytné soubory JAR Oracle se řídí licencí FDHUT bez nutnosti odsouhlasení kliknutím.
Než začnete
Než začnete, ověřte, že splňujete požadavky v této části.
Požadavky na Databricks
Požadavky na pracovní prostor:
- Pracovní prostor je aktivovaný 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 vyšší a standardní nebo vyhrazený režim přístupu.
- 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 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.
Požadavky Oracle
Pro připojení, která používají nativní šifrování sítě, musíte povolit NNE na straně serveru (ACCEPTED úroveň minimálně). Podívejte se na Konfiguraci šifrování síťových dat v dokumentaci Oracle. To neplatí pro připojení Oracle Cloud, která místo toho používají protokol TLS.
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 Catalogu.
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 levém podokně rozbalte nabídku Externí data a vyberte Připojení.
- Klikněte na Vytvořit připojení.
- Na stránce Základní informace o připojení průvodce pro nastavení připojení zadejte uživatelsky přívětivý název připojení.
- Vyberte typ připojeníOracle.
- (Volitelné) Přidejte komentář.
- Klikněte na tlačítko Další.
- Na stránce Ověřování zadejte pro instanci Oracle následující:
-
Hostitel: například
oracle-demo.123456.rds.amazonaws.com -
Port: Například
1521 -
Uživatel: Například
oracle_user -
heslo: Například
password123 -
Šifrovací protokol:
Native Network Encryption(výchozí) neboTransport Layer Security
-
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 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 moct spravovat přístup ke všem objektům v katalogu. Začněte psát objekt zabezpečení do textového pole a poté klikněte na objekt zabezpečení ve vrácených výsledcích.
- Udělte oprávnění na katalogu. Klikněte na Udělit:
- Zadejte hlavní uživatele , kteří budou mít přístup k objektům v katalogu. Začněte psát objekt zabezpečení do textového pole a poté klikněte na objekt zabezpečení ve vrácených výsledcích.
- 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.- Z rozevírací nabídky vyberte Čtečku dat, abyste udělili
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.
- Z rozevírací nabídky vyberte Čtečku dat, abyste udělili
- Klikněte na Povolit.
- Klikněte na tlačítko Další.
- Na stránce Metadata zadejte páry klíče a hodnoty pro značky. Další informace najdete v části Přidání značek k zabezpečitelným objektům 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 oracle
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>',
encryption_protocol '<protocol>' -- optional
);
Databricks doporučuje 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 oracle
OPTIONS (
host '<hostname>',
port '<port>',
user secret ('<secret-scope>','<secret-key-user>'),
password secret ('<secret-scope>','<secret-key-password>'),
encryption_protocol '<protocol>' -- 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 zrušením speciálních znaků, jako $, použitím \. 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 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í v rámci metastore a buď vlastnické právo připojení nebo oprávnění CREATE FOREIGN CATALOG pro připojení.
Průzkumník katalogu
V pracovním prostoru Azure Databricks klikněte na
Otevřete katalog v Průzkumníku katalogu.
V horní části podokna Katalog klikněte na
ikonu Přidat a v nabídce vyberte Přidat katalog.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. -
<service-name>: Název služby, který chcete zobrazit jako katalog v Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (service_name '<service-name>');
Podporovaná snižování
Podporovány jsou následující funkce:
- Filters
- Projections
- Limit
- Aggregates
- Offset
- Cast
- Obsahuje, Začíná na, Končí na
Mapování datových typů
Při čtení z Oracle do Sparku se datové typy mapuje takto:
| Typ Oracle | Typ Spark |
|---|---|
| ČASOVÉ RAZÍTKO S TIMEZONE, ČASOVÉ RAZÍTKO S MÍSTNÍM TIMEZONE | TimestampType |
| DATUM, ČASOVÉ RAZÍTKO | TimestampType/TimestampNTZType* |
| ČÍSLO, FLOAT | DecimalType** |
| BINÁRNÍ FLOAT | FloatType |
| BINÁRNÍ DOUBLE | DoubleType |
| CHAR, NCHAR, VARCHAR2, NVARCHAR2 | StringType |
* DATUM a ČASOVÉ RAZÍTKO jsou mapovány na Spark TimestampType if spark.sql.timestampType = TIMESTAMP_LTZ (výchozí). Pokud spark.sql.timestampType = TIMESTAMP_NTZ, jsou mapovány na TimestampNTZType.
** ČÍSLO bez zadání přesnosti bude namapováno na DecimalType(38, 10), protože ve Spark není podpora pro čistý plovoucí desetinný bod.