概要

Tableau Prepで作成されたフローをdbtモデルに変換するツールです。

ドキュメント

https://t0momi219.github.io/prep2dbt/index.html

ソースコード

https://github.com/t0momi219/prep2dbt

サンプル(Superstoreを本ツールでdbtに変換)

https://t0momi219.github.io/prep2dbt-demo/#!/overview

モチベーション

Tableau PrepはGUIで簡易なデータパイプラインを作成・操作することに焦点が当てられたツールです。 フローが複雑化してきた場合や、複数人でフローを利用する場合には、これを維持・管理するために大きな労力を支払うことになります。

一方、dbtはSQLを中核にしたデータパイプラインを構築するためのツールとして知られています。コードのモジュール化、テスト、自動ドキュメント作成など、共同でパイプラインを管理するために必要となる様々な機能が提供されます。

このツールは、Tableau Prepの処理自体をdbtへ移植する、ドキュメント化をdbtに頼る、などの活動を支援するために作りました。

機能

dbtモデル変換

フローファイルをdbtモデル(SQLファイルとYML構成ファイル)に変換します。

注釈

dbtプロジェクト自体はこのツールでは作成しないため、プロジェクトは別で用意してください。

初めてdbtを利用する方は、クイックスタート でプロジェクトの作り方を確認できます。

注意

Tableau Prepのフローファイルからは、変換に十分な情報が取得できない場合があります。 (例えば、データソースがどのようなカラムを持っているのかといった情報がファイルに残っていません。) よって、変換後のSQLが完璧に動作する保証はありません。

また多くの場合で、Tableau PrepのフローをそのままSQLにマッピングするだけのモデルは、パフォーマンスや再利用性の観点から推奨しません。 あくまで開発の土台として利用してください。

統計情報の出力

フローが利用している機能の一覧と、統計情報を出力します。

フロー移行の難易度や見積もりの測定や、リファクタリングのヒントとして活用してください。

インストール

pipからインストールできます。

pip install prep2dbt

または、このプロジェクトをローカルでパッケージとして実行します。

git clone https://github.com/t0momi219/prep2dbt.git
python -m prep2dbt convert -f /path/to/file.tfl