Uruchamianie zapytań federacyjnych w programie Oracle
Ważny
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W tym artykule opisano sposób konfigurowania federacji lakehouse w celu uruchamiania zapytań federacyjnych na danych Oracle, które nie są zarządzane przez usługę Azure Databricks. Aby dowiedzieć się więcej o federacji Lakehouse, zobacz Co to jest Federacja Lakehouse?.
Aby nawiązać połączenie z bazą danych Oracle przy użyciu usługi Lakehouse Federation, należy utworzyć następujące elementy w magazynie metadanych Unity Catalog usługi Azure Databricks:
- Połączenie z bazą danych Oracle.
- Katalog Obcego, który dubluje bazę danych Oracle w Unity Catalog, dzięki czemu można użyć składni zapytań Unity Catalog i narzędzi do zarządzania danymi w celu zarządzania dostępem użytkowników usługi Azure Databricks do bazy danych.
Przed rozpoczęciem
Przed rozpoczęciem upewnij się, że spełniasz wymagania w tej sekcji.
Wymagania dotyczące usługi Databricks
Wymagania dotyczące obszaru roboczego:
- Obszar roboczy włączony dla Unity Catalog.
Wymagania dotyczące obliczeń:
- Łączność sieciowa od zasobu obliczeniowego do docelowych systemów baz danych. Zobacz Zalecenia sieciowe dla Lakehouse Federation.
- Środowisko obliczeniowe usługi Azure Databricks musi używać środowiska Databricks Runtime 16.1 lub nowszego i Udziałowe lub Tryb pojedynczego użytkownika.
- Magazyny SQL muszą być w wersji pro lub bezserwerowej i muszą używać wersji 2024.50 lub nowszej.
Wymagane uprawnienia:
- Aby utworzyć połączenie, musisz być administratorem magazynu metadanych lub użytkownikiem z uprawnieniami
CREATE CONNECTION
w magazynie metadanych Unity Catalog połączonym z obszarem roboczym. - Aby utworzyć katalog obcy, musisz mieć uprawnienie
CREATE CATALOG
do magazynu metadanych i być właścicielem połączenia lub mieć uprawnienieCREATE FOREIGN CATALOG
do połączenia.
Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji opartej na zadaniach.
Wymagania oracle
- Włączone szyfrowanie po stronie serwera.
Tworzenie połączenia usługi Azure Databricks
Połączenie określa ścieżkę i poświadczenia dostępu do zewnętrznego systemu bazy danych. Aby utworzyć połączenie, możesz użyć Eksploratora wykazu lub polecenia CREATE CONNECTION
SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.
Notatka
Do utworzenia połączenia można również użyć interfejsu API REST usługi Databricks lub interfejsu wiersza polecenia usługi Databricks. Zobacz POST /api/2.1/unity-catalog/connections i polecenia Unity Catalog.
Wymagane uprawnienia: administrator magazynu metadanych lub użytkownik z uprawnieniami CREATE CONNECTION
.
Eksplorator wykazu
- W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Catalog.
- W okienku po lewej rozwiń menu Dane zewnętrzne i wybierz pozycję Połączenia.
- Kliknij pozycję Utwórz połączenie.
- Wprowadź przyjazną dla użytkownika nazwę połączenia .
- Wybierz typ połączenia Oracle.
- Wprowadź następujące właściwości połączenia dla wystąpienia Oracle:
-
Host: na przykład
oracle-demo.123456.rds.amazonaws.com
-
port: na przykład
1521
-
użytkownik: na przykład
oracle_user
-
hasło: na przykład
password123
-
Host: na przykład
- (Opcjonalnie) Dodaj komentarz.
- Kliknij pozycję Utwórz.
SQL
Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi Databricks:
CREATE CONNECTION <connection-name> TYPE oracle
OPTIONS (
host '<hostname>',
port '<port>',
user '<user>',
password '<password>'
);
Databricks zaleca używanie tajemnic usługi Azure Databricks zamiast tekstów w postaci jawnej dla poufnych wartości, takich jak poświadczenia. Na przykład:
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>')
)
Jeśli musisz używać ciągów w postaci zwykłego tekstu w poleceniach SQL notesu, unikaj obcinania ciągu przez ucieczkę znaków specjalnych, takich jak $
z \
. Na przykład: \$
.
Aby uzyskać informacje o konfigurowaniu tajnych danych, zobacz Zarządzanie tajnymi danymi.
Tworzenie wykazu obcego
Wykaz obcy odzwierciedla bazę danych w zewnętrznym systemie danych, dzięki czemu można wykonywać zapytania o dostęp do danych w tej bazie danych i zarządzać nimi przy użyciu usług Azure Databricks i Unity Catalog. Aby utworzyć wykaz obcy, należy użyć połączenia ze źródłem danych, które zostało już zdefiniowane.
Aby utworzyć wykaz obcy, możesz użyć Eksploratora wykazu lub polecenia CREATE FOREIGN CATALOG
SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL.
Notatka
Do utworzenia katalogu można również użyć interfejsu API REST usługi Databricks lub interfejsu wiersza polecenia usługi Databricks. Zobacz POST /api/2.1/unity-catalog/catalogs i polecenia Unity Catalog.
Wymagane uprawnienia:CREATE CATALOG
uprawnienie do magazynu metadanych i własność połączenia lub uprawnienia CREATE FOREIGN CATALOG
w połączeniu.
Eksplorator wykazu
W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Katalog, aby otworzyć Eksplorator katalogu.
W górnej części okienka katalogu
kliknij ikonę Dodaj lub plus Ikona Dodaj i wybierzDodaj wykaz z menu.Alternatywnie na stronie Szybki dostęp kliknij przycisk Wykazy, a następnie kliknij przycisk Utwórz katalog.
Postępuj zgodnie z instrukcjami dotyczącymi tworzenia katalogów zagranicznych w części „Tworzenie katalogów”.
SQL
Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy w nawiasach są opcjonalne. Zastąp wartości zastępcze:
-
<catalog-name>
: nazwa wykazu w usłudze Azure Databricks. -
<connection-name>
: obiekt połączenia określający źródło danych, ścieżkę i poświadczenia dostępu. -
<service-name>
: nazwa usługi, którą chcesz odzwierciedlić jako wykaz w usłudze Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (service_name '<service-name>');
Obsługiwane wypychania
Obsługiwane są następujące wypychania:
- Filtry
- Prognozy
- Limit
- Agregatów
- Przesunięcie
- Obsada
- Zawiera, Zaczyna się od, Kończy się na
Mapowania typów danych
Podczas odczytywania z bazy danych Oracle do platformy Spark typy danych są mapowane w następujący sposób:
Typ Oracle | Typ Spark |
---|---|
ZNACZNIK CZASU Z STREFĄ CZASOWĄ, ZNACZNIK CZASU Z LOKALNĄ STREFĄ CZASOWĄ | Typ znacznika czasu |
DATA, SYGNATURA CZASOWA | TimestampType/TimestampNTZType* |
LICZBA, ZMIENNOPRZECINKOWY | Typ liczby dziesiętnej |
ZMIENNOPRZECINKOWY BINARNY | FloatType |
BINARNE PODWÓJNE | DoubleType |
CHAR, NCHAR, VARCHAR2, NVARCHAR2 | StringType |
- Atrybut DATE i TIMESTAMP są mapowane na wartość Spark TimestampType, jeśli
spark.sql.timestampType = TIMESTAMP_LTZ
(ustawienie domyślne). Mapuje się je na TimestampNTZType, jeślispark.sql.timestampType = TIMESTAMP_NTZ
.