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 Připojení k externím databázím a katalogům.
Pokud se chcete připojit k databázi Oracle pomocí Federace Lakehouse, musíte vytvořit následující v metastoru Unity Catalog Azure Databricks (pracovní prostředí, která byla vytvořena po 9. listopadu 2023, již mají automaticky zřízený metastor Unity Catalog).
- 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í: Nastavte
spark.databricks.connector.oracle.timezoneAsRegionnafalse. To přímo odpovídá vlastnosti ovladače JDBCoracle.jdbc.timezoneAsRegion. V klasických výpočetních prostředích můžete tuto konfiguraci nastavit v konfiguraci Spark clusteru. V případě skladů Databricks SQL a bezserverových výpočetních prostředků kontaktujte podporu Azure Databricks, aby toto nastavení použila.
- Alternativní řešení: Nastavte
Výstraha
Náhradní řešení může způsobit nesprávnou funkci letního času (DST). Pro trvalou opravu aktualizujte soubory časového pásma databáze Oracle. Viz podpora Oracle – ORA-01882.
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. 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 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. V pracovních prostorech, které byly automaticky povoleny pro Katalog Unity, mají správci pracovišťCREATE CONNECTIONve výchozím nastavení oprávnění. - 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í. V pracovních prostorech, které byly automaticky povoleny pro Katalog Unity, mají správci pracovišťCREATE CATALOGve 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.
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.
- Klikněte na
Připojte se a potom klikněte na připojení.
- Klikněte na tlačítko 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í
Následující tabulka uvádí operace snižování úrovně zpracování podporované pro Oracle spolu s potřebným výpočetním výkonem pro každý případ.
| Zásobník | Podporované výpočetní prostředky |
|---|---|
| Aggregates |
|
| Aritmetické operátory (například +, -, *, %, /) – není podporováno, pokud je anSI zakázaný. |
|
| Logické operátory (například =, <=>, <, <=, >, >=) |
|
| Obsahuje, Začíná na, Končí na |
|
| Filters |
|
| Limit |
|
| Matematické funkce (ABS, FLOOR – částečná podpora, pouze výrazy filtru) |
|
| Různé funkce (například Alias, Cast, SortOrder – částečná podpora, pouze výrazy filtru) |
|
| Offset |
|
| Projections |
|
| Řazení při použití s limitem |
|
| Řetězcové funkce (UPPER, LOWER, CHAR_LENGTH, TRIM, RTRIM, LTRIM, CONCAT, RPAD, LPAD – částečná podpora, pouze pro výrazy filtru) |
|
| Slučování |
|
| Funkce okna |
|
Mapování datových typů
Při čtení z Oracle do Sparku se datové typy mapuje takto:
| Typ Oracle | Typ Spark |
|---|---|
TIMESTAMP WITH TIMEZONE, TIMESTAMP WITH LOCAL TIMEZONE |
TimestampType |
DATE, TIMESTAMP |
TimestampType/TimestampNTZType* |
NUMBER, FLOAT |
DecimalType** |
BINARY FLOAT |
FloatType |
BINARY DOUBLE |
DoubleType |
CHAR, NCHAR, , VARCHAR2NVARCHAR2 |
StringType |
*
DATE a TIMESTAMP mapují se na Spark TimestampType , pokud spark.sql.timestampType = TIMESTAMP_LTZ (výchozí). Jsou namapovány na TimestampNTZType if spark.sql.timestampType = TIMESTAMP_NTZ.
**
NUMBER bez určení přesnosti bude namapováno na DecimalType(38, 10), protože Spark nepodporuje ryze desetinný typ s plovoucí řádovou čárkou.