Co to jest Federacja Lakehouse?

W tym artykule przedstawiono usługę Lakehouse Federation , platformę federacyjną zapytań, która umożliwia korzystanie z usługi Azure Databricks do uruchamiania zapytań względem wielu zewnętrznych źródeł danych. W tym artykule opisano również sposób konfigurowania połączeń federacyjnych usługi Lakehouse i tworzenia katalogów obcych w magazynie metadanych wykazu aparatu Unity.

Co to jest Federacja Lakehouse?

Federacja lakehouse to platforma federacyjna zapytań dla usługi Azure Databricks. Termin Federacja zapytań opisuje kolekcję funkcji, które umożliwiają użytkownikom i systemom uruchamianie zapytań względem wielu źródeł danych bez konieczności migrowania wszystkich danych do ujednoliconego systemu.

Usługa Azure Databricks używa wykazu aparatu Unity do zarządzania federacją zapytań. Połączenia tylko do odczytu można konfigurować z popularnymi rozwiązaniami bazy danych przy użyciu sterowników uwzględnionych w usługach Pro SQL Warehouse, bezserwerowych magazynach SQL Warehouse i klastrach databricks Runtime. Narzędzia do zapewniania ładu danych i pochodzenia danych w wykazie aparatu Unity zapewniają, że dostęp do danych jest zarządzany i poddany inspekcji dla wszystkich zapytań federacyjnych wykonanych przez użytkowników w obszarach roboczych usługi Azure Databricks.

Dlaczego warto używać federacji Lakehouse?

Usługa Lakehouse podkreśla centralny magazyn danych w celu zmniejszenia nadmiarowości i izolacji danych. Twoja organizacja może mieć wiele systemów danych w środowisku produkcyjnym i może być konieczne wykonywanie zapytań dotyczących danych w połączonych systemach z wielu powodów:

  • Raportowanie ad hoc.
  • Praca z weryfikacją koncepcji.
  • Faza eksploracyjna nowych potoków lub raportów ETL.
  • Obsługa obciążeń podczas migracji przyrostowej.

W każdym z tych scenariuszy federacja zapytań umożliwia szybsze uzyskiwanie szczegółowych informacji, ponieważ można wykonywać zapytania dotyczące danych i unikać złożonego i czasochłonnego przetwarzania ETL.

Federacja lakehouse jest przeznaczona do przypadków użycia, gdy:

  • Nie chcesz pozyskiwać danych do usługi Azure Databricks.
  • Chcesz, aby zapytania korzystały z obliczeń w zewnętrznym systemie bazy danych.
  • Chcesz korzystać z zalet interfejsów wykazu aparatu Unity i ładu danych, w tym szczegółowej kontroli dostępu, pochodzenia danych i wyszukiwania.

Omówienie konfiguracji federacyjnej usługi Lakehouse

Aby udostępnić zestaw danych do wykonywania zapytań tylko do odczytu przy użyciu federacji usługi Lakehouse, należy utworzyć następujące elementy:

  • Połączenie, zabezpieczany obiekt w wykazie aparatu Unity, który określa ścieżkę i poświadczenia na potrzeby uzyskiwania dostępu do zewnętrznego systemu bazy danych.
  • Wykaz obcy, zabezpieczany obiekt w wykazie aparatu Unity, który dubluje bazę danych w zewnętrznym systemie danych, umożliwiając wykonywanie zapytań tylko do odczytu w tym systemie danych w obszarze roboczym usługi Azure Databricks, zarządzanie dostępem przy użyciu wykazu aparatu Unity.

Obsługiwane źródła danych

Federacja lakehouse obsługuje połączenia z następującymi typami baz danych:

Wymagania dotyczące połączenia

Wymagania dotyczące obszaru roboczego:

  • Obszar roboczy włączony dla wykazu aparatu Unity.

Wymagania dotyczące obliczeń:

  • Łączność sieciowa z klastra środowiska Databricks Runtime lub usługi SQL Warehouse z docelowymi systemami baz danych. Zobacz Zalecenia dotyczące sieci dla usługi Lakehouse Federation.
  • Klastry usługi Azure Databricks muszą używać środowiska Databricks Runtime 13.3 LTS lub nowszego oraz trybu dostępu współużytkowanego lub pojedynczego użytkownika.
  • Magazyny SQL muszą mieć wartość Pro lub Bezserwerową i muszą używać wersji 2023.40 lub nowszej.

Wymagane uprawnienia:

  • Aby utworzyć połączenie, musisz być administratorem magazynu metadanych lub użytkownikiem z CREATE CONNECTION uprawnieniami w magazynie metadanych wykazu aparatu Unity dołączonym do obszaru roboczego.
  • Aby utworzyć wykaz obcy, musisz mieć CREATE CATALOG uprawnienia do magazynu metadanych i być właścicielem połączenia lub mieć CREATE FOREIGN CATALOG uprawnienia do połączenia.

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

Tworzenie połączenia

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 CREATE CONNECTION polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.

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

Eksplorator wykazu

  1. W obszarze roboczym usługi Azure Databricks kliknij pozycję Ikona wykazu Wykaz.

  2. W górnej części okienka Wykaz kliknij Dodaj lub ikonę znaku plus ikonę Dodaj i wybierz pozycję Dodaj połączenie z menu.

    Alternatywnie na stronie Szybki dostęp kliknij przycisk Dane >zewnętrzne, przejdź do karty Połączenia, a następnie kliknij pozycję Utwórz połączenie.

  3. Wprowadź przyjazną dla użytkownika nazwę połączenia.

  4. Wybierz typ połączenia (dostawca bazy danych, taki jak MySQL lub PostgreSQL).

  5. Wprowadź właściwości połączenia (takie jak informacje o hoście, ścieżka i poświadczenia dostępu).

    Każdy typ połączenia wymaga różnych informacji o połączeniu. Zapoznaj się z artykułem dotyczącym typu połączenia wymienionego w spisie treści po lewej stronie.

  6. (Opcjonalnie) Kliknij pozycję Testuj połączenie , aby potwierdzić, że działa.

  7. (Opcjonalnie) Dodaj komentarz.

  8. Kliknij pozycję Utwórz.

SQL

Uruchom następujące polecenie w notesie lub edytorze zapytań SQL. Ten przykład dotyczy połączeń z bazą danych PostgreSQL. Opcje różnią się od typu połączenia. Zapoznaj się z artykułem dotyczącym typu połączenia wymienionego w spisie treści po lewej stronie.

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

Zalecamy używanie wpisów tajnych usługi Azure Databricks zamiast ciągów w postaci zwykłego tekstu dla poufnych wartości, takich jak poświadczenia. Na przykład:

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

Aby uzyskać informacje na temat konfigurowania wpisów tajnych, zobacz Zarządzanie wpisami tajnymi.

Aby uzyskać informacje na temat zarządzania istniejącymi połączeniami, zobacz Zarządzanie połączeniami dla federacji usługi Lakehouse.

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żna użyć Eksploratora wykazu lub CREATE FOREIGN CATALOG polecenia SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL.

Uwaga

Możesz również użyć interfejsu API wykazu aparatu Unity. Zobacz dokumentację referencyjną usługi Azure Databricks.

Metadane wykazu obcego są synchronizowane z katalogiem aparatu Unity w każdej interakcji z wykazem. Aby zapoznać się z mapowaniem typu danych między wykazem aparatu Unity i źródłem danych, zapoznaj się z sekcją Mapowania typów danych w dokumentacji każdego źródła danych.

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

Eksplorator wykazu

  1. W obszarze roboczym usługi Azure Databricks kliknij pozycję Ikona wykazu Wykaz , aby otworzyć Eksploratora wykazu.

  2. W górnej części okienka Wykaz kliknij Dodaj lub ikonę znaku plus ikonę Dodaj i wybierz pozycję Dodaj wykaz z menu.

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

  3. Postępuj zgodnie z instrukcjami dotyczącymi tworzenia katalogów obcych w temacie Tworzenie katalogów.

SQL

Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy w nawiasach kwadratowych są opcjonalne. Zastąp wartości symboli 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.
  • <database-name>: nazwa bazy danych, którą chcesz dublować jako wykaz w usłudze Azure Databricks. Nie jest to wymagane w przypadku bazy danych MySQL, która używa dwuwarstwowej przestrzeni nazw.
  • <external-catalog-name>: Tylko usługa Databricks-to-Databricks : nazwa wykazu w zewnętrznym obszarze roboczym usługi Databricks, który jest dublowane. Zobacz Tworzenie wykazu obcego.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Aby uzyskać informacje na temat zarządzania katalogami obcymi i pracy z nimi, zobacz Zarządzanie katalogami obcymi i praca z nimi.

Federacja Lakehouse i zmaterializowane widoki

Usługa Databricks zaleca ładowanie danych zewnętrznych przy użyciu federacji lakehouse podczas tworzenia zmaterializowanych widoków. Zobacz Używanie zmaterializowanych widoków w usłudze Databricks SQL.

W przypadku korzystania z usługi Lakehouse Federation użytkownicy mogą odwoływać się do danych federacyjnych w następujący sposób:

CREATE MATERIALIZED VIEW xyz AS SELECT * FROM federated_catalog.federated_schema.federated_table;

Wyświetlanie zapytań federacyjnych generowanych przez system

Usługa Lakehouse Federation tłumaczy instrukcje SQL usługi Databricks na instrukcje, które można wypchnąć do federacyjnego źródła danych. Aby wyświetlić wygenerowaną instrukcję SQL, kliknij węzeł skanowania obcego źródła danych w widoku wykresu profilu zapytania lub uruchom instrukcję EXPLAIN FORMATTED SQL. Zobacz sekcję Obsługiwane wypychanie w dokumentacji każdego źródła danych, aby uzyskać pokrycie.

Ograniczenia

  • Zapytania są tylko do odczytu.
  • Ograniczanie połączeń jest określane przy użyciu limitu współbieżnych zapytań SQL usługi Databricks. Nie ma limitu między magazynami na połączenie. Zobacz Kolejkowanie i skalowanie automatyczne dla magazynów pro i klasycznych magazynów SQL.
  • Tabele i schematy o nazwach, które są nieprawidłowe w wykazie aparatu Unity, nie są obsługiwane i są ignorowane przez wykaz aparatu Unity podczas tworzenia wykazu obcego. Zobacz listę reguł nazewnictwa i ograniczeń w temacie Ograniczenia.
  • Nazwy tabel i nazwy schematów są konwertowane na małe litery w wykazie aparatu Unity. Odnośniki muszą również używać małych liter. Jeśli istnieją tabele lub schematy z zduplikowanymi małymi literami, tylko jedna z tabel lub schematów jest importowana do wykazu obcego.
  • Dla każdej tabeli obcej, do której odwołuje się odwołanie, usługa Azure Databricks planuje podzapytywanie w systemie zdalnym w celu zwrócenia podzbioru danych z tej tabeli, a następnie zwraca wynik do jednego zadania wykonawczego usługi Azure Databricks w jednym strumieniu. Jeśli zestaw wyników jest zbyt duży, funkcja wykonawcza może zabraknąć pamięci.
  • Tryb dostępu jednego użytkownika jest dostępny tylko dla użytkowników, którzy są właścicielami połączenia.
  • Federacja lakehouse nie może sfederować tabel obcych z identyfikatorami z uwzględnieniem wielkości liter dla połączeń usługi Azure Synapse lub połączeń Redshift.

Dodatkowe zasoby