スクリプトテンプレートは、SQL プロセスを抽象化してコードの再利用を容易にします。スクリプトテンプレートを使用する前に、ビジネス要件を満たすテンプレートを作成する必要があります。本トピックでは、DataStudio のスクリプトテンプレート管理インターフェイスでスクリプトテンプレートを作成・共有・アップグレードする方法と、参照レコードを確認する方法について説明します。
コンポーネントの概要
多くの MaxCompute ビジネスシナリオでは、類似した SQL プロセスが存在します。これらのプロセスは、スキーマが同一またはデータの型が互換性のある入力テーブルおよび出力テーブルを使用しますが、テーブル名は異なります。コードを再利用するために、開発者はそのような SQL プロセスを SQL スクリプトテンプレートとして抽象化できます。このテンプレートでは、変動する入力テーブルを表すために入力パラメーターを、変動する出力テーブルを表すために出力パラメーターを使用します。
SQL スクリプトテンプレートノードを使用する際には、リストからビジネスプロセスに合致するテンプレートを選択し、コードを編集せずに具体的な入力テーブルおよび出力テーブルを設定できます。これにより、新しい SQL スクリプトテンプレートノードが生成され、開発効率が大幅に向上し、重複作業を回避できます。SQL スクリプトテンプレートノードが生成された後は、標準の SQL ノードと同様に公開およびスケジュール設定が可能です。
現時点では、MaxCompute コンピュートエンジンのみが SQL スクリプトテンプレートをサポートしています。
注意事項
エディション要件: DataWorks Standard Edition 以降でのみサポートされています。
権限要件: スクリプトテンプレートを作成および使用するには、DataWorks ワークスペースにおいて 開発 権限が必要です。詳細については、「ワークスペースレベルのモジュール権限制御」をご参照ください。
コンポーネントの種類
コンポーネントは、ワークスペース固有スクリプトテンプレートまたは公開コンポーネントのいずれかに分類されます。この分類は、コンポーネント開発者が作成時に設定できます。
ワークスペース SQL スクリプトテンプレート: コンポーネントが公開されると、デフォルトでその DataWorks ワークスペースのメンバーのみが利用可能になります。コンポーネントを使用するには、当該ワークスペースのメンバーである必要があります。詳細については、「ワークスペースレベルのモジュール権限制御」をご参照ください。
公開 SQL スクリプトテンプレート: 開発者は、公開 SQL スクリプトテンプレート エリアから汎用的なスクリプトテンプレートをテナント全体に公開できます。テンプレートが公開されると、テナント内のすべてのユーザーがこの公開スクリプトテンプレートを利用可能になります。
コンポーネント管理へのアクセス
DataWorks コンソールの ワークスペース ページに移動します。上部のナビゲーションバーで目的のリージョンを選択し、目的のワークスペースを見つけ、操作 列で を選択します。
左側のナビゲーションウィンドウで
をクリックし、スクリプトテンプレート管理ページに移動します。
コンポーネントの使用フロー
ステップ 1:コンポーネントの定義
開発者は、Data Studio の SQL スクリプトテンプレート ページで、プロシージャ本体のコードおよびその入力パラメーターと出力パラメーターを定義できます。抽象的な SQL プロセスを記述することで、入力パラメーターを使用して指定された入力テーブルを処理し、出力パラメーターで表される価値ある出力テーブルを生成できます。コード内の入力パラメーターおよび出力パラメーターの形式は @@{parameter_name} です。
ワークスペース固有スクリプトテンプレート管理エリアで、
をクリックし、SQL スクリプトテンプレートの作成 を選択します。また、スクリプトテンプレートのフォルダ構成を計画するために、最初に ディレクトリの作成 を選択し、フォルダを右クリックして SQL スクリプトテンプレートの作成 を選択することもできます。説明このワークスペースのメンバーが作成したコンポーネントは、ワークスペース SQL スクリプトテンプレート 配下で管理されます。
公開済みのコンポーネントは、公開 SQL スクリプトテンプレート 配下に表示されます。
コンポーネント情報を設定します。
プロシージャ本体を設定します。
プロシージャ本体は、スクリプトテンプレートの実装コードです。抽象的な SQL コードを記述し、
@@{parameter_name}形式を使用して入力パラメーターおよび出力パラメーターを含めることで、指定された入力テーブルを入力パラメーターで処理し、価値ある出力テーブルを生成できます。後ほどスクリプトテンプレートを使用する際には、異なる入力パラメーターおよび出力パラメーターを設定するだけで、正しい実行可能な 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 が利用可能になったことに気付きます。ユーザーはスクリプトテンプレートを開き、両方のバージョンの詳細を確認・比較し、新バージョンがより優れたビジネス成果を提供すると判断したため、ノードを最新バージョンに更新します。
参照レコードの確認
スクリプトテンプレートエディターページの右側で、参照レコードをクリックすると、現在のスクリプトテンプレートを参照しているノードを確認できます。これにより、テンプレートに対する変更の影響を推定するのに役立ちます。
その他の操作
コンポーネントのクローン
クローン機能を使用して、既存のスクリプトテンプレートから新しいスクリプトテンプレートを迅速に作成できます。クローンされる内容には、スクリプトテンプレートのコード、パラメーター構成、デバッグ構成のスクリプトパラメーターが含まれます。
左側の ワークスペース SQL スクリプトテンプレート ペインで、クローンするコンポーネントの名前を右クリックし、ポップアップメニューから クローン を選択します。
ダイアログボックスで、コンポーネントの 名前 および パス を変更する(またはデフォルト値を維持する)し、OK をクリックしてクローンを開始します。
クローンが完了すると、ワークスペース SQL スクリプトテンプレート セクションで新しく生成されたスクリプトテンプレートを確認できます。
バージョン管理
バージョン管理機能を使用して、スクリプトテンプレートを特定の過去のバージョンに復元できます。この機能により、バージョンの表示および比較も可能になり、差分を分析して調整を行うのに役立ちます。
左側の ワークスペース SQL スクリプトテンプレート ペインで、コンポーネントの名前をダブルクリックして編集ページを開き、そのバージョンを表示および管理します。
エディターページの右側で、バージョン をクリックします。バージョン ページで、開発履歴 および デプロイメント履歴 を表示および管理できます。
バージョンの表示:
開発履歴 または デプロイメント履歴 タブで、表示したいスクリプトテンプレートのバージョンを見つけます。
操作 列の 表示 をクリックして詳細ページに移動し、スクリプトテンプレートのコードおよびスケジュール設定を確認します。
バージョンの比較:
開発履歴 または デプロイメント履歴 タブで、スクリプトテンプレートの異なるバージョンを比較できます。以下の例では、開発レコードを使用して比較操作を示します。
開発環境または本番環境内でのバージョン比較: 開発履歴 タブで、2 つのバージョンを選択し、上部の 比較するバージョンを選択 ボタンをクリックします。これにより、異なるバージョンのスクリプトテンプレートコードおよびスケジュール設定を比較できます。
開発環境と本番環境の比較:
開発履歴 タブで、特定のバージョンのスクリプトテンプレートを見つけます。
操作 列の 比較 ボタンをクリックします。詳細ページで、デプロイメント履歴 から比較対象のバージョンを選択します。
バージョンの復元:
開発履歴 のみから、スクリプトテンプレートを特定の過去のバージョンに復元できます。開発履歴 タブで対象のバージョンを見つけ、操作 列の 復元 ボタンをクリックします。この操作により、スクリプトテンプレートが選択されたバージョンに復元されます。