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ć uprawnienieCREATE FOREIGN CATALOG
dla połączenia.
Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji opartej na zadaniach.
Wymagania oracle
- Natywne szyfrowanie sieci po stronie serwera włączone (na poziomie co najmniej
ACCEPTED
). Zobacz Konfigurowanie szyfrowania danych sieciowych w dokumentacji 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
- W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu Catalog.
- W okienku po lewej stronie rozwiń menu Zewnętrzne dane i wybierz pozycję Połączenia.
- Kliknij pozycję Utwórz połączenie.
- Na stronie Podstawy połączenia kreatora Konfigurowanie połączenia wprowadź przyjazną dla użytkownika nazwę połączenia .
- Wybierz typ połączenia z Oracle .
- (Opcjonalnie) Dodaj komentarz.
- Kliknij przycisk Dalej.
- 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
-
Host: na przykład
- Kliknij pozycję Utwórz połączenie.
- 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.
- (Opcjonalnie) Kliknij pozycję Testuj połączenie, aby potwierdzić, że działa.
- Kliknij pozycję Utwórz katalog.
- 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.
- 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.
- Nadaj uprawnienia w katalogu. Kliknij Przyznaj:
- 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.
- 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
imodify
uprawnienia do obiektów w wykazie. - Ręcznie wybierz uprawnienia do udzielenia.
- Wybierz z menu rozwijanego pozycję Czytnik danych, aby przyznać
- Kliknij , aby przyznać.
- Kliknij przycisk Dalej.
- 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.
- (Opcjonalnie) Dodaj komentarz.
- 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
W obszarze roboczym usługi Azure Databricks kliknij ikonę katalogu katalog, aby otworzyć Eksploratora 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 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ślispark.sql.timestampType = TIMESTAMP_NTZ
.