DataWorks オープンプラットフォームでは、拡張プログラムを登録、公開、有効化すると、そのプログラムがアクティブなワークスペースで拡張ポイントイベントがトリガーされた際に、DataWorks からプログラムにメッセージが送信されます。拡張プログラムからの応答によって、操作を続行できるかどうかが決まります。このトピックでは、Data Studio でサポートされている拡張ポイントイベントについて説明し、それらを使用して拡張プログラムをトリガーする方法を解説します。
前提条件
メッセージサブスクリプションが有効化されていること。詳細については、「メッセージサブスクリプションの有効化」をご参照ください。
拡張プログラムが開発され、デプロイされていること。詳細については、「拡張プログラムの開発とデプロイ: Function Compute」をご参照ください。
背景情報
拡張プログラムの有効化
[管理センター] ページでは、[拡張プログラム] を表示し、現在のワークスペースでその検証を有効化または無効化できます。
データ開発における拡張ポイントイベント
DataWorks の Data Studio モジュールは、ファイルの公開前イベント、ファイルのコミット前イベント、テーブルのコミット前イベントなどの拡張ポイントイベントをサポートしています。拡張ポイントイベントの概念と詳細なリストについては、「サポートされる拡張ポイントイベントのリスト」をご参照ください。
DataWorks は、拡張ポイントイベントのメッセージ通知を送信できます。拡張プログラムを使用して、検証と応答を自動化できます。拡張ポイントのトリガープロセスの詳細については、「サポートされる拡張ポイントイベント」をご参照ください。
制限事項
拡張プログラムを有効にすると、データ開発中に拡張イベントがトリガーされた際のメッセージ通知と応答に、以下の制限が適用されます。
組み込みの拡張プログラムを有効にすると、ODPS SQL ノードに対してのみ有効になります。
つまり、ODPS SQL ノードで拡張ポイントイベントがトリガーされると、組み込み拡張プログラムがロジックを検証して結果を返す間、プロセスはブロックされます。ODPS SQL ノード以外のノードでイベントがトリガーされた場合もプロセスはブロックされますが、組み込み拡張プログラムは検証を実行せず、すぐに成功の結果を返します。
[テーブルの事前公開イベント] および [テーブルの事前コミットイベント] は、現在、MaxCompute テーブルをコミットまたは公開する場合にのみ検出のためにトリガーされる拡張ポイント イベントです。
do-while ノードやfor-each ノードなど、内部ノードを含む複合ノードの場合、操作を続行する前にすべての内部ノードが検証に合格する必要があります。
機能
Data Studio では、ローカルサービスを DataWorks 拡張プログラムとして登録し、特定の拡張ポイントイベントのメッセージを受信できます。拡張プログラムは、これらのイベントをカスタムロジックで処理し、UpdateIDEEventResult API を呼び出すことでプラットフォームに結果を返すことができます。このプロセスにより、DataWorks でカスタムの制御フローを実装できます。以下の拡張ポイントがサポートされています。
ファイル操作:ファイルの実行、コミット、公開、削除
テーブル操作:テーブルのコミットと公開
説明Data Studio でのテーブル操作の拡張イベントは、MaxCompute テーブルに対してのみトリガーされます。
サポートされる拡張ポイントイベント
DataWorks Data Studio では、拡張プログラムを使用して、以下の拡張ポイントイベントを検証し、応答することができます。
Data Studio - ファイルの実行
Data Studio - ファイルのコミット
Data Studio - ファイルの公開
Data Studio - ファイルの削除
Data Studio - テーブルのコミット
Data Studio - テーブルの公開
参考文献
拡張プログラムを有効にする方法については、「拡張プログラムの使用」をご参照ください。
データ開発は、追加の拡張ポイントイベントをサポートしています。詳細については、「サポートされる拡張ポイントイベントのリスト」をご参照ください。
ファイル変更イベントのメッセージエンティティ形式については、「ファイル変更イベント (コミット、公開、実行、削除、コードレビュー)」をご参照ください。
テーブル変更イベントのメッセージエンティティ形式については、「テーブル変更イベント (開発環境へのテーブルのコミットと本番環境へのテーブルの公開)」をご参照ください。