Udostępnij za pośrednictwem


Uruchamianie zapytań federacyjnych w usłudze Teradata

Na tej stronie opisano sposób konfigurowania federacji usługi Lakehouse w celu uruchamiania zapytań federacyjnych na danych Teradata, które nie są zarządzane przez Azure Databricks. Aby dowiedzieć się więcej o federacji Lakehouse, zobacz Co to jest Federacja Lakehouse?

Aby nawiązać połączenie z bazą danych Teradata przy użyciu usługi Lakehouse Federation, należy utworzyć następujące elementy w magazynie metadanych katalogu Unity platformy Azure Databricks (obszary robocze utworzone po 9 listopada 2023 r. mają już automatycznie skonfigurowany magazyn metadanych katalogu Unity):

  • Połączenie z bazą danych Teradata.
  • Zewnętrzny katalog, który odzwierciedla bazę danych Teradata w Unity Catalog, dzięki czemu można używać składni zapytań Unity Catalog oraz narzędzi do zarządzania ładem danych, aby zarządzać dostępem użytkowników 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 z dostępem do Unity Catalog. Obszary robocze utworzone po 9 listopada 2023 r. są automatycznie włączane dla Unity Catalog, w tym automatyczne aprowizowanie metastore. Nie musisz tworzyć metastore'u ręcznie, chyba że obszar roboczy został stworzony przed automatycznym włączeniem i nie został włączony dla Unity Catalog. Zobacz Automatyczne uruchamianie Unity Catalog.

Wymagania dotyczące obliczeń:

  • Połączenie sieciowe z Twojego zasobu obliczeniowego do docelowych systemów baz danych. Zobacz zalecenia dotyczące sieci dla Lakehouse Federation.
  • Azure Databricks obliczenia muszą używać środowiska Databricks Runtime 16.1 lub nowszego oraz trybu dostępu Standard lub Dedicated.
  • 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. W obszarach roboczych, które zostały automatycznie włączone do katalogu Unity, administratorzy obszaru roboczego mają domyślnie uprawnienie CREATE CONNECTION.
  • Aby utworzyć katalog zagraniczny, musisz mieć uprawnienie CREATE CATALOG w metastore i być właścicielem połączenia lub mieć uprawnienia CREATE FOREIGN CATALOG dla połączenia. W obszarach roboczych, które zostały automatycznie włączone do katalogu Unity, administratorzy obszaru roboczego mają domyślnie uprawnienie CREATE CATALOG.

Dodatkowe wymagania dotyczące uprawnień są określone w każdej sekcji dotyczącej poszczególnych zadań.

Uwierzytelnianie Teradata

Połączenia Teradata w federacji Azure Databricks Lakehouse obsługują tylko mechanizm uwierzytelniania TD2 (domyślne uwierzytelnianie Teradata). TD2 uwierzytelnia użytkowników przy użyciu nazwy użytkownika i hasła zarządzanego przez bazę danych Teradata.

Inne mechanizmy uwierzytelniania teradata, takie jak LDAP, Kerberos i TDNEGO, nie są obsługiwane.

Teradata TLS

  • Można wybrać między trybami require, , preferverify-ca, verify-full, disable dla protokołu SSL. Tryb prefer opiera się na serwerze w celu włączenia szyfrowania (można skonfigurować numer portu). Jeśli używasz protokołu TLS, każda opcja będzie wystarczająca (port będzie mieć wartość 443) (verify-ca i verify-full wzmacnia zabezpieczenia połączenia, ale wymaga więcej konfiguracji po stronie serwera). Usługa Databricks zaleca akceptowanie protokołu SSL. Jeśli serwer nie akceptuje protokołu SSL, użyj trybu disable; próba użycia require na SSL, gdy jest nieobsługiwany, powoduje dodatkowy narzut na wydajność. Aby uzyskać więcej informacji, zobacz How to Secure Connections using TLS (Jak zabezpieczyć połączenia przy użyciu protokołu TLS ) w dokumentacji usługi Teradata.

Tworzenie połączenia Azure Databricks

Połączenie określa ścieżkę dostępu i dane uwierzytelniające do zewnętrznego systemu bazodanowego. Aby utworzyć połączenie, możesz użyć Eksploratora wykazu lub polecenia CREATE CONNECTION SQL w notesie Azure Databricks lub edytorze zapytań SQL usługi Databricks.

Note

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 Unity Catalog.

Wymagane uprawnienia: administrator magazynu metadanych lub użytkownik z uprawnieniami CREATE CONNECTION.

Eksplorator wykazu

  1. W obszarze roboczym Azure Databricks kliknij pozycję Ikona danych.Catalog.
  2. W górnej części okienka Wykaz kliknij ikonę Dodaj lub plusIkona Dodaj i wybierz pozycję Utwórz połączenie z menu.
  3. Na stronie Podstawy połączenia w kreatorze Konfigurowanie połączenia, wprowadź nazwę połączenia przyjazną dla użytkownika .
  4. Wybierz typ połączeniaTeradata.
  5. (Opcjonalnie) Dodaj komentarz.
  6. Kliknij przycisk Dalej.
  7. Na stronie Uwierzytelnianie wprowadź następujące właściwości połączenia dla wystąpienia Teradata:
    • host: na przykład teradata-demo.teradata.com
    • port: na przykład 1025
    • użytkownik: na przykład teradata_user
    • hasło: na przykład password123
    • Tryb ssl: require, prefer, verify-ca, verify-full, disable
  8. Kliknij pozycję Utwórz połączenie.
  9. Na stronie Podstawy katalogu wprowadź nazwę katalogu obcego. Wykaz obcy odzwierciedla bazę danych w zewnętrznym systemie danych, dzięki czemu można przeprowadzać zapytania i zarządzać dostępem do danych w tej bazie danych przy użyciu Azure Databricks i Unity Catalog.
  10. (Opcjonalnie) Kliknij pozycję Testuj połączenie, aby potwierdzić, że działa.
  11. Kliknij pozycję Utwórz katalog.
  12. Na stronie Access wybierz obszary robocze, w których użytkownicy mogą uzyskiwać dostęp do utworzonego katalogu. Możesz wybrać opcję Wszystkie obszary robocze mają dostęplub kliknij Przypisać do obszarów roboczych, wybierz obszary robocze, a następnie kliknij Przypisz.
  13. Zmień właściciela , który będzie mógł zarządzać dostępem do wszystkich obiektów w katalogu. Zacznij wpisywać nazwę podmiotu w polu tekstowym, a następnie kliknij podmiot w zwróconych wynikach.
  14. Nadaj przywileje w katalogu. Kliknij Udziel:
    1. Określ podmioty, które będą miały dostęp do obiektów w katalogu. Zacznij wpisywać nazwę podmiotu w polu tekstowym, a następnie kliknij podmiot w zwróconych wynikach.
    2. Wybierz ustawienia wstępne przywilejów, aby przyznać każdemu podmiotowi. Wszyscy użytkownicy konta domyślnie otrzymują BROWSE.
      • Wybierz Czytnik danych z menu rozwijanego, aby nadać 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 Grant.
  15. Kliknij przycisk Dalej.
  16. Na stronie Metadane określ pary klucz-wartość tagów. Aby uzyskać więcej informacji, zobacz Zastosuj tagi do obiektów zabezpieczalnych w Unity Catalog.
  17. (Opcjonalnie) Dodaj komentarz.
  18. Kliknij przycisk Zapisz.

SQL

Uruchom następujące polecenie w notesie lub edytorze zapytań SQL usługi Databricks:

CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>',
  ssl_mode '<ssl_mode>' -- optional
);

Usługa Databricks zaleca użycie Azure Databricks secrets zamiast ciągów w postaci zwykłego tekstu dla wartości poufnych, takich jak poświadczenia. Przykład:

CREATE CONNECTION <connection-name> TYPE teradata
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>'),
  ssl_mode '<ssl_mode>' -- optional
)

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 na temat konfigurowania sekretów, zobacz Zarządzanie sekretami.

Tworzenie wykazu obcego

Note

Jeśli używasz interfejsu użytkownika do utworzenia połączenia ze źródłem danych, uwzględnione jest 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 przeprowadzać zapytania i zarządzać dostępem do danych w tej bazie danych przy użyciu 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ć katalog obcy, możesz użyć Eksploratora katalogu lub polecenia SQL w notesie 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 Katalogu Unity.

Wymagane uprawnienia:CREATE CATALOG uprawnienie do magazynu metadanych i własność połączenia lub uprawnienie CREATE FOREIGN CATALOG do połączenia.

Eksplorator wykazu

  1. W obszarze roboczym Azure Databricks kliknij pozycję Ikona Danych.Katalog aby otworzyć Eksplorator Katalogu.

  2. W górnej części okienka Katalogu, kliknij ikonę Dodaj lub plusDodaj i wybierz Dodaj katalog z menu.

    Alternatywnie na stronie Szybki dostęp kliknij na przycisk Wykazy, a następnie kliknij na 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ępcze:

  • <catalog-name>: nazwa katalogu w Azure Databricks.
  • <connection-name>: obiekt połączenia określający źródło danych, ścieżkę i poświadczenia dostępu.
  • <database-name>: nazwa bazy danych, którą chcesz replikować jako katalog w Azure Databricks.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Zgodność ze standardem ANSI

Łącznik Teradata domyślnie używa TMODE=ANSI dla wszystkich sesji rozpoczynających się w środowisku Databricks Runtime 17.1. To ustawienie dopasowuje zachowanie porównania ciągów i operacji liczbowych do dialektu ANSI SQL, który Azure Databricks używa domyślnie. W trybie ANSI porównania ciągów znaków są rozróżniane pod względem wielkości liter, podczas gdy w starszym trybie Teradata TERA są one ignorowane pod tym względem (na przykład 'ABC' = 'abc' zwraca wartość true). Starsze zachowanie może spowodować nieoczekiwane wyniki podczas zapytań do Teradata z obliczeń Azure Databricks z włączoną obsługą ANSI.

Ważna

Jeśli przełączysz się do środowiska Databricks Runtime 17.1 lub nowszego, usługi Databricks SQL lub bezserwerowego przetwarzania, domyślny tryb sesji zmieni się z TERA na ANSI. Może to mieć wpływ na wyniki zapytania, zwłaszcza w przypadku widoków Teradata, które opierają się na dopasowywaniu ciągu bez uwzględniania wielkości liter. Na przykład widok z filtrem, taki jak WHERE status = 'Active' , może zwracać różne wyniki, jeśli bazowe dane zawierają 'ACTIVE' lub 'active' ponieważ ANSI tryb traktuje te jako różne wartości.

Obsługiwane funkcje wypychania

W poniższej tabeli wymieniono operacje pushdown obsługiwane przez Teradata, wraz z obliczeniami wymaganymi dla każdej z nich.

Wypychanie Obsługiwane zasoby obliczeniowe
Aggregates Obsługiwane Wszystkie obliczenia
Cast Obsługiwane Wszystkie obliczenia
Zawiera, Rozpoczyna się od, Kończy się na, Jak Obsługiwane Wszystkie obliczenia
Filters Obsługiwane Wszystkie obliczenia
Limit Obsługiwane Wszystkie obliczenia
Projections Obsługiwane Wszystkie obliczenia
Dołącza Obsługiwane Środowisko Databricks Runtime w wersji 17.2 lub nowszej oraz usługi SQL Warehouse 2025.30 i nowsze

Mapowania typów danych

Gdy czytasz dane z Teradata do Spark, typy danych są mapowane w następujący sposób:

Typ teradata Typ Spark
Bajt, Blob BinaryType
Byteint, Smallint, Integer IntegerType
BigInt LongType
Zmiennoprzecinkowy, podwójny, podwójna precyzja DoubleType
Liczba(n, m) DecimalType
Liczba(*, m), Liczba(*), Liczba Unsupported
Varchar(N) StringType
Czas, sygnatura czasowa TimestampType

Dodatkowe zasoby