ETL | Mage.ai instalace přes Docker – dbtsqlserver – Chyba Dbt debug, oprava

Dnes jsem se pokoušel v rámci seznamování s Mage.ai provést instalaci přes Docker, protože momentálně (2024-01-26) je to jediný scénář kdy je možné rozchodit Dbt společně s Mage.ai v rámci společných pipelines nativně (pokud neprovozujete Mage-ai přes Docker, tak žádný strach. Pouštět Db můžeme přes custom python bloky)

Tento návod pokrývá i řešení chyby, která souvisí s nekompatibilním dbt-sqlserver adaptérem – dbt was unable to connect to the specified database. The database returned the following error: >SQLServerConnectionManager.execute() got an unexpected keyword argument ‘limit’

Instalace Mage.ai – Docker, SQL Server adapter

1) Nainstalujte si Docker

2) Založte si složku tam, kde chcete vytvořit náš Mage projekt, kde vám to dává smysl. Otevřete termáníl nebo příkazovou řádku a naveďte se do této složky.

3) V dokumentaci Mage najdeme příkaz pro start docker kontejneru a spuštění mage projektu, náš projekt se bude jmenovat mage-ai:

  • Mac/Linux – docker run -it -p 6789:6789 -v $(pwd):/home/src mageai/mageai /app/run_app.sh mage start mage-ai
  • Windows – docker run -it -p 6789:6789 -v “%cd%:/home/src” mageai/mageai /app/run_app.sh mage start mage-ai

4) Mage teď běží v kontejneru a je přístupný na adrese http://localhost:6789/

Inicializace dbt přes Docker, dbt debug a troubleshooting chyby

1) Dbt je nainstalováno v Docker kontejneru viz předchozí kapitola, takže nám stačí pouze otevřít terminál, nasměrovat se do složky dbt pomocí dbt init dbt_project a následně vybereme adaptér který odpovídá naší databázové platformě. V mém případě SQL Server

2) Musíme si ponastavovat profiles.yml soubor a dbt_project.yml soubor. Kontejnerizovaný Mage-ai s dbt očekává profiles.yml file uvnitř dbt projektu (nikoliv v .dbt nebo jinde). Možná se dá zabojovat a nějak to nastavit, ale já jsem prosě soubor přesunul.

dbt profile.yml a dbt_project.yml

3) Po konfuguraci připojení je čas na test pomocí dbt debug. Zde jsem narážel na chybu – SQLServerConnectionManager.execute() got an unexpected keyword argument ‘limit’

4) Problém je (asi) v nekompatibilní verzi dbt-sqlserver dbt adaptéru vs dbt-core, který je v kontejneru po instalaci přes mageai/mageai image. Můžeme se o tom přesvědčit příkazem: “dbt –version”

dbt-version-terminal

5) Oprava dbt-sqladapteru: aktualizujeme adaptér “pip install –upgrade dbt-sqlserver” případně upgradneme další nekompatibility.

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

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 *