
お世話になります。
Amazon Athena上にあるテーブルに対して、1テーブル=1データソースとしてTableauに作成したいと考えています。
ただし、手動ではなくシステムを使って作成をしたいのですが、実現する方法はあるでしょうか。
Athena上にあるテーブルは、数十テーブルあり、全てを手作業で作成することも手間ですし、増えた場合に都度手作業が入るのも避けたいと考え、このような運用を検討しています。
Data Management addonは使っていない状態となります。
本件、ご教授いただけますと大変助かります。
よろしくおねがいします
7 respuestas

ひとつのテーブルをそのままひとつのデータソースとしてTableauServer上にパブリッシュしたいという意味でよいでしょうか?
その場合、おそらく標準機能としてはないと思われますので、REST API(と条件によってはDocument APIも)を使用してパブリッシュすることになると思います。
- 公式リファレンス Publishing Methods - Tableau
- 具体的なサンプル rest-api-samples/publish_workbook.py at master · tableau/rest-api-samples · GitHub
- ※上記サンプルはワークブックのパブリッシュですが、データソースも構造はほぼ同じです。
テーブルが増えた場合に都度手作業を行うことを避けることも考慮すると、
- Amazon Athenaからパブリッシュ対象のテーブル一覧を取得する
- TableauServer上の指定のプロジェクトにあるデータソース一覧を取得する
- 1番にあって2番にないものをリスト化する
- データソースファイル(XML)の接続情報を書き換えたファイルを作成する
- REST APIでTableauServer上の指定のプロジェクトにパブリッシュする
- 3番のリスト内の数だけ4番と5番を繰り返す
というバッチ処理を定期的に動かすとよいのではないでしょうか。
環境が異なるので参考になるかは分かりませんが、接続先がBigQueryのデータソースを対象に上記手順の3番以降をPythonで実行することができました。