スクリプトテンプレートは SQL 処理を抽象化し、コードの再利用を容易にします。スクリプトテンプレートを使用するには、まずビジネス要件に合致するテンプレートを作成する必要があります。本トピックでは、スクリプトテンプレートの作成、共有、アップグレード方法、および DataStudio のスクリプトテンプレート管理インターフェイスで参照記録を確認する方法について説明します。
コンポーネントの概要
多くの MaxCompute ビジネスシナリオにおいて、類似した SQL 処理が繰り返し登場します。これらの処理では、入力テーブルおよび出力テーブルのスキーマまたはデータの型が互換性を持つものの、テーブル名が異なる場合があります。コードの再利用を実現するため、開発者はこのような SQL 処理を SQL スクリプトテンプレートとして抽象化できます。このテンプレートでは、可変の入力テーブルを表すために入力パラメーターを、可変の出力テーブルを表すために出力パラメーターを使用します。
SQL スクリプトテンプレートノードを使用する際には、リストからビジネスプロセスに適合するテンプレートを選択します。その後、コードを編集することなく、ビジネス要件に応じた具体的な入力テーブルおよび出力テーブルを設定できます。この操作により、新しい SQL スクリプトテンプレートノードが生成され、開発効率が大幅に向上し、重複作業を回避できます。生成された SQL スクリプトテンプレートノードは、標準の SQL ノードと同様に、公開およびスケジュール設定が可能です。
現在、SQL スクリプトテンプレートは MaxCompute コンピュートエンジンのみでサポートされています。
注意事項
エディション要件: DataWorks Standard Edition 以降でのみ利用可能です。
権限要件: スクリプトテンプレートの作成および使用には、DataWorks ワークスペースにおける 開発 権限が必要です。詳細については、「ワークスペースレベルのモジュール権限制御」をご参照ください。
コンポーネントの種類
コンポーネントは、ワークスペース固有スクリプトテンプレートまたはパブリックコンポーネントのいずれかに分類されます。コンポーネント開発者は、コンポーネント作成時にこの分類を設定できます。
ワークスペース SQL スクリプトテンプレート: コンポーネントを公開すると、デフォルトでその DataWorks ワークスペースのメンバーのみが利用可能になります。このコンポーネントを利用するには、当該ワークスペースのメンバーである必要があります。詳細については、「ワークスペースレベルのモジュール権限制御」をご参照ください。
公開 SQL スクリプトテンプレート: 開発者は、公開 SQL スクリプトテンプレート エリアから、汎用的なスクリプトテンプレートをテナント全体に公開できます。テンプレートが公開されると、テナント内のすべてのユーザーがこの公開スクリプトテンプレートを利用できます。
コンポーネント管理へのアクセス
DataWorks コンソールの ワークスペース ページに移動します。上部のナビゲーションバーから目的のリージョンを選択します。目的のワークスペースを見つけ、操作 列の を選択します。
左側のナビゲーションウィンドウで
をクリックして、スクリプトテンプレート管理ページに移動します。
コンポーネントの使用フロー
ステップ 1:コンポーネントの定義
開発者は、DataStudio の SQL スクリプトテンプレート ページを使用して、プロシージャ本体のコードおよびその入力・出力パラメーターを定義できます。抽象化された SQL 処理を記述することで、入力パラメーターを用いて指定された入力テーブルを処理し、出力パラメーターで表される価値ある出力テーブルを生成できます。コード内における入力および出力パラメーターの書式は、@@{parameter_name} です。
ワークスペース固有スクリプトテンプレート管理エリアで
をクリックし、SQL スクリプトテンプレートの作成 を選択します。また、先に ディレクトリの作成 を選択してスクリプトテンプレートのフォルダ構成を計画した後、フォルダを右クリックして SQL スクリプトテンプレートの作成 を選択することもできます。説明当該ワークスペースのメンバーが作成したコンポーネントは、ワークスペース SQL スクリプトテンプレート 配下で管理されます。
公開済みのコンポーネントは、公開 SQL スクリプトテンプレート 配下で確認できます。
コンポーネント情報を設定できます。
プロシージャ本体の設定
プロシージャ本体は、スクリプトテンプレートの実装コードです。
@@{parameter_name}書式を用いた抽象化 SQL コードを記述することで、入力および出力パラメーターを含めることができます。これにより、入力パラメーターを用いて指定された入力テーブルを処理し、価値ある出力テーブルを生成できます。その後、スクリプトテンプレートを利用する際に、異なる入力および出力パラメーターを設定するだけで、正しく実行可能な SQL コードを生成できます。入力パラメーターの設定
コンポーネント編集ページの右側で、[パラメーター設定] をクリックします。プロシージャ本文の入力パラメーターを定義するには、[入力パラメーター] の右側にある
アイコンをクリックします。入力パラメーターは、[テーブル] または [文字列] として指定できます。説明また、スクリプトテンプレートエディター画面の上部にある [I/O パラメーターの解析] をクリックすることもできます。この機能により、コードから自動的に入力および出力パラメーターを検出できます。その後、以下の表に従ってパラメーターを構成できます。
テーブル
適用シーン
スクリプトテンプレートがソーステーブルのデータを処理し、単一かつ定数カテゴリの出力結果を生成する場合に使用します。
構成パラメーターおよび説明
主なパラメーター: パラメーター定義
構成の説明: このパラメーターは、フィールド名、データの型、説明を含むテキスト形式で入力テーブルのスキーマを定義します。この定義により、ユーザーはスクリプトテンプレートを利用する際に、設定する入力テーブルがここで定義されたフィールド数および互換性のあるデータの型と一致することを把握できます。これにより、設定された入力テーブルと定義された入力テーブルとの間でフィールド数やデータの型が不一致となることによる実行時エラーを防止できます。
説明この定義は参考用であり、入力パラメーターの構成をヒントするものであり、即時のチェックは実行されません。
例:
以下の形式でパラメーターを定義することを推奨します:
Field1_Name Field1_Type Field1_Comment Field2_Name Field2_Type Field2_Comment ... Fieldn_Name Fieldn_Type Fieldn_Commentサンプル構成:
area_id STRING 'area ID' city_id STRING 'city ID' order_amt DOUBLE 'Order amount'
文字列
適用シーン
ソーステーブルのデータを処理する際に、変数を用いて入力パラメーターの値を制御する場合に使用します。
構成パラメーターおよび説明
主なパラメーター: デフォルト値
構成の説明: このパラメーター型に対してデフォルト値を設定できます。デフォルト値が設定されている場合、スクリプトテンプレート実行時にその値が使用されます。
例:
シナリオ 1:スクリプトテンプレートの出力テーブルは、各リージョンにおける売上上位 N 都市の情報を表示する必要があります。この場合、N をスクリプトテンプレートの入力パラメーターとして設定し、文字列パラメーターを用いて N の値を制御できます。
シナリオ 2:スクリプトテンプレートの出力テーブルは、ある都道府県の総売上を表示する必要があります。この場合、都道府県名を文字列パラメーターとして設定し、スクリプトテンプレートの入力パラメーターとして使用できます。異なる都道府県を指定することで、対応する都道府県の売上データを取得できます。
出力パラメーターの設定
プロシージャ本体の出力パラメーターを定義します。これは、スクリプトテンプレートの最終的な出力テーブルを表します。他のユーザーがスクリプトテンプレートをより容易に利用できるよう、出力パラメーター設定内で出力テーブルのスキーマを指定できます。
コンポーネント編集ページの右側で、[パラメーター設定] をクリックします。[出力パラメーター] の右側にある
アイコンをクリックして、プロシージャ本文の出力パラメーターを定義します。説明また、スクリプトテンプレートエディター画面の上部にある [I/O パラメーターの解析] をクリックすることもできます。この機能により、コードから自動的に入力および出力パラメーターを検出できます。その後、以下の表に従ってパラメーターを構成できます。
主なパラメーター: パラメーター定義
構成の説明: このパラメーターは、フィールド名、データの型、説明を含むテキスト形式で出力テーブルのスキーマを定義します。この定義により、ユーザーはスクリプトテンプレートを利用する際に、設定する出力テーブルがここで定義されたフィールド数および互換性のあるデータの型と一致することを把握できます。これにより、設定された出力テーブルと定義された出力テーブルとの間でフィールド数やデータの型が不一致となることによる実行時エラーを防止できます。
説明この定義は参考用であり、出力パラメーターの構成をヒントするものであり、即時のチェックは実行されません。
例:
以下の形式でパラメーターを定義することを推奨します:
Field1_Name Field1_Type Field1_Comment Field2_Name Field2_Type Field2_Comment ... Fieldn_Name Fieldn_Type Fieldn_Commentまた、処理ニーズに応じて、順位や総収益などの集計結果用フィールドを出力パラメーター定義に追加できます。例えば:
area_id STRING 'area ID' city_id STRING 'city ID' order_amt DOUBLE 'Order amount' rank BIGINT 'rank'
保存 および コミット をクリックします。
スクリプトテンプレートが作成された後、SQL スクリプトテンプレートノードでこれを参照して、ビジネス要件に応じたターゲットテーブルを迅速に生成できます。詳細については、「ステップ 2:スクリプトテンプレートの参照」をご参照ください。
(任意)SQL スクリプトテンプレートを公開 をクリックして、汎用的なスクリプトテンプレートをテナント全体に公開できます。公開後、公開 SQL スクリプトテンプレート エリアに表示されます。公開されたスクリプトテンプレートは、テナント内のすべてのユーザーが利用できます。
ステップ 2:コンポーネントの参照
以下のようにコンポーネントを参照できます。
Data Studio 内の SQL スクリプトテンプレートノードからの参照
Data Studio ページに移動し、SQL スクリプトテンプレートノードを作成してスクリプトテンプレートを参照できます。その後、テンプレート内の入力および出力パラメーターを置き換えることで、コードを再利用できます。
Data Studio ページの左側ナビゲーションウィンドウで
をクリックして、Data Studio に移動します。ワークスペースディレクトリ 内で、ビジネス要件に応じて SQL スクリプトテンプレートノードを作成する場所を計画します。フォルダを右クリックするか、
をクリックして、 を選択し、ノードに任意の名前を入力します。ノードエディター画面で、右側の SQL スクリプトテンプレートの設定 をクリックし、その後 SQL スクリプトテンプレート をクリックします。
スクリプトテンプレートを選択すると、コードが自動的に SQL スクリプトテンプレートエディター画面に展開され、SQL スクリプトテンプレートの設定 で各パラメーターの値を定義できます。
ワークスペース SQL スクリプトテンプレートからの参照
SQL スクリプトテンプレート ページに移動し、参照するスクリプトテンプレートを見つけ、直接参照して SQL スクリプトテンプレートノードを作成できます。その後、テンプレート内の入力および出力パラメーターを置き換えることで、コードを再利用できます。
Data Studio ページの左側ナビゲーションウィンドウで
をクリックして、スクリプトテンプレート管理ページに移動します。ワークスペース SQL スクリプトテンプレート 内で、対象のコンポーネントを右クリックし、SQL スクリプトテンプレートの参照 を選択します。
画面上の指示に従い、SQL スクリプトテンプレートノードを作成する場所を選択し、名前を指定します。
ノードが作成されると、スクリプトテンプレートのコードが自動的に SQL コンポーネントエディター画面に展開されます。SQL スクリプトテンプレートの設定 で各パラメーターの値を定義できます。
公開 SQL スクリプトテンプレートからの参照
SQL スクリプトテンプレート ページに移動し、他のテナントが公開したスクリプトテンプレートを見つけ、直接参照して SQL スクリプトテンプレートノードを作成できます。その後、テンプレート内の入力および出力パラメーターを置き換えることで、コードを再利用できます。
Data Studio ページの左側ナビゲーションウィンドウで
をクリックして、スクリプトテンプレート管理ページに移動します。公開 SQL スクリプトテンプレート セクションで、対象のスクリプトテンプレートを見つけ、参照 をクリックします。
画面上の指示に従い、SQL スクリプトテンプレートノードを作成する場所を選択し、名前を指定します。
ノードが作成されると、スクリプトテンプレートのコードが自動的に SQL コンポーネントエディター画面に展開されます。SQL スクリプトテンプレートの設定 で各パラメーターの値を定義できます。
コンポーネントのアップグレード
アップグレード操作:スクリプトテンプレート開発者
開発者は、必要に応じてスクリプトテンプレートのコードおよびパラメーター設定を編集できます。変更を保存およびコミットすると、スクリプトテンプレートは新バージョンへアップグレードされます。バージョン タブで、各バージョンの詳細を確認できます。
参照バージョンのアップグレード:スクリプトテンプレートユーザー
スクリプトテンプレートがアップグレードされた後、ご利用の SQL スクリプトテンプレートノードがそれを参照している場合、最新バージョンを利用するかどうかを選択できます。
新バージョンを利用しない場合は、元のバージョンを引き続き使用できます。
新バージョンを利用する場合は、新バージョンのパラメーター設定がご利用の SQL スクリプトテンプレートノードにおいて依然として有効であるかを確認してください。新バージョンの説明に基づいて調整を行い、その後ノードをコミットおよび公開します。コミットおよび公開の手順は、標準の SQL ノードと同一です。
アップグレードのシナリオ例
開発者が SQL スクリプトテンプレートのバージョン V1 を作成し、他のユーザーがこれを利用しています。その後、開発者がスクリプトテンプレートをバージョン V2 にアップグレードしました。テンプレートを利用するユーザーは、新バージョン V2 が利用可能であることに気づきます。ユーザーはスクリプトテンプレートを開き、両方のバージョンの詳細を表示・比較します。新バージョンがより優れたビジネス成果を提供することを確認した後、ノードを最新バージョンに更新します。
参照記録の表示
スクリプトテンプレートエディター画面の右側で、[参照記録] をクリックすると、現在のスクリプトテンプレートを参照しているノードを確認できます。これにより、テンプレートに対する変更が及ぼす影響を推定できます。
その他の操作
コンポーネントのクローン
クローン機能を用いることで、既存のスクリプトテンプレートから新しいスクリプトテンプレートを迅速に作成できます。クローンされる内容には、スクリプトテンプレートのコード、パラメーター構成、および Run Configuration から取得したスクリプトパラメーターが含まれます。
左側の ワークスペース SQL スクリプトテンプレート パネルで、クローンするコンポーネントの名前を右クリックし、ポップアップメニューから クローン を選択します。
ダイアログボックスで、名前 および パス を変更するか(またはデフォルト値をそのまま使用し)、OK をクリックしてクローンを開始します。
クローンが完了すると、ワークスペース SQL スクリプトテンプレート セクションで新たに生成されたスクリプトテンプレートを確認できます。
バージョン管理
バージョン管理機能を用いることで、スクリプトテンプレートを特定の履歴バージョンに復元できます。また、バージョンの表示および比較も可能であり、差分の分析および調整に役立ちます。
左側の ワークスペース SQL スクリプトテンプレート パネルで、コンポーネントの名前をダブルクリックして編集ページを開き、バージョンの表示および管理を行います。
エディター画面の右側で バージョン をクリックします。バージョン ページで、開発履歴 および デプロイメント履歴 を表示および管理できます。
バージョンの表示:
開発履歴 または デプロイメント履歴 タブで、表示したいスクリプトテンプレートのバージョンを見つけます。
表示 を 操作 列でクリックし、詳細ページに移動してスクリプトテンプレートのコードおよびスケジュール構成を確認します。
バージョンの比較:
開発履歴 または デプロイメント履歴 タブで、スクリプトテンプレートの異なるバージョンを比較できます。以下の例では、開発記録を用いて比較操作を説明します。
開発環境または本番環境におけるバージョンの比較: 開発履歴 タブで、2 つのバージョンを選択し、上部の 比較対象バージョンの選択 ボタンをクリックします。これにより、異なるバージョンのスクリプトテンプレートのコードおよびスケジュール構成を比較できます。
開発環境と本番環境の比較:
開発履歴 タブで、スクリプトテンプレートの特定のバージョンを特定します。
比較 ボタンを 操作 列でクリックします。詳細ページで、デプロイメント履歴 から比較対象のバージョンを選択します。
[復元] バージョン:
スクリプトテンプレートを特定の履歴バージョンに復元するには、開発履歴 からのみ可能です。開発履歴 タブで、対象のバージョンを見つけ、復元 ボタンを 操作 列でクリックします。この操作により、スクリプトテンプレートが選択したバージョンに復元されます。