Udostępnij za pośrednictwem


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ć uprawnienie CREATE 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

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Catalog.
  2. W okienku po lewej rozwiń menu Dane zewnętrzne i wybierz pozycję Połączenia.
  3. Kliknij pozycję Utwórz połączenie.
  4. Wprowadź przyjazną dla użytkownika nazwę połączenia .
  5. Wybierz typ połączenia Oracle.
  6. 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
  7. (Opcjonalnie) Dodaj komentarz.
  8. 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

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Katalog, aby otworzyć Eksplorator katalogu.

  2. W górnej części okienka katalogu kliknij ikonę Dodaj lub plusIkona Dodaj i wybierz Dodaj wykaz z menu.

    Alternatywnie na stronie Szybki dostęp kliknij przycisk Wykazy, a następnie kliknij przycisk Utwórz katalog.

  3. 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śli spark.sql.timestampType = TIMESTAMP_NTZ.