Udostępnij za pośrednictwem


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. Opisuje również, jak set federację Lakehouse connections oraz tworzy zewnętrzne catalogs w magazynie metadanych Unity Catalog.

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 Catalog Unity do zarządzania federacją zapytań. Konfigurujesz connections jako tylko do odczytu dla popularnych rozwiązań baz danych, używając sterowników, które są uwzględnione w hurtowniach Pro SQL, bezserwerowych hurtowniach SQL i klastrach Databricks Runtime. Narzędzia Unity Catalogdo zarządzania danymi i ich rodowodem zapewniają zarządzanie dostępem do danych i audyt dla wszystkich zapytań federacyjnych wykonywanych przez użytkowników w obszarach roboczych platformy 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 czerpać korzyści z zalet interfejsów Unity Catalog i zarządzania danymi, w tym szczegółowej kontroli dostępu, pochodzenia danych i funkcji 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 środowisku Unity Catalog, który określa ścieżkę i credentials na potrzeby uzyskiwania dostępu do zewnętrznego systemu bazy danych.
  • obcy catalog, zabezpieczalny obiekt w środowisku Unity Catalog, który odwzorowuje bazę danych w zewnętrznym systemie danych, umożliwiając wykonywanie zapytań odczytu na tym systemie danych w obszarze roboczym usługi Azure Databricks, zarządzając dostępem za pomocą systemu Unity Catalog.

Obsługiwane źródła danych

Federacja Lakehouse obsługuje connections do następujących typów baz danych:

Wymagania dotyczące połączenia

Wymagania dotyczące obszaru roboczego:

  • Przestrzeń robocza włączona dla środowiska Unity Catalog.

Wymagania dotyczące obliczeń:

  • Łączność sieciowa pomiędzy zasobem obliczeniowym a docelowymi systemami baz danych. Zobacz Zalecenia dotyczące sieci dla usługi Lakehouse Federation.
  • Środowisko obliczeniowe usługi Azure Databricks musi używać środowiska Databricks Runtime 13.3 LTS lub nowszego oraz trybu dostępu wspólnego lub pojedynczego użytkownika .
  • Magazyny SQL muszą być w wersji pro lub bezserwerowej i muszą używać wersji 2023.40 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, który jest dołączony do obszaru roboczego.
  • Aby utworzyć zagraniczną catalog, musisz mieć uprawnienie CREATE CATALOG w magazynie metadanych i być właścicielem połączenia lub mieć uprawnienie CREATE FOREIGN CATALOG w połączeniu.

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 credentials na potrzeby uzyskiwania dostępu do zewnętrznego systemu bazy danych. Aby utworzyć połączenie, możesz użyć eksploratora Catalog lub polecenia CREATE CONNECTION SQL w notesie usługi Azure Databricks lub edytorze zapytań SQL usługi Databricks.

Uwaga

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 Catalog

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę CatalogCatalog.

  2. W górnej części okienka Catalog kliknij ikonę Dodaj lub plusIkona Dodaj i selectDodaj połączenie z menu.

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

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

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

  5. (Opcjonalnie) Dodaj komentarz.

  6. Kliknij przycisk Dalej.

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

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

  8. Kliknij pozycję Utwórz połączenie.

  9. Wprowadź nazwę obcego catalog.

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

  11. Kliknij pozycję Utwórz catalog.

  12. Select obszarów roboczych, w których użytkownicy mogą uzyskiwać dostęp do utworzonego catalog. Możesz selectWszystkie obszary robocze mają dostęplub kliknij Przypisz do obszarów roboczych, select obszarów roboczych, 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 catalog. Zacznij wpisywać jednostkę w polu tekstowym, a następnie kliknij jednostkę w zwróconych wynikach.

  14. Grant uprawnienia w catalog. Kliknij pozycję Grant:

    1. Określ Principals, którzy będą mieli dostęp do obiektów w catalog. Zacznij wpisywać jednostkę w polu tekstowym, a następnie kliknij jednostkę w zwróconych wynikach.
    2. Select ustawienia wstępne uprawnień wprowadzajągrant do każdego podmiotu. Wszyscy użytkownicy konta domyślnie otrzymują BROWSE.
      • Select Data Reader z menu rozwijanego do grantread uprawnień do obiektów w catalog.
      • Select Edytor danych z menu rozwijanego do zarządzania grantread oraz modify uprawnieniami do obiektów w catalog.
      • Ręcznie przyznaj uprawnienia do selectdla grant.
    3. Kliknij pozycję Grant.
    4. Kliknij przycisk Dalej.
    5. Na stronie Metadane określ pary klucz-wartość tagów. Aby uzyskać więcej informacji, zobacz Zastosuj tagi do obiektów Unity, które można zabezpieczyć Catalog.
    6. (Opcjonalnie) Dodaj komentarz.
    7. Kliknij Zapisz.

SQL

Uruchom następujące polecenie w notesie lub edytorze zapytań SQL. Przykład connections odnosi się do bazy danych PostgreSQL. Opcje różnią się od typu połączenia. Zapoznaj się z artykułem dotyczącym typu połączenia wymienionego w rozdziale table spisu treści po lewej stronie.

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

Zalecamy używanie sekretów usługi Azure Databricks zamiast ciągów w postaci zwykłego tekstu dla poufnych danych values takich jak credentials. 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 connections, zobacz Manage connections for Lakehouse Federation.

Utwórz zagraniczny catalog

Uwaga

Jeśli używasz interfejsu użytkownika do utworzenia połączenia ze źródłem danych, utworzenie obcych elementów catalog zostanie uwzględnione i możesz pominąć ten krok.

Zagraniczny catalog dubluje bazę danych w zewnętrznym systemie danych, dzięki czemu można wykonywać zapytania dotyczące dostępu do danych w tej bazie danych i zarządzać nimi przy użyciu usług Azure Databricks i Unity Catalog. Aby utworzyć obce catalog, należy użyć połączenia ze źródłem danych, które zostało już zdefiniowane.

Aby utworzyć obce catalog, możesz użyć Eksploratora Catalog lub polecenia CREATE FOREIGN CATALOG SQL w notatniku usługi Azure Databricks lub edytorze zapytań SQL. Możesz również użyć interfejsu API Unity Catalog. Zobacz dokumentację referencyjną usługi Azure Databricks.

Metadane zewnętrzne catalog są synchronizowane z Unity Catalog podczas każdej interakcji z catalog. Aby uzyskać mapowanie typów danych między Catalog Unity a źródłem danych, zapoznaj się z sekcją Mapowanie 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 Catalog

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę CatalogCatalog, aby otworzyć eksploratora Catalog.

  2. W górnej części okienka Catalog kliknij ikonę Dodaj lub plusoraz ikonę Dodaj, a następnie selectDodaj catalog z menu.

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

  3. Postępuj zgodnie z instrukcjami dotyczącymi tworzenia zagranicznych catalogs w Create catalogs.

SQL

Uruchom następujące polecenie SQL w notesie lub edytorze zapytań SQL. Elementy w nawiasach kwadratowych są opcjonalne. Zastąp symbol zastępczy values:

  • <catalog-name>: nazwa catalog w usłudze Azure Databricks.
  • <connection-name>: obiekt połączenia określający źródło danych, ścieżkę i dostęp credentials.
  • <database-name>: nazwa bazy danych, którą chcesz dublować jako catalog w usłudze Azure Databricks. Nie jest to wymagane w przypadku bazy danych MySQL, która używa dwuwarstwowej przestrzeni nazw.
  • pl-PL: <external-catalog-name>: databricks-to-Databricks only: Nazwa catalog w zewnętrznym obszarze roboczym usługi Databricks, który jest przez ciebie odzwierciedlany. Zobacz Tworzenie obcego catalog.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Aby uzyskać informacje na temat zarządzania zagranicznymi i pracy z nimi, zobacz Manage and work with foreign (Zarządzanie i praca z zagranicznymi ).

Federacja Lakehouse i zmaterializowane views

Databricks zaleca ładowanie danych zewnętrznych przy użyciu Federacji Lakehouse podczas tworzenia zmaterializowanego views. Zobacz Użyj materializowanego views w 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 na wykresie w widoku profilu zapytania lub uruchom instrukcję SQL EXPLAIN FORMATTED. Zobacz sekcję Obsługiwane wypychanie w dokumentacji każdego źródła danych, aby uzyskać pokrycie.

Ograniczenia

  • Zapytania są tylko do odczytu.
  • Ograniczanie connections jest określane przy użyciu współbieżnego zapytania SQL w Databricks limit. Nie ma limit w magazynach dla każdego połączenia. Zobacz Kolejkowanie i skalowanie automatyczne dla magazynów pro i klasycznych magazynów SQL.
  • Tables i schematy o nazwach, które są nieprawidłowe w Catalog Unity, nie są obsługiwane i są ignorowane przez Unity Catalog podczas tworzenia obcego catalog. Zobacz list reguł nazewnictwa i ograniczeń w Ograniczenia.
  • nazwy Table i nazwy schema są zamieniane na małe litery w aparacie Unity Catalog. Odnośniki muszą również używać małych liter. Jeśli istnieją tables lub schematy z powtarzającymi się nazwami zapisanymi małymi literami, tylko jeden z tych tables lub schematów jest importowany do obcego catalog.
  • Dla każdego table obcego, do którego odwołuje się, usługa Azure Databricks planuje podzapytywanie w systemie zdalnym w celu zwrócenia podzestawu danych z tego table, a następnie zwraca wynik do jednego zadania wykonawczego usługi Azure Databricks w jednym strumieniu. Jeśli wynik set jest zbyt duży, wykonawca może napotkać brak pamięci.
  • Tryb dostępu pojedynczego użytkownika jest dostępny tylko dla użytkowników, którzy są właścicielami połączenia.
  • Federacja Lakehouse nie może połączyć zewnętrznych tables z identyfikatorami uwzględniającymi wielkość liter dla Azure Synapse connections lub Redshift connections.

Przydziały zasobów

Azure Databricks wymusza limity przydziału zasobów na wszystkie obiekty możliwe do zabezpieczenia w Unity Catalog. Te limity przydziału są wymienione w temacie Limity zasobów. Obce catalogs i wszystkie zawarte w nich obiekty są uwzględniane w całkowitym użyciu limitu przydziału.

Jeśli spodziewasz się przekroczyć te limity zasobów, skontaktuj się z zespołem konta usługi Azure Databricks.

Możesz monitorować użycie limitu przydziału za pomocą interfejsów API limitów zasobów Unity Catalog. Zobacz monitorowanie użycia limitów przydziału zasobów Unity Catalog.

Dodatkowe zasoby