Dołączanie danych z usługi Azure Data Lake Storage Gen2
W tym artykule opisano sposób dołączania danych do nowego obszaru roboczego usługi Azure Databricks z usługi Azure Data Lake Storage Gen2. Dowiesz się, jak bezpiecznie uzyskać dostęp do danych źródłowych w lokalizacji magazynu obiektów w chmurze, która odpowiada woluminowi wykazu aparatu Unity (zalecane) lub lokalizacji zewnętrznej wykazu aparatu Unity. Następnie dowiesz się, jak pozyskiwać dane przyrostowo do tabeli zarządzanej w wykazie aparatu Unity przy użyciu automatycznego modułu ładującego z tabelami delta Live Tables.
Uwaga
Aby dołączyć dane w usłudze Databricks SQL zamiast w notesie, zobacz Ładowanie danych przy użyciu tabel przesyłania strumieniowego w usłudze Databricks SQL.
Zanim rozpoczniesz
Jeśli nie jesteś administratorem, w tym artykule założono, że administrator udostępnił Ci następujące elementy:
Dostęp do obszaru roboczego usługi Azure Databricks z włączonym katalogiem aparatu Unity. Aby uzyskać więcej informacji, zobacz Konfigurowanie wykazu aparatu Unity i zarządzanie nim.
Uprawnienie
READ VOLUME
na zewnętrznym woluminie katalogu Unity lub uprawnienieREAD FILES
na zewnętrznej lokalizacji katalogu Unity, która odpowiada lokalizacji magazynu w chmurze zawierającej dane źródłowe. Aby uzyskać więcej informacji, zobacz Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.Ścieżka do danych źródłowych.
Przykład ścieżki woluminu:
/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>
Przykład ścieżki lokalizacji zewnętrznej:
abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
Uprawnienia
USE SCHEMA
iCREATE TABLE
w schemacie, do którego chcesz załadować dane.Uprawnienie do tworzenia klastra lub dostęp do zasad klastra, które definiują klaster potoku Delta Live Tables (
cluster_type
pole ustawione nadlt
wartość ).Jeśli ścieżka do danych źródłowych jest ścieżką woluminu, klaster musi uruchomić środowisko Databricks Runtime 13.3 LTS lub nowsze.
Ważne
Jeśli masz pytania dotyczące tych wymagań wstępnych, skontaktuj się z administratorem konta.
Krok 1. Tworzenie klastra
Aby utworzyć klaster, wykonaj następujące czynności:
- Zaloguj się do obszaru roboczego usługi Azure Databricks.
- Na pasku bocznym kliknij pozycję Nowy>klaster.
- W interfejsie użytkownika klastrów określ unikatową nazwę klastra.
- Jeśli ścieżka do danych źródłowych jest ścieżką woluminu, w polu Wersja środowiska uruchomieniowego usługi Databricks Runtime wybierz wersję 13.2 lub nowszą.
- Kliknij pozycję Utwórz klaster.
Krok 2. Tworzenie notesu eksploracji danych
W tej sekcji opisano sposób tworzenia notesu eksploracji danych, aby móc zrozumieć dane przed utworzeniem potoku danych.
Na pasku bocznym kliknij pozycję +Nowy>notes.
Notes jest automatycznie dołączany do ostatniego użytego klastra (w tym przypadku klastra utworzonego w kroku 1: Tworzenie klastra).
Wprowadź nazwę notesu.
Kliknij przycisk języka, a następnie wybierz
Python
lubSQL
z menu rozwijanego.Python
jest domyślnie zaznaczona.Aby potwierdzić dostęp do danych źródłowych w usłudze ADLS Gen2, wklej następujący kod do komórki notesu, kliknij przycisk , a następnie kliknij przycisk Uruchom komórkę.
SQL
LIST '<path-to-source-data>'
Python
%fs ls '<path-to-source-data>'
Zastąp
<path-to-source-data>
ciąg ścieżką do katalogu zawierającego dane.Spowoduje to wyświetlenie zawartości katalogu zawierającego zestaw danych.
Aby wyświetlić próbkę rekordów, aby lepiej zrozumieć zawartość i format każdego rekordu, wklej poniższe polecenie w komórce notesu, kliknij pozycję , a następnie kliknij przycisk Uruchom komórkę.
SQL
SELECT * from read_files('<path-to-source-data>', format => '<file-format>') LIMIT 10
Python
spark.read.format('<file-format>').load('<path-to-source-data>').limit(10).display()
Zastąp następujące wartości zmiennych:
-
<file-format>
: obsługiwany format pliku. Zobacz Opcje formatu pliku. -
<path to source data>
: ścieżka do pliku w katalogu zawierającym dane.
Spowoduje to wyświetlenie pierwszych dziesięciu rekordów z określonego pliku.
-
Krok 3. Pozyskiwanie danych pierwotnych
Aby pozyskać dane pierwotne, wykonaj następujące czynności:
Na pasku bocznym kliknij pozycję Nowy>notes.
Notes jest automatycznie dołączany do ostatniego użytego klastra (w tym przypadku klastra utworzonego wcześniej w tym artykule).
Wprowadź nazwę notesu.
Kliknij przycisk języka, a następnie wybierz
Python
lubSQL
z menu rozwijanego.Python
jest domyślnie zaznaczona.Wklej następujący kod do komórki notesu:
SQL
CREATE OR REFRESH STREAMING TABLE <table-name> AS SELECT * FROM STREAM read_files( '<path-to-source-data>', format => '<file-format>' )
Python
@dlt.table(table_properties={'quality': 'bronze'}) def <table-name>(): return ( spark.readStream.format('cloudFiles') .option('cloudFiles.format', '<file-format>') .load(f'{<path-to-source-data>}') )
Zastąp następujące wartości zmiennych:
-
<table-name>
: nazwa tabeli, która będzie zawierać pozyskane rekordy. -
<path-to-source-data>
: ścieżka do danych źródłowych. -
<file-format>
: obsługiwany format pliku. Zobacz Opcje formatu pliku.
-
Uwaga
Funkcja Delta Live Tables nie jest przeznaczona do interaktywnego uruchamiania w komórkach notesu. Uruchomienie komórki zawierającej składnię delta Live Tables w notesie zwraca komunikat o tym, czy zapytanie jest prawidłowe składniowo, ale nie uruchamia logiki zapytań. W poniższym kroku opisano sposób tworzenia potoku na podstawie właśnie utworzonego notesu pozyskiwania.
Krok 4. Tworzenie i publikowanie potoku
Aby utworzyć potok i opublikować go w wykazie aparatu Unity, wykonaj następujące czynności:
- Na pasku bocznym kliknij pozycję Przepływy pracy, kliknij kartę Delta Live Tables , a następnie kliknij pozycję Utwórz potok.
- Wprowadź nazwę potoku.
- W obszarze Tryb potoku wybierz pozycję Wyzwolone.
- W polu Kod źródłowy wybierz notes zawierający kod źródłowy potoku.
- W polu Miejsce docelowe wybierz pozycję Katalog aparatu Unity.
- Aby upewnić się, że tabela jest zarządzana przez wykaz aparatu Unity, a każdy użytkownik mający dostęp do schematu nadrzędnego może wykonywać względem niej zapytania, wybierz katalog i schemat docelowy z list rozwijanych.
- Jeśli nie masz uprawnień do tworzenia klastra, wybierz zasadę klastra, która obsługuje tabele delta live tables z listy rozwijanej.
- W obszarze Zaawansowane ustaw opcję Kanał na wersja zapoznawcza.
- Zaakceptuj wszystkie inne wartości domyślne i kliknij przycisk Utwórz.
Krok 5. Planowanie potoku
Aby zaplanować potok, wykonaj następujące czynności:
- Na pasku bocznym kliknij pozycję Tabele na żywo delty.
- Kliknij nazwę potoku, który chcesz zaplanować.
- Kliknij pozycję Harmonogram>Dodaj harmonogram.
- W polu Nazwa zadania wprowadź nazwę zadania.
- Ustaw wartość Harmonogram na Zaplanowane.
- Określ okres, czas rozpoczęcia i strefę czasową.
- Skonfiguruj co najmniej jeden adres e-mail, aby otrzymywać alerty dotyczące rozpoczęcia, powodzenia lub niepowodzenia potoku.
- Kliknij pozycję Utwórz.
Następne kroki
- Udziel użytkownikom dostępu do nowej tabeli. Aby uzyskać więcej informacji, zobacz Uprawnienia wykazu aparatu Unity i zabezpieczane obiekty.
- Użytkownicy z dostępem do nowej tabeli mogą teraz wykonywać zapytania dotyczące tabeli w notesie lub korzystać z edytora SQL usługi Databricks.