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ń. Konfigurujesz połączenia tylko do odczytu do popularnych rozwiązań bazodanowych za pomocą sterowników zawartych w magazynach Pro SQL, bezserwerowych magazynach SQL oraz 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:
- MySQL
- PostgreSQL
- Oracle
- Amazon Redshift
- Salesforce Data Cloud
- Snowflake
- Microsoft SQL Server
- Azure Synapse (SQL Data Warehouse)
- Google BigQuery
- Databricks
- Federacja Hive Metastore
Wymagania dotyczące połączenia
Wymagania dotyczące obszaru roboczego:
- Obszar roboczy włączony dla wykazu aparatu Unity.
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
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.
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 POLECENIA POST /api/2.1/unity-catalog/connections i Unity Catalog.
Wymagane uprawnienia: administrator magazynu metadanych lub użytkownik z uprawnieniami CREATE CONNECTION
.
Eksplorator wykazu
W obszarze roboczym usługi Azure Databricks kliknij pozycję Wykaz.
W górnej części okienka Wykaz kliknij Add or plus icon ikonę Dodaj i wybierz pozycję Dodaj połączenie z menu.
Alternatywnie na stronie Szybki dostęp kliknij >zewnętrzne, przejdź do karty Połączenia, a następnie kliknij pozycję Utwórz połączenie.
Wprowadź przyjazną dla użytkownika nazwę połączenia.
Wybierz typ połączenia (dostawca bazy danych, taki jak MySQL lub PostgreSQL).
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.
(Opcjonalnie) Kliknij pozycję Testuj połączenie , aby potwierdzić, że działa.
(Opcjonalnie) Dodaj komentarz.
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żesz użyć Eksploratora wykazu lub polecenia CREATE FOREIGN CATALOG
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
W obszarze roboczym usługi Azure Databricks kliknij pozycję Wykaz , aby otworzyć Eksploratora wykazu.
W górnej części okienka Wykaz kliknij Add or plus icon 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 .
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 pojedynczego 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.
Przydziały zasobów
Usługa Azure Databricks wymusza limity przydziału zasobów dla wszystkich zabezpieczanych obiektów wykazu aparatu Unity. Te limity przydziału są wymienione w temacie Limity zasobów. Wykazy obce 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.
Użycie limitu przydziału można monitorować przy użyciu interfejsów API przydziałów zasobów wykazu aparatu Unity. Zobacz Monitorowanie użycia przydziałów zasobów wykazu aparatu Unity.
Dodatkowe zasoby
- Zapytania federacyjne (Federacja Lakehouse) w dokumentacji języka SQL