Tableau Prepフローをdbtモデルに変換するツール「prep2dbt」を公開しました
背景
Tableau PrepはGUIで簡単にデータパイプラインを作成できるツールです。すごく簡単に作れるものの、複雑なフローになると見通しが悪くなったり、処理の再利用性が落ちてきてしまいます。
ちょっとカラムが見たいだけなのに、データのロードが多かったりするのも残念
一方で、dbtはSQLを中核にパイプラインを構築するためのツールとして知られています。コードのモジュール化、テスト、自動ドキュメント作成など、共同でパイプラインを管理するために必要となる様々な機能が提供されます。
特にリネージはPrepよりもずっと軽量で使いやすいです
複雑なPrepフローをdbtへ移植する、Prepをdbtに移植するつもりがなくてもフローの設計書としてdocsを利用する、といったニーズがあるかと思い、移植支援ツールを開発しました。
ドキュメントはこちらです。
サンプルページ
サンプルページも用意しました。チェックしてみてください。
これは、Tabealu Prepのチュートリアルで登場するSuperstoreフローをこのツールで変換したものです。
主な機能
具体的な使い方は、クイックスタートから確認してください。
dbtモデルへの変換
$ prep2dbt convert -f /path/to/flow_file.tfl
tflまたはtflxファイルを指定すると、dbtモデルとなるSQLとYMLファイルを出力します。
フローの統計情報の出力
$ prep2dbt describe -f /path/to/flow_file.tfl
フローが利用しているステップの種類や、そのステップ数、フローの規模を表す指標であるグラフの幅や深さなどの統計情報を集計します。
本格的な移行を考えたとき、本ツールで生成したSQLをそのまま利用できるケースはほぼなく、多くの場合ではリファクタだったり、移行後のテストをおこなったりといった作業が必要になるはずです。その作業の見積もりのインプットとしてください。
カスタムの変換仕様の登録
このツールで対応できていないTableau Prepの機能があった場合のために、独自の変換仕様を開発できるようにしています。また、変換仕様の実装を助けるためのMixinクラスをいくつか用意しています。
詳細は開発者ガイドをみてください。
インストール
興味を持っていただけたなら、ぜひ使ってみてください。pipからインストールができます。
$ pip install prep2dbt
おまけ
私にとっては、今回が初めてのPyPIへのパッケージリリースでした。
本当は年内に出したかったのですが、PyPIのユーザ登録ができなくてリリースができず、足踏みしてました。こういうこともあるんですね。
「PyPI への新規ユーザー登録は一時的に停止されています。過去 1 週間でインデックス上に作成された悪意のあるユーザーと悪意のあるプロジェクトの量は、特に複数の PyPI 管理者が休暇中であるため、タイムリーに対応する能力を上回っています。」
Discussion