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)

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

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 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 *