Metadata-Version: 2.1
Name: prep2dbt
Version: 0.0.1a1
Summary: Tools for converting Tableau Prep flows to dbt models
Author: Tomomi Kodama
Author-email: t.kodama@datumstudio.jp
License: MIT
Project-URL: Documentation, https://github.com/t0momi219/prep2dbt
Project-URL: Changelog, https://github.com/t0momi219/prep2dbt
Project-URL: Source, https://github.com/t0momi219/prep2dbt
Project-URL: Tracker, https://github.com/t0momi219/prep2dbt
Classifier: Development Status :: 3 - Alpha
Requires-Python: >=3.11
License-File: LICENSE
Requires-Dist: click >=8.1.7
Requires-Dist: networkx >=3.2.1
Requires-Dist: pandas >=2.1.4
Requires-Dist: ruamel.yaml >=0.18.5
Requires-Dist: snowflake-sqlalchemy >=1.5.1
Requires-Dist: sqlalchemy[mypy] >=1.4.50
Provides-Extra: autoflake_
Requires-Dist: 2.2.1 ; extra == 'autoflake_'
Provides-Extra: black_
Requires-Dist: 23.12.1 ; extra == 'black_'
Provides-Extra: esbonio_
Requires-Dist: 0.16.3 ; extra == 'esbonio_'
Provides-Extra: isort_
Requires-Dist: 5.13.2 ; extra == 'isort_'
Provides-Extra: mypy_
Requires-Dist: 1.8.0 ; extra == 'mypy_'
Provides-Extra: networkx-stubs_
Requires-Dist: 0.0.1 ; extra == 'networkx-stubs_'
Provides-Extra: pandas-stubs_
Requires-Dist: 2.1.4.231227 ; extra == 'pandas-stubs_'
Provides-Extra: pytest-cov_
Requires-Dist: 4.1.0 ; extra == 'pytest-cov_'
Provides-Extra: pytest-mock_
Requires-Dist: 3.12.0 ; extra == 'pytest-mock_'
Provides-Extra: pytest_
Requires-Dist: 7.4.3 ; extra == 'pytest_'
Provides-Extra: sphinx-press-theme_
Requires-Dist: 0.8.0 ; extra == 'sphinx-press-theme_'
Provides-Extra: sphinx_
Requires-Dist: 7.2.6 ; extra == 'sphinx_'

# prep2dbt

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

ドキュメント
- https://hogehoge

ソースコード
- 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構成ファイル）に変換します。

> [!NOTE]
> 
> dbtプロジェクト自体はこのツールでは作成しないため、プロジェクトは別で用意してください。
> 
> 初めてdbtを利用する方は、クイックスタートでプロジェクトの作り方を確認できます。

> [!caution]
> 
> Tableau Prepのフローファイルからは、変換に十分な情報が取得できない場合があります。
> （例えば、データソースがどのようなカラムを持っているのかといった情報がファイルに残っていません。）
> よって、変換後のSQLが完璧に動作する保証はありません。
> 
> また、多くの場合でTableau PrepのフローをそのままSQLにマッピングするだけのモデルは、パフォーマンスや再利用性の観点から推奨しません
> あくまで開発の土台として利用してください。


### 統計情報の出力

フローが利用している機能の一覧と、統計情報を出力します。これはフロー移行前に難易度や見積もりの測定を行ったり、リファクタリングのヒントとして活用するために利用できます。


## インストール

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

```sh
$ pip install prep2dbt
```

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

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