DataWorks は、リアルタイムのデータ開発およびガバナンス機能を提供します。この機能は、データガバナンスプラグインと Language Server Protocol (LSP) テクノロジーを統合しています。コードを保存する際にスマートチェックをトリガーし、修正のための的を絞った提案を提供します。開発者はワンクリックで修正を適用し、問題を迅速に解決できます。この機能は、プリセットされたガバナンスルールライブラリとセマンティック分析エンジンを使用して、コード内の構文エラー、データ仕様の問題、潜在的なバグを事前に特定します。このプロセスにより、コード品質のためのクローズドループ管理システムが構築されます。
注意事項
データ開発ノードのチェックガバナンスプラグイン、関連するガバナンス項目、および LSP 設定への変更は、現在のアカウントにのみ影響します。
ガバナンス項目の問題の診断
DataWorks のデータガバナンスプラグインには、設定不要ですぐに使える豊富な組み込みルールライブラリが含まれています。SQL クエリやスクリプトを保存すると、プラグインが自動的にコードをスキャンして問題を検出し、修正を提案します。このプロセスにより、開発効率が向上します。この機能が不要な場合は、いつでも無効にできます。
適用範囲
対象リージョン:中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (成都)、中国 (香港)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、ドイツ (フランクフルト)、米国 (シリコンバレー)、および米国 (バージニア)。
対象ノード:各ガバナンス項目に適用されるノードタイプを確認するには、「チェック項目イベントのソリューションの表示」をご参照ください。
ガバナンスプラグインへの接続
DataStudio の [設定] ページでは、デフォルトで DataStudio Governance Check Module Enablement オプションが選択されています。この設定により、編集中にコード内のガバナンス可能な問題がシステムによって事前に検出されます。このユーザーレベルの設定項目を管理するには、次の手順に従います。
DataWorks ワークスペースページに移動します。上部のナビゲーションバーでターゲットリージョンに切り替え、ターゲットワークスペースを見つけ、[操作] 列で をクリックして DataStudio ページに移動します。
ナビゲーションウィンドウの左下隅にある をクリックし、[設定] ページの [ユーザー] タブに移動します。
[ユーザー] タブで、 を見つけます。必要に応じて、データ開発用のデータガバナンスプラグインを有効または無効にできます。
データガバナンスプラグインを有効にする (デフォルト設定) データガバナンスプラグインを使用してコードの問題を検出および修正するには、[DataStudio Governance Check Module Enablement] チェックボックスが選択されていることを確認します。その後、ガバナンス項目を設定して、データ開発タスクに対して的を絞ったガバナンスを実行できます。
データガバナンスプラグインを無効にする データガバナンスプラグインを使用してコードの問題をチェックしたくない場合は、[DataStudio Governance Check Module Enablement] チェックボックスをオフにします。プラグインを無効にすると、この機能はデータ開発ノードタスクでは使用できなくなります。
ガバナンスチェック項目の有効化
ガバナンスプラグインが有効な場合、データ開発と統合されているすべてのガバナンス項目はデフォルトで有効になります。次の手順に従って、特定のガバナンス項目を有効または無効にできます。
DataStudio ページの左側のナビゲーションウィンドウで、
アイコンをクリックして [Data ASSET Governance] フォルダを開きます。[ルールライブラリ] では、「ガバナンス項目リスト」の説明に基づいてガバナンス項目を有効または無効にできます。すべての項目はデフォルトで 有効 になっています。
特定のガバナンスルールを使用したくない場合は、対応するチェック項目を [ルールライブラリ] で見つけ、その横にある
アイコンをクリックして無効にします。重要ガバナンス項目を無効にすると、現在のアカウントのワークスペースでデータ開発タスクを編集・保存する際に、その項目のチェックはトリガーされなくなります。
問題の発見
ガバナンスプラグインとガバナンスチェック項目を有効にすると、DataWorks Copilot は、ガバナンスチェックをサポートするノードタイプを保存すると、自動的にコードをスキャンします。これにより、潜在的な問題にフラグが立てられます。必要に応じて、これらの提案を受け入れるかどうかを決定できます。
ノードの内容を編集して保存すると、システムは内容が変更されたかどうかを検出します。内容が変更された場合、システムは以前の問題検出結果を自動的にクリアします。ノードを保存すると、新しい問題発見プロセスがトリガーされます。
問題の数を表示します。
コードを編集中、システムはリアルタイムで問題をスキャンします。ノードを保存すると、現在のノードでガバナンス可能な問題の数がページの左下隅に表示されます。
問題の詳細を表示します。
ページの左下隅にある
アイコンをクリックします。表示される [問題] エリアで、ノード内でガバナンスが必要な問題を確認できます。
問題の修正
[問題] パネルにリストされている各問題について、検出基準の説明が提供されます。問題の横にあるハイパーリンクをクリックすると、詳細な説明と背景情報を表示できます。これらの問題を迅速に解決するための提案も提供されます。次の手順に従います:
関連する問題の横にある [データ資産ガバナンス] リンクをクリックして、右側の [データ資産ガバナンス] ページに移動します。
[関連する問題] タブでは、AI モデルからの問題の説明、ガバナンス分析レポート、および問題の対処方法に関する提案を確認できます。
ガバナンスの詳細については、[ルール説明] タブに切り替えてください。このタブでは、問題に関連するチェック項目、ルールロジック、および対処ガイドを確認できます。
[推奨されるアクション] の下にある関連リンクをクリックし、画面の指示に従って問題を修正します。
操作方法はガバナンス項目によって異なります。インターフェイスに具体的な指示が表示されます。
LSP 構文の問題の診断
このセクションでは、Language Server Protocol (LSP) 機能を使用して、SQL またはスクリプトの編集中にリアルタイムでコードの問題をスキャンする方法について説明します。また、Copilot 機能を使用してこれらの問題を迅速に修正する方法についても説明します。
LSP の有効化
DataStudio の [設定] ページでは、SyntaxErrorEnable 設定項目を使用して、コード編集中に構文診断を有効にするかどうかを制御できます。このユーザーレベルの設定項目を管理するには、次の手順に従います。
DataWorks の [ワークスペース] ページに移動します。上部のナビゲーションバーでターゲットリージョンに切り替え、ターゲットワークスペースを見つけ、[操作] 列の をクリックして DataStudio ページに移動します。
ナビゲーションウィンドウの左下隅にある をクリックし、[設定] ページの [ユーザー] タブに移動します。
[ユーザー] タブで、 をクリックして構文診断を設定します。
SyntaxErrorEnable: 構文診断を有効または無効にします。この設定項目を
trueまたはfalseに設定して、データ開発中の構文診断機能を有効または無効にできます。SyntaxErrorSeverity: 構文エラー診断の深刻度レベルを設定します。この設定項目を異なるレベルに設定して、データ開発中の構文診断例外のアラートレベルを制御できます。
問題の発見
ノードコードの編集中に、ページの左下隅にある
アイコンをクリックします。表示される [問題] エリアで、ノード内のコードの問題例外を確認できます。問題をクリックすると、ターゲットノード内の問題のあるコードスニペットをすばやく見つけることができます。

問題の修正
ターゲットノードで問題のあるコードスニペットを見つけたら、間違ったコードスニペットにマウスをホバーすると、クイックフィックスのエントリポイントが表示されます。このエントリポイントから、DataWorks Copilot を使用し、さまざまなモデルから選択してコードを修正できます。

付録:ガバナンス項目リスト
ルール名 | シナリオ |
JOIN ON 条件の定数 | データ変換において、`LEFT JOIN` の |
欠落スケジュールパラメーターチェッカー | スケジューリングパラメーターは、タスクスケジューリング中にコードで使用される動的パラメーターです。これらのパラメーターは、タスクのデータタイムスタンプ、スケジュールされた時刻、およびプリセット値のフォーマットに基づいて、自動的に特定の値に置き換えられます。このプロセスにより、タスクスケジューリング中の動的パラメーター置換が可能になります。スケジューリングパラメーターが欠落していると、データ変換エラーやタスク実行の失敗を引き起こす可能性があります。 |
定期ジョブでの非パーティションテーブルの使用防止 | 定期タスクで非パーティションテーブルを使用することは、同じスケジューリングタスク内で中間データを保存するための一時テーブルとして非パーティションテーブルを使用し、タスク内でこのテーブルからデータを読み取ることを意味します。複数のデータタイムスタンプに対して同時データバックフィルが実行されると、データ不整合やデータ損失が発生する可能性があります。この問題は、中間テーブルが正しいデータタイムスタンプのデータを保存している保証がないために発生します。 |
クエリするパーティションの指定 | MaxCompute のパーティションテーブルをクエリする際にパーティションを指定しないと、全表スキャン (ブルートフォーススキャン) がトリガーされます。このスキャンは、非常に高いコンピューティングオーバーヘッドをもたらします。 |
再実行が有効な場合の INSERT INTO の防止 | SQL コードに |
JOIN 列のデータ型の一致要件 | MaxCompute SQL のデータ開発中、`JOIN` 操作は頻繁に使用されます。`ON` 条件を記述する際、開発者はしばしばフィールドタイプの整合性を無視します。これにより、変換エラーが発生し、データ品質に影響を与える可能性があります。 |
定期本番ジョブから開発テーブルへの書き込み防止 | 定期タスクが標準ワークスペース内の開発プロジェクトのテーブルにデータを書き込むと、データ保護レベルが低下し、セキュリティリスクが生じます。 |
システム関数の上書き防止 | 送信された関数がビルトイン関数と同じ名前である場合、送信された関数はシステムのビルトイン関数を上書きします。他のプロジェクトメンバーがこの関数を使用する際、ビルトイン関数に対する認識に齟齬が生じ、利用やメンテナンスに影響を及ぼす可能性があります。 |
MAX_PT 関数の不許可 | 定期実行のために送信された定期タスクで、コードに `MAX_PT` 関数が含まれている場合、データバックフィルなどのシナリオでは、この関数は常にテーブルの最大のパーティション (アルファベット順) を返します。これにより、予期しない動作が発生する可能性があります。`MAX_PT` 関数の値取得の動作の詳細については、「その他の関数」をご参照ください。 |
SQL でのテーブル作成の防止 | 定期実行のために送信された SQL スクリプトでテーブルを作成すると、2つの潜在的な問題があります。第一に、テーブルはスケジューリングテナントアカウントまたはワークスペースオーナー (Alibaba Cloud アカウント) の所有となります。この不明確な所有権は、追加の管理コストを生み出します。第二に、手動レビューがないため、データが誤ってパージされるリスクが高くなります。したがって、この方法は禁止されています。 |
外部プロジェクトテーブルへの INSERT | ある MaxCompute プロジェクトで実行中のタスクを使用して、別の MaxCompute プロジェクトのテーブルにデータを書き込む場合、システムはこれを高リスクのセキュリティ操作と見なします。この操作は、不正なデータアクセスやデータ漏洩のリスクをもたらします。プロジェクト隔離の使用を推奨します。プロジェクト A のタスクは、プロジェクト B のテーブルに書き込むべきではありません。これは、開発環境と本番プロジェクト環境の両方に適用されます。 |