すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:タイムウィンドウSQL

最終更新日:Jul 22, 2024

複数日ループ実行機能を使用して、一定期間内に複数の日レベルのSQLタスクを実行できます。 たとえば、複数のSQLタスクを並行して実行して、過去7日間の行動データから毎日のインサイトを抽出し、レコメンデーションエンジンのデータをバックフィルできます。

制限事項

  • この機能は、日レベルのデータバックフィルループにのみ適用できます。

  • 定期的なスケジューリングを使用してパイプラインをスケジュールする前に、複数日付のループ実行を無効にします。 これにより、運用環境で追加のデータバックフィルタスクが実行されなくなり、必要以上のデータが生成されなくなります。

  • [パラメーターの設定] タブで [最大同時発生数] パラメーターを設定した場合、設定は設定対象のノードでのみ有効になります。 複数のノードでデータバックフィルを実行する場合は、現在のプロジェクトのリソースでサポートされている同時実行制限の合計に注意してください。

使用上の注意

Time Window SQLコンポーネントは、最大4つの入力と1つの出力をサポートします。 以下の点にご注意ください。

  • アップストリームコンポーネントとTime Window SQLコンポーネントの間に線を引くと、選択した入力によって入力テーブルのマップ名が決まります。 入力テーブルのマッピングされた名前は、t1、t2、t3、またはt4であり得る。 元のテーブル名を指定する代わりに、${t1}${t2}${t3}${t4} 変数を直接使用して入力テーブルを指定できます。

  • SQLスクリプトで ${o1} 変数を使用して、出力テーブルを指定できます。

  • SQLスクリプトの ${lifecycle} 変数を使用して、ワークスペースの一時テーブルのライフサイクル設定を取得できます。 デフォルトのライフサイクルは28日です。 ワークスペースの一時テーブルのライフサイクルの詳細については、「ワークスペースの管理」をご参照ください。

  • システムがテーブル作成ステートメントを追加するかどうかを選択した場合、SQLスクリプトの最後のステートメントはselectステートメントである必要があります。 それ以外にも、必要な他のSQL文をスクリプト内に含めることができます。 SELECTステートメントのクエリ結果を格納する一時テーブルが自動的に作成されます。 SQLスクリプトでCREATE TABLEステートメントを指定して一時テーブルを作成する場合は、テーブルのライフサイクルを設定する必要があります。 詳細については、「ワークスペースの管理」をご参照ください。

Machine Learning Designerでのコンポーネントの設定

Machine Learning Designerを使用すると、Machine Learning Platform for AI (PAI) コンソールでコンポーネントを構成できます。 下表に、各パラメーターを説明します。

パラメーター

説明

ビジネスベース日

このパラメーターは、次のいずれかの方法で設定できます。

  • 日付を直接入力します。 例: 20230210。

  • グローバル変数を参照します。 詳細については、「高度な機能: グローバル変数」をご参照ください。

マルチ日付ループ実行を開くかどうか

複数日付ループの実行はデフォルトで有効になっています。 マルチデータループの実行が無効になっている場合、このコンポーネントはSQLスクリプトコンポーネントと同じように機能します。

実行時間ウィンドウ

値には、整数と時間範囲を含めることができます。 時間範囲はコンマ (,) で区切ります。

システムは、ビジネス基準日に基づいて実行時間を計算し、指定された時間にサブタスクを開始します。 最大100のサブタスクを実行できます。

たとえば、業務基準日を20230210に設定し、実行時間ウィンドウを (-4,-2],0に設定した場合、20230207、20230208、および20230210で取得したデータに対してタスクが実行されます。

同時実行の最大数

リソースの競合を回避するために、一度に多数の同時実行タスクを実行しないことをお勧めします。

日付形式

この値は、${pai.system.cycledate} のシステム変数を生成するために使用されます。 有効な値:

  • yyyyMMdd (デフォルト)

  • yyyy-MM-dd

  • yyyy/MM/dd

例: ビジネスベースの日付を20230210に設定し、日付形式をyyyy-MM-ddに設定した場合、SQLスクリプトの ${pai.system.cycledate} 変数は2023-02-10に変換されます。

システムがテーブル作成ステートメントを追加するかどうか

  • この機能が有効になっている場合、SQLスクリプトの最後のステートメントはSELECTステートメントである必要があります。 SELECTステートメントのクエリ結果を格納する一時テーブルが自動的に作成されます。

  • この機能が無効になっている場合は、SQL文にデータテーブル ${o1} を作成して、下流に渡す必要があります。

SQLスクリプト

マルチ日付ループの実行が有効になっている場合は、日付をシステム変数 ${pai.system.cycledate} に置き換える必要があります。

例: ビジネスベース日付を20230210に設定し、select * from ${t1} where dt =${ pai.system.cycledate} を指定した場合、次の3つのタスクが実行されます。

  • select * from ${t1} ここでdt=2022-02-07

  • select * from ${t1} ここでdt=2022-02-08

  • select * from ${t1} ここでdt=2022-02-10

その他の機能は、SQLスクリプトコンポーネントと同じです。