Połączenie do dbt Core
Uwaga
W tym artykule opisano dbt Core, wersję bazy danych dbt dla lokalnej maszyny dewelopera, która współdziała z magazynami SQL usługi Databricks i klastrami usługi Azure Databricks w obszarach roboczych usługi Azure Databricks. Aby zamiast tego użyć hostowanej wersji bazy danych (o nazwie dbt Cloud) lub użyć Połączenie partnera, aby szybko utworzyć magazyn SQL w obszarze roboczym, a następnie połączyć go z usługą dbt Cloud, zobacz Połączenie z usługą dbt Cloud.
dbt (narzędzie do tworzenia danych) to środowisko programistyczne, które umożliwia analitykom danych i inżynierom danych przekształcanie danych przez proste pisanie instrukcji. Dbt obsługuje przekształcanie tych instrukcji select w tabele i widoki. Dbt kompiluje kod w nieprzetworzonym języku SQL, a następnie uruchamia ten kod w określonej bazie danych w usłudze Azure Databricks. Usługa dbt obsługuje wspólne wzorce kodowania i najlepsze rozwiązania, takie jak kontrola wersji, dokumentacja, modułowość i nie tylko.
dbt nie wyodrębnia ani nie ładuje danych. Dbt koncentruje się tylko na kroku transformacji przy użyciu architektury "transformacji po załadowaniu". Dbt zakłada, że masz już kopię danych w bazie danych.
Ten artykuł koncentruje się na korzystaniu z bazy danych dbt Core. Dbt Core umożliwia pisanie kodu dbt w edytorze tekstów lub środowisku IDE wybranego na lokalnym komputerze deweloperskim, a następnie uruchamianie dbt z wiersza polecenia. Dbt Core zawiera interfejs wiersza polecenia dbt. Interfejs wiersza polecenia dbt jest bezpłatny do użycia i open source.
Dostępna jest również hostowana wersja bazy danych o nazwie dbt Cloud. Usługa dbt Cloud jest wyposażona w gotową obsługę planowania zadań, ciągłej integracji/ciągłego wdrażania, obsługi dokumentacji, monitorowania i alertów oraz zintegrowanego środowiska projektowego (IDE). Aby uzyskać więcej informacji, zobacz Połączenie do dbt Cloud. Plan dbt Cloud Developer zapewnia jedno bezpłatne miejsce dla deweloperów; Dostępne są również plany płatne dla zespołu i przedsiębiorstwa. Aby uzyskać więcej informacji, zobacz dbt Pricing (Cennik dbt) w witrynie internetowej dbt.
Ponieważ dbt Core i dbt Cloud mogą używać hostowanych repozytoriów git (na przykład w usłudze GitHub, GitLab lub BitBucket), możesz użyć narzędzia dbt Core, aby utworzyć projekt dbt, a następnie udostępnić go użytkownikom usługi dbt Cloud. Aby uzyskać więcej informacji, zobacz Tworzenie projektu dbt i Używanie istniejącego projektu w witrynie internetowej dbt.
Aby uzyskać ogólne omówienie bazy danych, obejrzyj następujący film wideo w serwisie YouTube (26 minut).
Wymagania
Przed zainstalowaniem bazy danych dbt Core należy zainstalować następujące elementy na lokalnej maszynie dewelopera:
- Środowisko Python w wersji 3.7 lub nowszej
- Narzędzie do tworzenia środowisk wirtualnych języka Python (takich jak pipenv)
Do uwierzytelnienia potrzebne są również następujące elementy:
(Zalecane) baza danych dbt Core włączona jako aplikacja OAuth na twoim koncie. Ta usługa jest domyślnie włączona.
Osobisty token dostępu
Uwaga
Najlepszym rozwiązaniem w zakresie zabezpieczeń podczas uwierzytelniania za pomocą zautomatyzowanych narzędzi, systemów, skryptów i aplikacji usługa Databricks zaleca używanie tokenów OAuth.
Jeśli używasz uwierzytelniania osobistego tokenu dostępu, usługa Databricks zaleca używanie osobistych tokenów dostępu należących do jednostek usługi zamiast użytkowników obszaru roboczego. Aby utworzyć tokeny dla jednostek usługi, zobacz Zarządzanie tokenami dla jednostki usługi.
Krok 1. Tworzenie i aktywowanie środowiska wirtualnego języka Python
W tym kroku utworzysz pipenv
środowisko wirtualne języka Python. Zalecamy używanie środowiska wirtualnego języka Python, ponieważ izoluje wersje pakietów i zależności kodu do tego konkretnego środowiska, niezależnie od wersji pakietów i zależności kodu w innych środowiskach. Pomaga to zmniejszyć nieoczekiwane niezgodności wersji pakietu i kolizje zależności kodu.
W terminalu przejdź do pustego katalogu, tworząc go najpierw w razie potrzeby. Ta procedura tworzy pusty katalog o nazwie
dbt_demo
w katalogu głównym katalogu macierzystego użytkownika.Unix, linux, macos
mkdir ~/dbt_demo cd ~/dbt_demo
Windows
mkdir %USERPROFILE%\dbt_demo cd %USERPROFILE%\dbt_demo
W tym pustym katalogu utwórz plik o nazwie
Pipfile
z następującą zawartością. Ten plik Pipfile instruujepipenv
używanie języka Python w wersji 3.8.6. Jeśli używasz innej wersji, zastąp3.8.6
ciąg numerem wersji.[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] dbt-databricks = "*" [requires] python_version = "3.8.6"
Uwaga
Poprzedni wiersz
dbt-databricks = "*"
instruujepipenv
użycie najnowszejdbt-databricks
wersji pakietu. W scenariuszach produkcyjnych należy zastąpić*
określoną wersją pakietu, którego chcesz użyć. Usługa Databricks zaleca wersję 1.6.0 lub nowszą pakietu dbt-databricks. Zobacz dbt-databricks Release history (Historia wydania dbt-databricks) w witrynie internetowej indeksu pakietów języka Python (PyPI).Utwórz środowisko wirtualne języka Python w tym katalogu, uruchamiając
pipenv
polecenie i określając wersję języka Python do użycia. To polecenie określa język Python w wersji 3.8.6. Jeśli używasz innej wersji, zastąp3.8.6
ciąg numerem wersji:pipenv --python 3.8.6
Zainstaluj kartę dbt Databricks, uruchamiając
pipenv
polecenie z opcjąinstall
. Spowoduje to zainstalowanie pakietów w plikuPipfile
, który zawiera pakiet adaptera dbt Databricks,dbt-databricks
z PyPI. Pakiet adaptera dbt Databricks automatycznie instaluje dbt Core i inne zależności.Ważne
Jeśli lokalna maszyna deweloperowa korzysta z dowolnego z następujących systemów operacyjnych, najpierw należy wykonać dodatkowe kroki: CentOS, MacOS, Ubuntu, Debian i Windows. Zobacz sekcję "Czy mój system operacyjny ma wymagania wstępne" w temacie Używanie narzędzia pip do instalowania bazy danych w witrynie internetowej dbt Labs.
pipenv install
Aktywuj to środowisko wirtualne, uruchamiając polecenie
pipenv shell
. Aby potwierdzić aktywację, terminal zostanie wyświetlony(dbt_demo)
przed monitem. Środowisko wirtualne rozpoczyna korzystanie z określonej wersji języka Python i izoluje wszystkie wersje pakietów i zależności kodu w tym nowym środowisku.pipenv shell
Uwaga
Aby dezaktywować to środowisko wirtualne, uruchom polecenie
exit
.(dbt_demo)
znika przed monitem. Jeśli uruchomionopython --version
środowisko wirtualne lubpip list
z tym środowiskiem wirtualnym jest dezaktywowane, może zostać wyświetlona inna wersja języka Python, inna lista dostępnych pakietów lub wersji pakietów lub obu tych wersji.Upewnij się, że środowisko wirtualne uruchamia oczekiwaną wersję języka Python, uruchamiając
python
polecenie z opcją--version
.python --version
Jeśli zostanie wyświetlona nieoczekiwana wersja języka Python, upewnij się, że środowisko wirtualne zostało aktywowane, uruchamiając polecenie
pipenv shell
.Upewnij się, że środowisko wirtualne korzysta z oczekiwanych wersji dbt i karty dbt Databricks, uruchamiając
dbt
polecenie z opcją--version
.dbt --version
Jeśli zostanie wyświetlona nieoczekiwana wersja dbt lub karta dbt Databricks, upewnij się, że aktywowano środowisko wirtualne, uruchamiając polecenie
pipenv shell
. Jeśli nadal jest wyświetlana nieoczekiwana wersja, spróbuj ponownie zainstalować kartę dbt lub dbt Databricks po aktywowaniu środowiska wirtualnego.
Krok 2. Tworzenie projektu dbt i określanie i testowanie ustawień połączenia
W tym kroku utworzysz projekt dbt, który jest kolekcją powiązanych katalogów i plików, które są wymagane do korzystania z bazy danych. Następnie skonfigurujesz profile połączeń, które zawierają ustawienia połączenia z klastrem usługi Azure Databricks, usługą SQL Warehouse lub obydwoma. Aby zwiększyć bezpieczeństwo, projekty dbt i profile są domyślnie przechowywane w oddzielnych lokalizacjach.
Napiwek
Możesz nawiązać połączenie z istniejącym klastrem lub usługą SQL Warehouse albo utworzyć nowy.
- Istniejący klaster lub magazyn SQL może być wydajny dla wielu projektów dbt, do używania bazy danych w zespole lub w przypadku przypadków użycia programowania.
- Nowy klaster lub usługa SQL Warehouse umożliwia uruchamianie pojedynczego projektu dbt w izolacji w przypadku przypadków użycia w środowisku produkcyjnym, a także wykorzystanie automatycznego kończenia, aby zmniejszyć koszty, gdy ten projekt dbt nie jest uruchomiony.
Użyj usługi Azure Databricks, aby utworzyć nowy klaster lub usługę SQL Warehouse, a następnie odwołać się do nowo utworzonego klastra lub istniejącego klastra lub magazynu SQL Warehouse z profilu dbt.
Po aktywowaniu środowiska wirtualnego uruchom polecenie dbt init z nazwą projektu. Ta procedura tworzy projekt o nazwie
my_dbt_demo
.dbt init my_dbt_demo
Po wyświetleniu monitu o wybranie elementu
databricks
lubspark
bazy danych wprowadź liczbę odpowiadającądatabricks
.Po wyświetleniu monitu
host
o wartość wykonaj następujące czynności:- W przypadku klastra wprowadź wartość Nazwa hosta serwera z karty Opcje zaawansowane JDBC/ODBC dla klastra usługi Azure Databricks.
- W przypadku usługi SQL Warehouse wprowadź wartość Nazwa hosta serwera na karcie Szczegóły Połączenie ion dla usługi SQL Warehouse.
Po wyświetleniu monitu
http_path
o wartość wykonaj następujące czynności:- W przypadku klastra wprowadź wartość Ścieżka HTTP z karty Opcje zaawansowane JDBC/ODBC dla klastra usługi Azure Databricks.
- W przypadku usługi SQL Warehouse wprowadź wartość Ścieżka HTTP na karcie Szczegóły Połączenie ion dla usługi SQL Warehouse.
Aby wybrać typ uwierzytelniania, wprowadź liczbę odpowiadającą
use oauth
(zalecane) lubuse access token
.Jeśli wybrano
use access token
typ uwierzytelniania, wprowadź wartość osobistego tokenu dostępu usługi Azure Databricks.Uwaga
Najlepszym rozwiązaniem w zakresie zabezpieczeń w przypadku uwierzytelniania za pomocą zautomatyzowanych narzędzi, systemów, skryptów i aplikacji usługa Databricks zaleca używanie osobistych tokenów dostępu należących do jednostek usługi zamiast użytkowników obszaru roboczego. Aby utworzyć tokeny dla jednostek usługi, zobacz Zarządzanie tokenami dla jednostki usługi.
Po wyświetleniu monitu
desired Unity Catalog option
o wartość wprowadź liczbę odpowiadającąuse Unity Catalog
wartości lubnot use Unity Catalog
.Jeśli wybrano opcję używania wykazu aparatu Unity, wprowadź żądaną wartość po
catalog
wyświetleniu monitu.Wprowadź żądane wartości i
schema
threads
po wyświetleniu monitu.dbt zapisuje wpisy w
profiles.yml
pliku. Lokalizacja tego pliku znajduje się na liście danych wyjściowychdbt init
polecenia . Tę lokalizację można również wyświetlić później, uruchamiającdbt debug --config-dir
polecenie . Możesz teraz otworzyć ten plik, aby sprawdzić i zweryfikować jego zawartość.Jeśli wybrano
use oauth
typ uwierzytelniania, dodaj profil uwierzytelniania maszyny do maszyny (M2M) lub użytkownika-maszyny (U2M) do usługiprofiles.yml
.Przykłady można znaleźć w temacie Configure Azure Databricks sign-on from dbt Core with Microsoft Entra ID (Konfigurowanie logowania usługi Azure Databricks z bazy danych dbt Core przy użyciu identyfikatora Entra firmy Microsoft).
Usługa Databricks nie zaleca bezpośredniego określania wpisów
profiles.yml
tajnych. Zamiast tego ustaw identyfikator klienta i klucz tajny klienta jako zmienne środowiskowe.Upewnij się, że szczegóły połączenia są poprawne, przechodząc do
my_dbt_demo
katalogu i uruchamiającdbt debug
polecenie.Jeśli wybrano
use oauth
typ uwierzytelniania, zostanie wyświetlony monit o zalogowanie się za pomocą dostawcy tożsamości.Ważne
Przed rozpoczęciem sprawdź, czy klaster lub usługa SQL Warehouse jest uruchomiona.
Powinny zostać wyświetlone dane wyjściowe podobne do następujących:
cd my_dbt_demo dbt debug
... Configuration: profiles.yml file [OK found and valid] dbt_project.yml file [OK found and valid] Required dependencies: - git [OK found] Connection: ... Connection test: OK connection ok
Następne kroki
- Tworzenie, uruchamianie i testowanie modeli dbt Core lokalnie. Zobacz samouczek dbt Core.
- Uruchom projekty dbt Core jako zadania zadań usługi Azure Databricks. Zobacz Używanie przekształceń dbt w zadaniu usługi Azure Databricks.