このトピックでは、DataWorks の MaxCompute ノードを使用して、ユーザー情報テーブル ods_user_info_d とアクセスログテーブル ods_raw_log_d のデータを処理し、ユーザープロファイルデータを生成する方法について説明します。DataWorks と MaxCompute を使用して同期されたデータを計算・分析し、データウェアハウスにおける簡単なデータ処理タスクを完了する方法を学びます。
前提条件
開始する前に、「データの同期」の手順を完了していることを確認してください。
1. データ処理パイプラインの構築
「データの同期」のステップで、データは MaxCompute に同期されました。次に、このデータを処理して、基本ユーザープロファイルデータを生成する必要があります。
-
Data Studio の左側のナビゲーションウィンドウで、
アイコンをクリックしてデータ開発ページを開きます。Project Directory セクションで、作成したワークフローをクリックしてワークフローキャンバスを開きます。次の表に、このチュートリアルで使用されるノードを示します。
ノードタイプ
ノード名
ノード機能
MaxCompute SQLdwd_log_info_diビルトイン関数とユーザー定義関数 (UDF) の
getregionを使用して、ods_raw_log_dテーブルの生ログデータをdwd_log_info_diテーブルの複数のフィールドに分割します。
MaxCompute SQLdws_user_info_all_diユーザー情報テーブル (
ods_user_info_d) と処理済みログテーブル (dwd_log_info_di) のデータを集計し、その結果をdws_user_info_all_diテーブルに書き込みます。
MaxCompute SQLads_user_info_1ddws_user_info_all_diテーブルのデータをさらに処理し、その結果をads_user_info_1dテーブルに書き込んで、基本ユーザープロファイルを生成します。 -
ノード間に線をドラッグして、スケジューリング依存関係を設定します。最終的なワークフローは次のようになります:
説明ワークフローでは、ノード間に手動で線を引くことで、各ノードのスケジューリング依存関係を設定できます。または、子ノード内で自動解析を有効にして、コードから依存関係を識別することもできます。このチュートリアルでは、手動の方法を使用します。自動解析の詳細については、「自動解析メカニズム」をご参照ください。
2. ユーザー定義関数の登録
データ処理タスクが正しく実行されるように、getregion という名前の MaxCompute ユーザー定義関数 (UDF) を登録する必要があります。この UDF は、「データの同期」ステップで MaxCompute に同期されたログデータ構造を解析します。
-
このチュートリアルでは、IP-to-リージョンユーザー定義関数 (UDF) のリソースを提供します。このリソースをローカルマシンにダウンロードし、関数を登録する前にご利用の DataWorks ワークスペースにアップロードしてください。
-
サンプル IP リソースはチュートリアル専用です。IP アドレスをロケーションにマッピングする必要がある本番環境のユースケースでは、専門のプロバイダーから IP 変換サービスを取得する必要があります。
ip2region.jar のアップロード
-
ip2region.jar ファイルをダウンロードします。
説明サンプル
ip2region.jarリソースはチュートリアル専用です。 -
DataStudio ページの左側のナビゲーションウィンドウで、
アイコンをクリックして リソース管理 ページに移動します。 をクリックし、リソースに名前を付けてアップロードページに進みます。説明リソース名は、アップロードするファイル名と一致する必要はありません。
-
Document Source で Local を選択します。ファイルコンテンツの横にある Click Upload をクリックし、ダウンロードした
ip2region.jarファイルを選択します。 -
Data Source には、環境の準備 ステップでバインドした MaxCompute コンピューティングリソースを選択します。
-
ツールバーで、Save をクリックし、次に Publish をクリックします。プロンプトに従って、開発環境と本番環境の両方の MaxCompute プロジェクトにリソースを公開します。
getregion の登録
-
リソース管理 ページで、 をクリックし、関数に
getregionという名前を付けて登録ページに移動します。 -
[関数登録] ページで、必須パラメーターを設定します。次の表に、このチュートリアルの主要なパラメーターを示します。他のパラメーターはデフォルト値のままにします。
パラメーター
説明
Function type
OTHERを選択します。Data Source
「環境の準備」ステップでバインドした MaxCompute コンピューティングリソースを選択します。
Class Name
org.alidata.odps.udf.Ip2Regionと入力します。Resource List
ip2region.jarを選択します。Description
IP アドレスをリージョンに変換します。
Command Format
getregion('ip')と入力します。Parameter Description
IP アドレス。
-
ツールバーで、Saveをクリックし、次にPublishをクリックします。プロンプトに従って、開発環境と本番環境の両方の MaxCompute プロジェクトに関数を公開します。
3. データ処理ノードの設定
データ処理ロジックの各レイヤーは、スケジューリングされた MaxCompute SQL ノードによって実装されます。このチュートリアルでは、完全な SQL サンプルコードを提供します。dwd_log_info_di、dws_user_info_all_di、ads_user_info_1d の各ノードを順番に設定する必要があります。
dwd_log_info_di ノードの設定
このノードのサンプルコードでは、登録した UDF を使用して上流テーブル ods_raw_log_d のフィールドを処理し、その結果を dwd_log_info_di テーブルに書き込みます。
-
Data Studio の左側のナビゲーションウィンドウで、
アイコンをクリックしてデータ開発ページを開きます。Project Directory セクションで、作成したワークフローを見つけ、クリックしてワークフローキャンバスを開きます。 -
ワークフローキャンバスで、
dwd_log_info_diノードにマウスカーソルを合わせ、Open Node をクリックします。 -
次のコードをノードエディターに貼り付けます。
-
実行時パラメーターの設定
MaxCompute SQL ノードエディターの右側のペインで、Run Configuration をクリックします。手順 4 のテスト実行用に、次のパラメーターを設定します。
パラメーター
説明
Computing Resources
「環境の準備」ステップでバインドした MaxCompute コンピューティングリソースと、それに対応するコンピューティングクォータを選択します。
Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Script Parameters
このパラメーターは空白のままにします。 サンプルコードでは、
${bizdate}を使用してビジネス日付を表します。 ステップ 4 でワークフローを実行する際に、This operation value を20250223などの定数に設定すると、タスクが変数をこの定数に置き換えます。 -
(任意) スケジューリングプロパティの設定
このチュートリアルでは、デフォルトのスケジューリングプロパティをそのまま使用できます。それらを表示するには、MaxCompute SQL ページの右側のペインでScheduling Configurationをクリックします。これらのパラメーターの詳細については、「ノードのスケジューリングプロパティを設定する」をご参照ください。
-
Scheduling Parameters: このチュートリアル用にワークフローレベルで設定済みのパラメーターです。ワークフロー内のノードは、これらのパラメーターをタスクやコードで直接使用できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用して、ワークフローの開始後にノードが実行されるまでの遅延を指定できます。このチュートリアルでは不要です。
-
-
ツールバーの Save をクリックします。
dws_user_info_all_di ノードの設定
このノードは、ユーザー情報テーブル (ods_user_info_d) と処理済みログテーブル (dwd_log_info_di) のデータを集計し、その結果を dws_user_info_all_di テーブルに書き込みます。
-
ワークフローキャンバスで、
dws_user_info_all_diノードにマウスカーソルを合わせ、Open Nodeをクリックします。 -
次のコードをノードエディターに貼り付けます。
-
実行時パラメーターの設定
MaxCompute SQL ノードエディターの右側のペインで、Run Configuration をクリックします。ステップ 4 でのテスト実行用に、以下のパラメーターを設定します。
パラメーター
説明
Computing Resources
「環境の準備」ステップでバインドした MaxCompute コンピューティングリソースと、それに対応するコンピューティングクォータを選択します。
Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Script Parameters
このパラメーターは空白のままにします。サンプルコードでは、
${bizdate}を使用してビジネス日付を表します。ステップ 4 でワークフローを実行するときは、This operation value を20250223などの定数に設定します。その後、タスクによって変数がこの定数に置き換えられます。 -
(任意) スケジューリングプロパティの設定
このチュートリアルでは、デフォルトのスケジューリングプロパティをそのまま使用できます。これらを表示するには、MaxCompute SQL ページの右側のペインでScheduling Configurationをクリックします。これらのパラメーターの詳細については、「ノードのスケジューリングプロパティを設定する」をご参照ください。
-
Scheduling Parameters: このチュートリアルでは、ワークフローレベルで既に設定されており、ワークフロー内のノードはタスクとコードでこれらのパラメーターを直接使用できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用して、ワークフロー開始後のノード実行を遅延させることができます。このチュートリアルでは、この設定は不要です。
-
-
ツールバーで、Save をクリックします。
ads_user_info_1d ノードの設定
このノードは、dws_user_info_all_di テーブルのデータをさらに処理し、最終結果を基本ユーザープロファイルを含む ads_user_info_1d テーブルに書き込みます。
-
ワークフローキャンバスで、
ads_user_info_1dノードにカーソルを合わせ、Open Node をクリックします。 -
次のコードをノードエディターに貼り付けます。
-
実行時パラメーターの設定
MaxCompute SQL ノードエディターの右側のペインで、Run Configuration をクリックして、ステップ 4 のテスト実行用に次のパラメーターを設定します。
パラメーター
説明
Computing Resources
「環境の準備」ステップでバインドした MaxCompute コンピューティングリソースと、それに対応するコンピューティングクォータを選択します。
Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Script Parameters
このパラメーターは空白のままにします。 サンプルコードでは、
${bizdate}を使用してビジネス日付を表します。 ステップ 4 でワークフローを実行するときは、This operation value を20250223などの定数に設定します。 そうすると、タスクによって変数がこの定数に置き換えられます。 -
(任意) スケジューリングプロパティの設定
このチュートリアルでは、デフォルトのスケジューリングプロパティをそのまま使用できます。これらを表示するには、MaxCompute SQL ページの右側のペインでScheduling Configurationをクリックします。これらのパラメーターの詳細については、「ノードのスケジューリングプロパティを設定する」をご参照ください。
-
Scheduling Parameters:これらは、このチュートリアルではワークフローレベルで設定済みです。ワークフロー内のノードは、タスクとコードでこれらのパラメーターを直接使用できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用して、ワークフローが開始してからノードが実行されるまでの遅延を指定できます。このチュートリアルでは、これは必須ではありません。
-
-
ツールバーで、Save をクリックします。
4. データの処理
-
データを処理します。
ワークフローツールバーで Run をクリックし、今回の実行用に各ノードで定義されたパラメーター変数の値を設定し (このチュートリアルでは
20250223を使用しますが、必要に応じて値を変更できます)、OK をクリックし、実行が完了するまで待ちます。 -
データ処理結果のクエリ
-
DataStudio の左側のナビゲーションウィンドウで、
をクリックしてデータ開発ページを開きます。次に、個人用フォルダーで
をクリックして .sqlファイルを作成します。ファイル名は任意です。 -
ページの下部で、言語モードが
MaxCompute SQLであることを確認します。
-
SQL エディターに次のステートメントを入力して、最終結果テーブル
ads_user_info_1dのレコード数を確認し、データが処理されたことを確認します。-- 'business_date' を、実行に使用した実際の業務日に置き換えます。 -- このチュートリアルでは、bizdate パラメーターは 20250223 に設定されています。 SELECT count(*) FROM ads_user_info_1d WHERE dt='business_date';-
コマンドが 0 より大きいカウントを返した場合、データは正常に処理されています。
-
クエリが 0 のカウントを返す場合は、This operation value が、クエリの
dtパーティションにあるビジネス日付と一致していることを確認してください。値を確認するには、ワークフローの右側にある Runtime Logs ペインを開き、その実行の Operation 列にある View をクリックします。実行ログにビジネス日付の値が表示されます。例:partition=[dt=20250223]。
-
-
5. ワークフローのデプロイ
タスクを自動的に実行するようにスケジューリングする前に、本番環境に公開する必要があります。次の手順に従ってワークフローを公開します。
このチュートリアルでは、スケジューリングパラメーターはすでにワークフローレベルで設定されています。公開前に個々のノードに対して設定する必要はありません。
-
Data Studio の左側のナビゲーションウィンドウで、
アイコンをクリックしてデータ開発ページを開きます。Project Directory セクションで、作成したワークフローを見つけてクリックし、ワークフローキャンバスを開きます。 -
ツールバーでPublishをクリックすると、公開パネルが開きます。
-
Start Release Production をクリックします。表示されるダイアログボックスで、必要に応じて公開方法を選択します。
-
完全公開:現在のワークフローとそのすべてのタスクを公開します。
-
増分公開:ワークフロー自体と、最後のデプロイ以降に変更があったタスクのみを公開します。これは、反復的な最適化や小規模な更新に適しています。

-
-
公開方法を確認すると、システムは自動的に公開プロセスを開始し、まず開発環境、次に本番環境の順に公開します。本番環境のステップでは、Confirm Release をクリックして操作を完了させる必要があります。

6. 本番環境でのタスク実行
タスクが公開されると、そのインスタンスは翌日に実行されるようにスケジュールされます。Supplementary data 機能を使用すると、公開されたワークフローをすぐに実行し、本番環境で正しく動作することを確認できます。詳細については、「データバックフィルインスタンスの管理」をご参照ください。
-
タスクが正常に公開されたら、右上隅のOperation and Maintenance Centerをクリックします。
または、左上隅の
アイコンをクリックし、 を選択します。 -
左側のナビゲーションウィンドウで、 を選択します。定期的なタスク ページで、
workshop_startゼロロードノードをクリックします。 -
右側の DAG で、
workshop_startノードを右クリックし、 を選択します。 -
バックフィルするタスクを選択し、ビジネス日を設定して、Submit and Redirect をクリックします。
-
データバックフィルページで、すべての SQL タスクが正常に実行されるまでRefreshをクリックします。
次のステップ
-
データの可視化:ユーザープロファイルを分析した後、データ分析ツールを使用して処理済みデータをチャートで表示します。これにより、主要な情報を迅速に抽出し、ビジネスのトレンドに関するインサイトを得ることができます。
-
データ品質の監視:データ処理パイプラインによって生成されたテーブルに対してデータ品質モニタリングを設定します。これにより、ダーティデータを早期に特定してブロックし、下流システムへの影響を防ぐことができます。
-
データの管理:ユーザープロファイル分析ワークフローが完了すると、対応するデータテーブルが MaxCompute に作成されます。これらのテーブルは Data Map で表示でき、データリネージを使用してその関係を探索できます。
-
API を使用したデータサービスの提供:最終的に処理されたデータを取得した後、データサービスモジュールを使用して標準の API エンドポイントを作成します。これにより、他のビジネスモジュールがこれらの API を介してデータを消費できるようになります。
> New Resource > MaxCompute Jar