Alteryx Designerを使ってデータベースのデータを取得して活用したい、ということはよくあるケースですが、同じスキーマで異なる名前のテーブルを一気に読み込みたい、といったケースはありますか?
もちろんAlteryx Designerならこのようなケースにも対応可能です。
サンプルデータとして、SAMESCHEMA_1というテーブルとSAMESCHEMA_2というスキーマが同じテーブルを用意しました(今回はMicrosoft SQL Serverを使用しています)。
それぞれのテーブルの中身は以下のとおりです。


SQLで実現する
DesignerはSQLを直接書いてデータをデータベースから読み込むことが可能です。例えば、以下のようなSQLで対応可能です。
SELECT * FROM SAMESCHEMA_1
UNION
SELECT * FROM SAMESCHEMA_2
これをデータ入力ツールのテーブル選択時にSQLエディターのタブに書き込めばオッケーです。

以下のように無事データが得られました。

ただ、この場合テーブル名を動的に変えるのはこのままではできません。
バッチマクロで対応する
正直なところ、本命はこの方法です。
テーブルリストを作成しておき、SQLをバッチマクロで書き換える方法です。テーブル名がリスト化されていれば、色々と特定のテーブルに絞るなどもフィルターツールでやりやすく、融通の聞く方法です。もしくは、データベースマネジメントシステムはたいていテーブル一覧を持つシステムテーブルを持っているため、そこから読み込むことでさらに動的に対応が可能です。
バッチマクロは以下のような簡単なものを作っておきます。

アクションツールの設定は以下の通りです。

今回はテーブル名で指定したいので、「Table – value」を選択します。
このような簡単な形で作成できます。

SQL Serverのシステムテーブルの「INFORMATION_SCHEMA」からテーブルリストを取得し、該当のテーブルを特定し、読み込む、といったワークフローは以下の通りとなります。
一番左端のデータ入力ツールにて、INFORMATION_SCHEMAテーブルに接続し、フィルタツールで今回読み込みたい「SAMESCHEMA」で始まるテーブルを抽出してからバッチマクロにテーブル名を入力しています。

この方法が一般的な方法です。様々なデータベースで動的に対応可能です。
BigQueryの場合SQLベースで簡単に対応可能
GoogleのBigQueryでGA4と連携している場合、データは毎日異なるテーブルにエクスポートされるようになっています。例えば、以下のような・・・
analytics_[YOUR_GA4_ID].events_[YYYYMMDD]
といったテーブル名になります。この場合、例えば2024年10月分のデータを一気に引っこ抜きたい、といった場合は以下のようなSQLで対応可能です。
select * from `analytics_1234567890.events_202410*`
※GA4のID部分は適当に「1234567890」としていますが、実際は作成されているDatasetnameに合わせてください。
BigQueryの場合は、テーブル名にワイルドカードが使える、ということです。
まとめ
- データベース上の同じスキーマのテーブルを一気にAlteryxで読み込む方法をご紹介しました。
- SQLを直接書くこともできますが、バッチマクロで汎用的に対応可能です。
- Google BigQueryの場合はテーブル名にワイルドカードが指定可能です。
サンプルワークフローダウンロード
次回
未定です。
コメント