コンポーネントは、SQL プロセスを再利用可能な SQL テンプレートに抽象化するために使用されます。コンポーネントを使用する前に、ビジネス要件を満たすコンポーネントを作成する必要があります。このトピックでは、DataStudio のコンポーネント管理インターフェイスでコンポーネントを作成する方法について説明します。このトピックでは、コンポーネントの共有、アップグレード、参照レコードの表示などの管理操作を実行する方法についても説明します。
コンポーネントの概要
多くの MaxCompute ビジネスプラクティスには、類似した SQL コードプロセスが存在します。これらのプロセスの入力テーブルと出力テーブルは、多くの場合、同じスキーマまたは互換性のあるデータ型を持ちますが、テーブル名は異なります。このシナリオでは、コンポーネント開発者は SQL プロセスを SQL スクリプトテンプレートノードに抽象化できます。可変の入力テーブルと出力テーブルをパラメーターとして定義することにより、開発者は SQL コードを再利用できます。
SQL スクリプトテンプレートノードを使用する場合、ビジネスプロセスに一致するコンポーネントリストからコンポーネントを選択し、その入力テーブルと出力テーブルを構成するだけで済みます。これにより、コードを編集することなく、新しい SQL スクリプトテンプレートノードを直接生成できます。このメソッドは、開発効率を大幅に向上させ、冗長な作業を防ぎます。生成された SQL スクリプトテンプレートノードを公開およびスケジューリングする手順は、標準の SQL ノードの手順と同じです。
現在、MaxCompute コンピュートエンジンのみが SQL スクリプトテンプレートをサポートしています。
権限
コンポーネントを作成して使用するには、DataWorks ワークスペースで [開発者] 権限が必要です。詳細については、「ワークスペースレベルのモジュールに対する権限の管理」をご参照ください。
コンポーネントのタイプ
コンポーネントは、ワークスペース固有スクリプトテンプレートと公開スクリプトテンプレートに分類されます。コンポーネントを作成するユーザーであるコンポーネント開発者は、コンポーネントの作成時にタイプを定義できます。
ワークスペース固有スクリプトテンプレート管理: デフォルトでは、コンポーネントが公開された後、DataWorks ワークスペースのメンバーのみがそれを使用できます。詳細については、「ワークスペースレベルのモジュールに対する権限の管理」をご参照ください。
公開スクリプトテンプレート管理: コンポーネント開発者は、[公開コンポーネント管理エリア] に移動して、グローバルに汎用的なコンポーネントをテナント全体に公開できます。コンポーネントが公開されると、テナント内のすべてのユーザーがそれを使用できます。
コンポーネント管理への移動
DataWorks コンソールの ワークスペースページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[アクション] 列で を選択します。
左側のナビゲーションウィンドウで、
をクリックしてコンポーネント管理を開きます。
コンポーネントの使用手順
ステップ 1: コンポーネントの定義
コンポーネント開発者は、DataStudio の [コンポーネント管理] インターフェイスに移動して、プロセス本文のコードと共通ロジックの入力および出力パラメーターを定義できます。入力パラメーターを使用して指定された入力テーブルを処理し、出力パラメーターである価値のある出力テーブルを生成する抽象的な SQL 処理プロシージャを記述できます。コード内の入力および出力パラメーターのフォーマットは @@{パラメーター名} です。
ワークスペース固有スクリプトテンプレート管理エリアで、
をクリックし、[SQL コンポーネントの作成] を選択します。または、[フォルダの作成] を選択してコンポーネントを整理し、フォルダを右クリックして [SQL コンポーネントの作成] を選択することもできます。説明このワークスペースのメンバーによって作成されたコンポーネントは、[プロジェクトコンポーネント管理] で管理されます。
コンポーネントが公開されると、[公開スクリプトテンプレート管理] の下に表示されます。
コンポーネント情報を構成します。
コンポーネントプロセス本文を構成します。
プロセス本文には、コンポーネントの実装コードが含まれています。抽象的な SQL コード (SQL 処理プロシージャ) を記述し、
@@{パラメーター名}フォーマットを使用して入力および出力パラメーターを導入できます。これにより、入力パラメーターを使用して指定された入力テーブルを処理し、ビジネス価値のある出力テーブルを生成できます。コンポーネントを使用するときは、異なる入力パラメーターと出力パラメーターを構成するだけで、テンプレートから正しく実行可能な SQL コードを生成できます。入力パラメーターを構成します。
コンポーネント編集ページの右側のペインで、[パラメーター設定] をクリックします。プロセスの本文の入力パラメーターを定義するには、[入力パラメーター] の右側にある
アイコンをクリックします。パラメーターは [テーブル] または [文字列] タイプに設定できます。説明コンポーネント編集ページの上部にある [入力パラメーターと出力パラメーターの解析] をクリックして、自動解析機能を使用することもできます。この機能は、コードから入力パラメーターと出力パラメーターを自動的に識別します。その後、次の表に基づいてパラメーターを構成できます。
テーブル
シナリオ
コンポーネントを使用してソーステーブルデータを処理するときに、出力結果が単一の定数カテゴリに分類される場合は、このタイプを使用します。
パラメーターと説明
キーパラメーター: [パラメーター定義]。
説明: このパラメーターは、入力テーブルのスキーマをテキスト形式でレンダリングするために使用されます。スキーマには、テーブルのフィールド、フィールドタイプ、およびフィールドの説明を含めることができます。これにより、コンポーネントユーザーは、定義された入力テーブルスキーマと同じ数のパラメーターと互換性のあるタイプを持つ入力テーブルを構成する必要があることを知ることができます。これは、構成された入力テーブルとコンポーネントによって定義された入力テーブルとの間のフィールド数の不一致または互換性のないフィールドタイプによって引き起こされる実行時エラーを防ぐのに役立ちます。
説明この定義は参照用であり、出力パラメーターを構成するための役立つヒントを提供します。即時の強制チェックをトリガーするものではありません。
例:
次のフォーマットでパラメーターを定義することをお勧めします:
フィールド 1 名 フィールド 1 タイプ フィールド 1 コメント フィールド 2 名 フィールド 2 タイプ フィールド 2 コメント ... フィールド n 名 フィールド n タイプ フィールド n コメント例:
area_id STRING 'エリア ID' city_id STRING '都市 ID' order_amt DOUBLE '注文額'
文字列
シナリオ
コンポーネントがソーステーブルデータを処理するときに、変数を伴う入力パラメーターの値を制御するには、このタイプを使用します。
パラメーターと説明
キーパラメーター: [デフォルト値]。
説明: このタイプでは、パラメーターのデフォルト値を設定できます。デフォルト値が設定されると、コンポーネントが使用されるときにデフォルトで使用されます。
例:
シナリオ 1: コンポーネントプロセスの出力テーブルには、各リージョンの上位 N 都市の売上を表示する必要があります。N をコンポーネントの入力パラメーターとして設定できます。N の値は、文字列タイプのパラメーターで制御できます。
シナリオ 2: コンポーネントプロセスの出力テーブルには、ある省の総売上を表示する必要があります。省の文字列をコンポーネントの入力パラメーターとして設定できます。異なる省を指定することで、対応する省の売上データを取得できます。
出力パラメーターを構成します。
プロセス本文の出力パラメーターを定義します。これはコンポーネントの最終的な出力テーブルです。コンポーネントユーザーが使いやすいように、参照用に出力パラメーター構成で出力テーブルのテーブルスキーマを指定できます。
コンポーネント編集ページの右側のペインで、[パラメーター設定] をクリックします。[出力パラメーター] の右側にある
アイコンをクリックして、プロセス本文の出力パラメーターを定義します。説明コンポーネント編集ページの上部にある [入力パラメーターと出力パラメーターの解析] をクリックして、自動解析機能を使用することもできます。この機能は、コードから入力パラメーターと出力パラメーターを自動的に識別します。その後、次の表に基づいてパラメーターを構成できます。
キーパラメーター: パラメーター定義。
説明: このパラメーターは、出力テーブルのスキーマをテキスト形式でレンダリングするために使用されます。スキーマには、テーブルのフィールド、フィールドタイプ、およびフィールドの説明を含めることができます。これにより、コンポーネントユーザーは、定義された出力テーブルスキーマと同じ数のパラメーターと互換性のあるタイプを持つ出力テーブルを構成する必要があることを知ることができます。これは、構成された出力テーブルとコンポーネントによって定義された出力テーブルとの間のフィールド数の不一致または互換性のないフィールドタイプによって引き起こされる実行時エラーを防ぐのに役立ちます。
説明この定義は参照用であり、出力パラメーターを構成するための役立つヒントを提供します。即時の強制チェックをトリガーするものではありません。
例:
次のフォーマットでパラメーターを定義することをお勧めします:
フィールド 1 名 フィールド 1 タイプ フィールド 1 コメント フィールド 2 名 フィールド 2 タイプ フィールド 2 コメント ... フィールド n 名 フィールド n タイプ フィールド n コメントさらに、目的の処理結果に基づいて、要約された出力結果のフィールドを出力パラメーター定義に追加できます。たとえば、ランキングと総収益のフィールドを追加できます。例:
area_id STRING 'エリア ID' city_id STRING '都市 ID' order_amt DOUBLE '注文額' rank BIGINT 'ランキング'
[保存] と [送信] をクリックします。
コンポーネントが作成された後、SQL スクリプトテンプレートノードでそれを参照して、ビジネスに必要な宛先テーブルを迅速に生成できます。詳細については、「ステップ 2: コンポーネントの参照」をご参照ください。
(オプション) [コンポーネントを公開] をクリックして、グローバルに汎用的なコンポーネントをテナント全体に公開できます。コンポーネントは [公開コンポーネント管理エリア] に表示されます。コンポーネントが公開されると、テナント内のすべてのユーザーがそれを使用できます。
ステップ 2: コンポーネントの参照
次の方法でコンポーネントを参照できます。
Data Development の SQL スクリプトテンプレートノードでの参照
コンポーネントユーザーは [Data Development] インターフェイスに移動し、SQL スクリプトテンプレートノードを作成して必要なコンポーネントを参照し、コンポーネント内の入力および出力パラメーターを置き換えてコードを再利用できます。
DataStudio の左側のナビゲーションウィンドウで、
をクリックして Data Development を開きます。[ビジネスフロー] ペインで、ビジネスニーズに基づいて新しい SQL スクリプトテンプレートノードの場所を決定します。次に、フォルダを右クリックするか
をクリックし、 を選択し、SQL スクリプトテンプレートノードのカスタム名を入力します。SQL スクリプトテンプレートノードの編集ページで、右側のペインの [コンポーネント設定] をクリックし、次に [コンポーネントコードの選択] をクリックします。
コンポーネントコードを選択すると、SQL コンポーネント編集ページにコードが自動的に入力されます。各パラメーターの値は [コンポーネント設定] で定義できます。
プロジェクトコンポーネント管理からの参照
コンポーネントユーザーは [コンポーネント管理] インターフェイスに移動し、参照するコンポーネントを見つけて、コンポーネントを直接参照して SQL スクリプトテンプレートノードを作成できます。これにより、コンポーネント内の入力および出力パラメーターを置き換えてコードを再利用できます。
DataStudio の左側のナビゲーションウィンドウで、
をクリックしてコンポーネント管理を開きます。[ワークスペース固有スクリプトテンプレート管理] で、宛先コンポーネントを見つけ、コンポーネントを右クリックして [コンポーネントの参照] を選択します。
画面の指示に従って、SQL スクリプトテンプレートノードを作成する場所を選択し、SQL コンポーネントの名前を指定します。
ノードが作成されると、コンポーネントコードが SQL コンポーネント編集ページに自動的に入力されます。[コンポーネント設定] で各パラメーターの値を定義できます。
公開スクリプトテンプレート管理からの参照
コンポーネントユーザーは [コンポーネント管理] インターフェイスに移動し、任意のテナントから公開コンポーネントを見つけて、それを直接参照して SQL スクリプトテンプレートノードを作成できます。これにより、コンポーネント内の入力および出力パラメーターを置き換えてコードを再利用できます。
DataStudio の左側のナビゲーションウィンドウで、
をクリックしてコンポーネント管理を開きます。[公開スクリプトテンプレート管理] で、宛先コンポーネントを見つけて [参照] をクリックします。
画面の指示に従って、SQL スクリプトテンプレートノードを作成する場所を選択し、SQL コンポーネントの名前を指定します。
ノードが作成されると、コンポーネントコードが SQL コンポーネント編集ページに自動的に入力されます。[コンポーネント設定] で各パラメーターの値を定義できます。
コンポーネントのアップグレード
アップグレード操作: コンポーネント開発者
コンポーネント開発者は、必要に応じてコンポーネントコードと関連するパラメーター構成を編集できます。編集が完了したら、コンポーネントを保存して送信し、新しいバージョンにアップグレードします。各コンポーネントバージョンの詳細は、[バージョン] タブで表示できます。
参照コンポーネントバージョンのアップグレード: コンポーネントユーザー
コンポーネントがアップグレードされた後、SQL スクリプトテンプレートノードがそのコンポーネントを参照している場合、最新バージョンを使用するかどうかを選択できます。
最新バージョンが必要ない場合は、元のバージョンを引き続き参照できます。
最新バージョンを使用する場合は、新しいバージョンのパラメーター構成が SQL スクリプトテンプレートノードでまだ有効かどうかを確認する必要があります。新しいコンポーネントバージョンの説明に基づいて調整を行います。編集が完了したら、ノードを送信して公開します。送信と公開のプロセスは、標準の SQL ノードの場合と同じです。
アップグレードシナリオの例
コンポーネント開発者が V1 SQL コンポーネントを作成し、コンポーネントユーザーがそれを使用します。その後、開発者はコンポーネントを V2 にアップグレードします。コンポーネントユーザーは、バージョン V2 が利用可能であることを確認します。ユーザーはコンポーネントを開き、異なるバージョンの詳細を表示し、新しいバージョンがより良いビジネス結果を提供すると判断します。その後、ユーザーはコンポーネントを最新バージョンに更新します。
コンポーネント参照レコードの表示
コンポーネント編集ページの右側のペインで [参照レコード] をクリックすると、現在のコンポーネントを参照しているノードを表示できます。これにより、変更の影響を事前に見積もることができます。
その他の操作
コンポーネントのクローン
クローン機能を使用して、既存のコンポーネントを迅速にクローンして新しいコンポーネントを作成できます。クローンされるコンテンツには、コンポーネントコード、パラメーター設定、およびデバッグ構成のスクリプトパラメーターが含まれます。
左側の [ワークスペース固有スクリプトテンプレート管理] ペインで、クローンするコンポーネントの名前を右クリックし、ポップアップメニューから [クローン] を選択します。
表示されるダイアログボックスで、コンポーネントの [名前] と [パス] を変更するか、デフォルト値を維持し、[OK] をクリックしてクローンを開始します。
クローンが完了すると、[ワークスペース固有スクリプトテンプレート管理] で新しく生成されたコンポーネントを表示できます。
バージョン管理
システムは、バージョン管理機能を使用して、コンポーネントを指定された履歴バージョンに復元することをサポートしています。また、バージョンの表示と比較機能も提供しており、違いを分析して調整を容易に行うことができます。
左側の [ワンタイムタスク] セクションで、コンポーネントの名前をダブルクリックして編集ページを開くことができます。
コンポーネント編集ページの右側のペインで [バージョン] をクリックします。[バージョン] ページでは、[開発レコード] と [公開レコード] の情報を表示および管理できます。
[バージョン] の表示:
[開発レコード] または [公開レコード] タブで、表示したいコンポーネントのバージョンを見つけます。
[アクション] 列の [表示] をクリックして詳細ページを開き、コンポーネントコードとスケジューリング構成情報を表示します。
[バージョン] の比較:
[開発レコード] または [公開レコード] タブで、コンポーネントの異なるバージョンを比較できます。次のセクションでは、開発レコードを例として比較操作を説明します。
同じ環境でのバージョンの比較: [開発レコード] タブで、2 つのバージョンを選択し、上にある [比較] ボタンをクリックして、異なるバージョンのコンポーネントコードとスケジューリング構成情報を比較します。
環境間でのバージョンの比較:
[開発レコード] タブで、コンポーネントのバージョンを見つけます。
[アクション] 列の [比較] ボタンをクリックします。詳細ページで、[公開レコード] から比較するバージョンを選択します。
[バージョンの復元]:
[開発レコード] 内のコンポーネントのみを指定された履歴バージョンに復元できます。[開発レコード] タブで、宛先バージョンを見つけ、[アクション] 列の [復元] ボタンをクリックして、コンポーネントを宛先バージョンに復元します。