カスタム変数ループ実行
  • 18 Jun 2024
  • PDF

カスタム変数ループ実行

  • PDF

記事の要約

概要

カスタム変数ループ実行とは、カスタム変数を埋め込んだ転送設定・データマート定義を、ワークフロー定義上に組み込んだときに設定できる機能です。
本ページでは、カスタム変数ループ実行の概要、および設定内容について、ユースケースを交えてご紹介します。

カスタム変数ループ実行とは

カスタム変数ループ実行では、タスクに埋め込んだカスタム変数に対して、複数の値を展開するよう設定できます。
この設定を施したタスクがワークフロージョブ内で実行されると、「カスタム変数に値を展開し、それを踏まえた形でジョブを実行する」という処理が順番に繰り返されます。
結果的に、1回のタスク実行で複数のジョブを実行することができます。

カスタム変数・ワークフロー定義について

それぞれの概要および設定方法について、詳しくは下記を参照ください。

ユースケース

カスタム変数ループ実行の代表的なユースケースについてご紹介します。

転送元広告系コネクタから、複数のアカウントIDのデータをまとめて転送する

広告系コネクタで広告アカウントIDを複数利用している場合に、複数の広告アカウントIDのデータをまとめて転送できます。

設定例

転送設定を作成するときに、広告アカウントIDにカスタム変数を埋め込みます。
上記の転送設定をワークフロー定義に組み込み、転送対象の広告アカウントID一覧をカスタム変数に展開するように設定します。

転送元ファイル・ストレージ系コネクタから、特定日時のファイルを転送する

ファイル名のプレフィックスまたはサフィックスに日時が含まれている場合に、指定した日時を含むファイルをまとめて転送できます。
同様に、特定の日時を含むフォルダ配下のファイルをまとめて転送することもできます。

設定例

転送設定を作成するときに、パスプレフィックスにカスタム変数を埋め込みます。
上記の転送設定をワークフロー定義に組み込み、転送対象の日時一覧をカスタム変数に展開するように設定します。

転送元データベース系コネクタから、大容量ファイルを分割して転送する

データベース系コネクタから大容量のデータを転送したい場合に、ファイルを分割して転送できます。
ジョブを分割して転送することで、1回のジョブにまとめて転送する場合よりも、短い時間で転送を終えられる可能性があります。

設定手順

転送設定を作成するときに、クエリ内にカスタム変数を埋め込みます。
たとえば、timestamp型のカラムを基準に分割する場合は、クエリ内に以下のようなWHERE句を記述します。

WHERE column_timestamp BETWEEN "$start_date$" AND "$end_date$"

上記の転送設定をワークフロー定義に組み込み、任意の回数にジョブが分割されるようにカスタム変数に展開する日付を設定します。

転送元データベース系コネクタから、同一スキーマのテーブルをまとめて転送する

データベース系コネクタに同一スキーマのテーブルが複数ある場合に、複数のテーブルをまとめて転送できます。

設定手順

転送設定を作成するときに、クエリ内のFROM句にカスタム変数を埋め込みます。
上記の転送設定をワークフロー定義に組み込み、転送対象のテーブル名一覧をカスタム変数に展開するように設定します。

Google Analyticsから転送するデータがサンプリングされないようにする

Google AnalyticsのAPI側の仕様により、転送元Google Analytics(UA)および転送元Google Analytics 4で取得対象のデータサイズが一定以上大きくなると、サンプリングが発生します。
取得対象のデータを分割することで、サンプリング取得を回避できます。

設定手順

転送設定を作成するときに、データ取得期間の開始日・終了日にカスタム変数を埋め込みます。
上記の転送設定をワークフロー定義に組み込み、サンプリングされない程度に細かくジョブを分割されるよう、カスタム変数に展開する日付を設定します。(例:1日単位で分割)

データマート定義を用いて、特定カラムをキーにテーブルを分割する

テーブルに含まれる特定のカラムをキーに、テーブルを分割できます。
たとえば、A社B社C社...といった値を持つカラムcompany_idを含むテーブルがあったときに、テーブルを各社に分けて作成できます。

設定手順

データマート定義を作成するときに、クエリおよび出力先テーブルにカスタム変数を埋め込みます。
以下は、クエリおよび出力先テーブルの例です。

  • クエリの例
SELECT *
FROM
  <元テーブル>
WHERE
  company_id == $companyId$
  • 出力先テーブルの例
$date$_$companyId$

上記のデータマート定義をワークフロー定義に組み込み、キーとなるカラムに含まれる値の一覧をカスタム変数に展開するように設定します。


上記の他にも、カスタム変数ループ実行にはさまざまなユースケースがあります。
詳細について、カスタマーサクセスまでお問い合わせください。

設定手順

  1. 転送設定・データマート定義を作成します。このとき、適宜カスタム変数を埋め込みます。
    image.png
文字列型のカスタム変数の値

文字列型のカスタム変数を埋め込む場合、を入力します。この値は、ループ実行時に展開される値によって上書きされます。
したがって、この値はループ実行時には用いられません。ご注意ください。

  1. ワークフロー定義を作成します。

  2. フロー編集画面にて、カスタム変数を埋め込んだタスク(転送設定・データマート定義)を組み込みます。
    image.png

  3. タスク右側の三点リーダー>鉛筆アイコンをクリックします。タスク編集画面が表示されます。
    image.png

  4. タスク編集画面にて、カスタム変数でループ実行を有効化し、ループの種類を選択します。
    image.png

  5. 対象カスタム変数を選択し、それぞれ適宜設定します。
    各設定項目について、詳しくは後述の「ループの種類ごとの設定項目」を参照ください。

  6. ワークフロージョブを実行します。
    カスタム変数でループ実行が有効のタスクジョブは、カスタム変数に順番に値が展開される形でループ実行されます。
    以下は、ループ実行されたタスクジョブの実行ログです。
    image.png

ループの種類ごとの設定項目

文字列展開でループ

カスタム変数に展開したい文字列を入力します。
展開したい文字列を追加したい場合は、ループを追加をクリックしてください。
なお、ループ実行の際は、入力した順に文字列が展開されます。
image.png

コピー・アンド・ペーストによる一括入力

以下のようなテキストをコピー・アンド・ペーストすることで、一括入力できます。

hoge
fuga
piyo

期間(相対指定)でループ

期間、ループ間隔、展開設定を適宜設定します。
なお、ループ実行の際は、カスタム変数出力イメージの順に日付が展開されます。

custom_loop_003.png

クエリ結果でループ

DWH上でクエリを実行し、その結果の値をカスタム変数に展開できます。
クエリ結果でループは、以下のDWHにて対応しています。

  • Amazon Redshift
  • Google BigQuery
  • Snowflake

以下の画面キャプチャは「BigQueryのクエリ結果でループ」の例です。

image.png


この記事は役に立ちましたか?