スクリプトテンプレートは、入出力パラメーターを含む、再利用可能な SQL コードプロセスのテンプレートです。 スクリプトテンプレートを使用すると、フィルター処理、結合、集約などの操作を実行してソーステーブルのデータを処理し、出力テーブルを生成できます。 このトピックでは、スクリプトテンプレートの概要と、その作成方法および使用方法について説明します。
スクリプトテンプレートの概要
はじめに
多くのデータ処理シナリオでは、入出力テーブルの名前のみが異なり、スキーマは同一または互換性がある類似の SQL コードを記述することがあります。 このような冗長な作業を避けるため、このロジックをスクリプトテンプレートにカプセル化できます。 変数となるテーブル名を入出力パラメーターとして定義することで、異なるデータソースに対して同じ SQL コードを再利用できます。
SQL スニペットノードを作成した後、他の SQL ノードと同様にデプロイおよびスケジュールできます。 このアプローチにより、コードの再利用が促進され、開発効率が大幅に向上します。
権限
スクリプトテンプレートを作成して使用するには、DataWorks ワークスペースで 開発者 ロールが必要です。 ロールの割り当て方法の詳細については、「ワークスペースメンバーの追加とロールの割り当て」をご参照ください。
制限事項
-
SQL スニペットノード機能は、DataWorks Standard Edition 以降でのみ利用可能です。 詳細については、「DataWorks のエディションと機能」をご参照ください。
-
現在のワークスペースのメンバーによって作成されたスクリプトテンプレートは、コンポーネント タブに表示されます。
-
テナントメンバーによって作成されたスクリプトテンプレートは、共通コンポーネント タブに表示されます。
スクリプトテンプレートの種類
スクリプトテンプレートは、ワークスペースレベルと公開の 2 種類に分類されます。 スクリプトテンプレートを作成する開発者は、その種類を定義できます。
-
ワークスペースレベルのスクリプトテンプレート:ワークスペースレベルのスクリプトテンプレートが公開されると、同じ DataWorks ワークスペース内のユーザーのみが使用できます。 この種類のテンプレートを使用するには、ワークスペースのメンバーである必要があります。 詳細については、「ワークスペースメンバーの追加とロールの割り当て」をご参照ください。
-
公開スクリプトテンプレート:開発者は 公開スクリプトテンプレート 機能を使用して、汎用的なスクリプトテンプレートをテナント全体で利用可能にできます。 公開されると、そのスクリプトテンプレートはテナント内のすべてのユーザーが利用できるようになります。
ワークフロー
DataWorks で作成された コンポーネント は、SQL スクリプトテンプレートノード と一緒に使用する必要があります。 ワークフローは次のとおりです:
-
DataStudio の コンポーネントの管理 ペインで、開発者は SQL コードプロセスとその入出力パラメーターを定義します。 この抽象的な SQL プロセスは、指定された入力テーブルを入力パラメーターとして受け取り、それらを処理して出力テーブルを生成します。 コード内では、入出力パラメーターは
@@{ParameterName}のフォーマットを使用します。-
次の種類の入力パラメーターがサポートされています:
-
テーブル:テーブルベースの入力に使用します。
-
文字列:フィルター条件などの変数値として SQL に渡すために使用します。
-
-
実際には、出力パラメーターはテーブル型として設定する必要があります。
-
-
データ開発 ページで、ユーザーは SQL スニペットノードを作成し、必要なスクリプトテンプレートを参照して、入出力パラメーターを設定してコードを再利用します。
スクリプトテンプレートの定義
スニペットページへの移動
-
データ開発 ページに移動します。
DataWorks コンソールにログインします。 対象リージョンで、左側のナビゲーションウィンドウの をクリックします。 ドロップダウンリストからワークスペースを選択し、移動 データ開発 をクリックします。
-
左側のナビゲーションウィンドウで コンポーネントの管理 をクリックして、スニペット管理ページに移動します。
説明左側のナビゲーションウィンドウに コンポーネントの管理 が表示されない場合は、左下隅の
アイコンをクリックし、[モジュール管理] セクションで追加します。
スクリプトテンプレートの作成と設定
このセクションでは、開発者が コンポーネントの管理 でスクリプトテンプレートを作成し、特定の SQL プロセスを再利用可能なテンプレートとして抽象化する方法について説明します。 スクリプトテンプレートは通常、SQL コードプロセス、入力パラメーター、および出力パラメーターで構成されます。 SQL コードプロセスは、テンプレートの機能の実装コードを定義します。 このプロセス内で、@@{VariableName} 形式を使用して、入力テーブル、文字列、および出力テーブルのプレースホルダーを定義します。 これらのプレースホルダーは、テンプレートの入出力パラメーターとして機能し、SQL コードの再利用を可能にします。
スクリプトテンプレートには、複数の入出力パラメーターを設定できます。
たとえば、プロセス本体のコードは INSERT OVERWRITE TABLE @@{my_output} SELECT ... FROM @@{my_input} WHERE col1 = @@{my_input_parameter1} AND col2 = @@{my_input_parameter2} となります。ここで、@@{my_output} は出力テーブルパラメーター、@@{my_input} は入力テーブルパラメーター、@@{my_input_parameter1} と @@{my_input_parameter2} は入力文字列パラメーターです。
ステップ 1:スクリプトテンプレートの作成
スニペットページでは、次のいずれかの方法でスクリプトテンプレートを作成できます:
-
方法 1:左側の [スニペット] パネルで、[スニペット] ノードを右クリックし、[新規作成] > [スニペット] を選択します。
-
方法 2:[スニペット] パネルの上部にあるツールバーで、新規作成アイコンをクリックし、[新規作成] > [スニペット] を選択します。
-
現在のワークスペースのメンバーによって作成されたスクリプトテンプレートは、コンポーネント タブに表示されます。
-
テナントメンバーによって作成されたスクリプトテンプレートは、共通コンポーネント タブに表示されます。
ステップ 2:スクリプトテンプレートの設定
ステップ 3:スクリプトテンプレートの保存とコミット
アイコンをクリックしてスクリプトテンプレートを保存し、
アイコンをクリックしてコミットします。 スクリプトテンプレートが作成されると、SQL スニペットノードでそれを参照して、ビジネスに必要なテーブルを迅速に生成できます。 詳細については、「スクリプトテンプレートの参照」をご参照ください。
スクリプトテンプレートの参照
前提条件
-
スクリプトテンプレートが作成され、使用できる状態になっています。 詳細については、「スクリプトテンプレートの定義」をご参照ください。
-
SQL スニペットノードを作成します。 詳細については、「MaxCompute ノードの作成と管理」をご参照ください。
スクリプトテンプレートの参照
SQL スニペットノードの設定タブで、スクリプトテンプレートを参照します。 この例では、[get_top_n (V1)] スクリプトテンプレートを選択し、右側の [パラメーター設定] パネルでパラメーター値を設定します:
-
入力パラメーター [myinputtable]: 型はテーブル、値は
company_sales_recordです。 -
入力パラメーター [topn]:型は文字列、値は
10 -
出力パラメーター [myoutput]:型はテーブル、値は
company_sales_top_n
-
使用するスクリプトテンプレートを選択します。
利用可能なスクリプトテンプレートがない場合は、作成します。 詳細については、「スクリプトテンプレートの定義」をご参照ください。
-
選択したスクリプトテンプレートの新しいバージョンが存在する場合、コードバージョンの更新 をクリックして最新バージョンを使用できます。
-
コンポーネントを開く をクリックして、スクリプトテンプレートの詳細を表示します。
-
-
ユースケースに基づいて、スクリプトテンプレートのパラメーター値を設定します。
次のステップ
ノードの開発が完了したら、次の操作を実行できます:
-
スケジューリングプロパティの設定:ノードが定期的に実行される必要がある場合は、再実行設定や依存関係などのスケジューリングプロパティを設定します。 詳細については、「タスクスケジューリング設定の概要」をご参照ください。
-
ノードのデバッグの実行:ノードを実行してコードをテストし、ロジックを検証します。 詳細については、「ノードのデバッグプロセス」をご参照ください。
-
タスクのデプロイ:開発が完了したら、タスクをデプロイします。 デプロイされると、ノードはスケジューリング設定に従って定期的に実行されます。 詳細については、「タスクのデプロイ」をご参照ください。
スクリプトテンプレートの管理
公開と使用状況の表示
スクリプトテンプレートのアップグレード
リファレンス
UI 機能
ベストプラクティス
前提条件
-
SQL スニペットノードが作成されていること。 詳細については、「MaxCompute ノードの作成と管理」をご参照ください。
-
[ODPS SQL] ノードで入力テーブルと出力テーブルを作成します。