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 katalogu Unity usługi Azure Databricks:

  • Połączenie z bazą danych Oracle.
  • katalog obcy, 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 ładem danych, aby zarządzać dostępem użytkowników do bazy danych Azure Databricks.

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 dołączonym do obszaru roboczego.
  • Aby utworzyć katalog zewnętrzny, musisz mieć uprawnienie CREATE CATALOG w magazynie metadanych i być właścicielem połączenia lub mieć uprawnienie CREATE FOREIGN CATALOG dla połączenia.

Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji opartej na zadaniach.

Wymagania oracle

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 oraz polecenia w 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 stronie rozwiń menu Zewnętrzne dane i wybierz pozycję Połączenia.
  3. Kliknij pozycję Utwórz połączenie.
  4. Na stronie Podstawy połączenia kreatora Konfigurowanie połączenia wprowadź przyjazną dla użytkownika nazwę połączenia .
  5. Wybierz typ połączenia z Oracle .
  6. (Opcjonalnie) Dodaj komentarz.
  7. Kliknij przycisk Dalej.
  8. Na stronie Authentication wprowadź następujące informacje dla instancji 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
  9. Kliknij pozycję Utwórz połączenie.
  10. Na stronie Podstawy katalogu wprowadź nazwę katalogu 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.
  11. (Opcjonalnie) Kliknij pozycję Testuj połączenie, aby potwierdzić, że działa.
  12. Kliknij pozycję Utwórz katalog.
  13. Na stronie Access wybierz obszary robocze, w których użytkownicy mogą uzyskiwać dostęp do utworzonego katalogu. Możesz wybrać pozycję Wszystkie obszary robocze mają dostęplub kliknij Przypisz do obszarów roboczych, wybierz obszary robocze, a następnie kliknij Przypisz.
  14. Zmień właściciela , który będzie mógł zarządzać dostępem do wszystkich obiektów w katalogu. Zacznij wpisywać nazwę w polu tekstowym, a następnie kliknij nazwę w zwróconych wynikach.
  15. Nadaj uprawnienia w katalogu. Kliknij Przyznaj:
    1. Określ głównych, którzy będą mieli dostęp do obiektów w wykazie. Zacznij wpisywać nazwę w polu tekstowym, a następnie kliknij nazwę w zwróconych wynikach.
    2. Wybierz ustawienia wstępne uprawnień , które chcesz przyznać każdemu podmiotowi. Wszyscy użytkownicy konta domyślnie otrzymują BROWSE.
      • Wybierz z menu rozwijanego pozycję Czytnik danych, aby przyznać read uprawnienia do obiektów w katalogu.
      • Wybierz pozycję Edytor danych z menu rozwijanego, aby przyznać read i modify uprawnienia do obiektów w wykazie.
      • Ręcznie wybierz uprawnienia do udzielenia.
    3. Kliknij , aby przyznać.
  16. Kliknij przycisk Dalej.
  17. Na stronie Metadane określ pary klucz-wartość tagów. Aby uzyskać więcej informacji, zobacz Nakładanie tagów na obiekty zabezpieczalne w katalogu Unity.
  18. (Opcjonalnie) Dodaj komentarz.
  19. Kliknij Zapisz.

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 Azure Databricks zamiast ciągów tekstowych dla poufnych informacji, 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

Notatka

Jeśli używasz interfejsu użytkownika do utworzenia połączenia ze źródłem danych, uwzględnia to tworzenie katalogu zewnętrznego i możesz pominąć ten krok.

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. 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ć Eksploratora 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 obcych w 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ępczych.

  • <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 odwzorować 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
SYGNATURA CZASOWA Z TIMEZONE, ZNACZNIK CZASU Z TIMEZONE LOKALNYM 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.