ETL | Mage.ai Dbt debug – Nastavení a test databáze SQL Server (profiles.yml) – Windows

Minulý článek byl zaměřen na instalaci dbt do prostředí Mage.ai anebo samostatně a následnou inicializaci projektu nazvaného mage_dbt – Instalace Dbt (pip/conda) a inicializace projektu. Máme tedy nainstalovaný environment mage-ai do kterého jsme nainstalovali dbt-sqlserver. Následně jsme otestovali, že vidíme založenou souborovou strukturu projektu. Dneska se podíváme na to, jak provést konfiguraci a nastavení Dbt.

Zkoušel jsem nastavení na OS Windows přes Parallels (viz návod) a na Macbook M1. U macbooku jsem se bohužel zadrhnul na tom, že se mi nepodařilo nainstalovat správne ODBC drivery (17,18) a tím pádem mi padal dbt debug (test připojení) a po cca hodině zkoušení jsem to vzdal. Na Windowsech všechno v pohodě.

Souborová struktura Dbt

Než se vrhneme na nastavení dbt a připojení k databázi, tak se podíváme na to, jak je dbt strukturováno. K tomu využijeme Mage.ai webserver, který jsme si vytvořili v prvním článku.

dbt-files

Pozornost věnujeme pouze adresáři dbt. Ostatní složky se týkají mage.ai. Vidíme, že ve složce dbt jsme inicializovali projekt mage_dbt a tento projekt obsahuje další složky, zejména:

  • dbt_project.yml: Tento soubor obsahuje hlavní konfiguraci vašeho DBT projektu, včetně připojení k databázi, konfigurace profilů a dalšího základního nastavení. Je to klíčový soubor pro správu celého projektu.
  • profiles.yml: Soubor obsahuje konfigurace pro připojení k různým databázím a prostředím. Je důležitý pro definování připojení k databázím, které budou použity v projektu.
  • models: Tato složka obsahuje SQL soubory definující DBT modely. Modely jsou jádrem našeho projektu a zpracovávají data.
  • seeds: Tato složka může obsahovat vstupní data nebo soubory, které budou zpracovávány vašimi DBT modely. Je to základní zdroj dat pro váš projekt.
  • ostatní: pro tuto chvíli nepodstatné

Dnes nás budou zajímat zejména soubor profiles.yml a dbt_project.yml kam nastavíme naši databázi SQL Server běžící na localhostu. Zatím nebudeme konfigurovat vývojové (dev) a produkční (prod) prostředí, to si nechám na další článek.

Dbt debug – nastavení databáze (profiles.yml) a gitu

a) Otevřeme si terminál nebo příkazovou řádku a aktivujeme náš environment (v mém případě mage-ai) a zadáme cestu k našemu dbt projektu

b) Nyní si zkusíme spustit příkaz, který otestuje konfiguraci našeho prostředí. To se dělá přes dbt debug (více informací viz. dokumentace). Vidíme, že výsledkem je chyba – to je ale v pohodě, protože nemáme nakonfigurovány soubory.

dbt-debug-fail

Instalace git pro dbt

Z chybového screensotu výše vidíme, že jeden z fail checků je git. Takže si git stáhněte a nainstalujte. Po instalaci vlezem do příkazové řádky a napíšeme “git –version“. Pokud je výsledkem verze gitu tak je vše OK, ale pokud je výsledkem chyba dole tak to musíme opravit a poračujte na trubleshooting kapitolu:

(mage-ai) C:\Users\janzednicek\OneDrive\Prace\Jan_Zednicek\mage-docker\mage-ai\dbt\mage_dbt>git –version
‘git’ is not recognized as an internal or external command,
operable program or batch file.

Troubleshooting – Instalace git selhala – ‘git’ is not recognized as an internal or external command

Pokud příkazová řádka nevrací zpět verzi gitu tak je pravděpodobně problém buď ve šatné instalaci nebo environment nezná cestu na git executable.

V mém případě se stalo, že environment mage-ai nezná cestu ke gitu nainstalovanému na C:\Program Files\Git. Řešením je přidat do složky s environmentem (v mém případě C:\Users\janzednicek\anaconda3\envs\mage-ai\etc\conda\activate.d) activate.bat soubor, který cestu nastaví. Založíme tedy soubor “activate.bat” a vložíme do něj: set “PATH=%PATH%;C:\Program Files\Git\bin”. Poté by konzole měla vrátit verzi gitu.

Pokud pustíme dbt debug, tak vidíme že jednu chybu se nám podařilo odstřelit.

dbt-git.fail

Konfigurace profiles.yml a nastavení cesty na soubor

Zbývá nám ještě nastavit konfigurační soubory na databázi.

Krok 1 – umístění souboru profiles.yml – U souboru profiles.yml dbt po instalaci očekává, že bude uložen v umístění C:\Users\(vaše username)\.dbt ale nemusíte to tak mít když nechcete

Takže u prvního kroku máte na výběr

  • buď folder .dbt vytvoříte v daném umístění nebo
  • nastavíme další výjimku do našeho souboru activate.bat z předchozího kroku

Já bych chtěl mít soubor profiles.yml uložen v souboru s mým mage.ai projektem. Takže přidávám do activate.bat další řádek: set “DBT_PROFILES_DIR=C:\Users\janzednicek\OneDrive\Prace\Jan_Zednicek\mage-docker\mage-ai\dbt”

Krok 2 – konfigurace profiles.yml – pro mě bude cílová databáze SQL server a budu se přihlašovat metodou SQL authentication takže edituji soubor a vyplňuji viz níže.

mage_dbt:
  outputs:
    mac-dev:
      type: sqlserver
      driver: ‘ODBC Driver 17 for SQL Server’ # (The ODBC Driver installed on your system)
      server: localhost
      port: 1433
      database: Temp
      schema: dbo
      user: sa
      password: password
      trust_cert: true
      encrypt: false
  target: mac-dev

Pokud by vás zajímalo, jaké možnosti konfigurace je možné přes dbt udělat, tak dávám odkaz na dokumentaci. Najdete tam, jak se připojit přes windows auth nebo třeba AAD.

Krok 3 – konfigurace dbt_project.yml – tady toho není potřeba až tolik nastavovat, je potřeba pohlídat, že tento souor odkazuje na správný profil z předchozího kroku. V mém případě na mage_dbt.

dbt-project-yml

Testování dbt po instalaci a první spuštění dbt run

Doufám, že se vám poštěstilo a dostali jsme všichni do stavu, kdy nám dbt debug příkaz vrací všechno zelené:

dbt-success-check

Když se podíváme do složky models, tak tu máme 2 testovací skripty, které bychom si rovnou mohli v rámci dbt spustit a tím celé řešení otestovat

my_first_dbt_model.sql

Dbt projekt spustíme  pomocí příkazu “dbt run” – pokud máme vývojové a produkční prostředí, tak navíc přidáváme parametr — target pomocí kterého řekneme nad kterým prostředím dbt pouštíme. My máme ale jen 1 prostředí tak je to jedno.

dbt-run-success

Vše vypadá v pořádku a data dorazila do databáze.

dbt-run-success-sql-server

5/5 - (1 vote)
Rubrika: Dbt (data build tool) Mage AI - Návody a informace MS SQL Server

O Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako data engineer freelancer. Během cca 10 let jsem zde shromáždil přes 600 IT case studies, průvodců, návodů a tipů určených zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Data Engineeringu, korporátních financí a reportingu. Zaměřuji se především na Microsoft technologie (on-prem i cloud) a různé synergické efekty v rámci jejich produktového portfolia pro dataře a finanční profesionály. Věnuji se také dalším platformám a významným hráčům z oblasti open source technologií. 🔥 Pokud vám tento článek pomohl, ocením referenci na vašem webu nebo zmínku v komunitě. A mám pro vás ještě tip: řešíte-li nějaký zapeklitý Excel problém, přihlašte se do naší Excel Facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse ».

Leave a Reply

Your email address will not be published. Required fields are marked *