このトピックでは、DataWorks の MaxCompute ノードを使用して、MaxCompute に同期された ods_user_info_d_odps テーブルと ods_raw_log_d_odps テーブルのデータを処理し、ユーザープロファイルデータを取得する方法について説明します。 ods_user_info_d_odps テーブルには基本的なユーザー情報が格納され、ods_raw_log_d_odps テーブルにはユーザーの Web サイトアクセスログが格納されます。 このトピックは、DataWorks と MaxCompute を使用して同期されたデータを計算および分析し、データウェアハウスで単純なデータ処理を完了する方法を理解するのに役立ちます。
前提条件
必要なデータが同期されています。 詳細については、「データの同期」をご参照ください。
ステップ 1:データ処理リンクを構築する
データ同期 フェーズでは、必要なデータが MaxCompute に同期されます。 次の目標は、データをさらに処理して基本的なユーザープロファイルデータを生成することです。
DataWorks コンソールにログインし、Data Studio ページの DATA STUDIO ペインに移動します。 DATA STUDIO ペインの ワークスペースディレクトリ セクションで、準備したワークフローを見つけ、ワークフロー名をクリックしてワークフローの構成タブに移動します。
このチュートリアルでは、3 つの MaxCompute SQL ノードを作成する必要があります。 次の表に、このチュートリアルで使用されるノード名とノードの機能を示します。
ノードタイプ
ノード名
ノード機能
MaxCompute SQLdwd_log_info_di_odpsこのノードは、
ods_raw_log_d_odpsテーブルのデータを分割し、そのデータを複数のフィールドにdwd_log_info_di_odpsテーブルに、getregionという名前の組み込み関数またはユーザー定義関数 (UDF) に基づいて。
MaxCompute SQLdws_user_info_all_di_odpsこのノードは、データを集計するために使用されます。
基本ユーザー情報テーブル
ods_user_info_d_odpsおよび 処理済みログデータテーブルdwd_log_info_di_odps集計結果を
dws_user_info_all_di_odpsテーブル。
MaxCompute SQLads_user_info_1d_odpsこのノードは、データをさらに処理するために使用されます。
dws_user_info_all_di_odpsテーブルのデータをさらに処理し、処理済みのデータをads_user_info_1d_odpsテーブルに同期して、基本的なユーザープロファイルを生成します。次の図に示すように、線を描画して、MaxCompute SQL ノードの祖先ノードを構成します。
説明線を描画して、ワークフロー内のノードの スケジューリング依存関係 を構成できます。 また、自動解析機能を使用して、システムがノード間のスケジューリング依存関係を自動的に識別できるようにすることもできます。 このチュートリアルでは、線を描画することでノード間のスケジューリング依存関係を構成します。 自動解析機能の詳細については、「方法 1:ノードのコード内のリネージに基づいてスケジューリング依存関係を構成する」をご参照ください。
ステップ 2:リソースをアップロードし、UDF を登録する
データが想定どおりに処理されるようにするには、データを同期 するときに MaxCompute に同期されるログデータ構造を分割するために、getregion という名前の MaxCompute UDF を登録する必要があります。
このチュートリアルでは、IP アドレスを地域に変換するために使用される関数に必要なリソースが提供されています。 リソースをオンプレミス マシンにダウンロードし、目的の DataWorks ワークスペースにアップロードしてから、DataWorks に関数を登録する必要があります。
この関数の IP アドレスリソースは、このチュートリアルでのみ使用されます。 正式なビジネスシナリオで IP アドレスと地理的な場所のマッピングを実装する必要がある場合は、専門の IP アドレス Web サイトから専門の IP アドレス変換サービスを探す必要があります。
リソースをアップロードする (ip2region.jar)
ip2region.jar パッケージをダウンロードします。
説明ip2region.jarパッケージは、このチュートリアルでのみ使用されます。DataWorks コンソールにログインし、[Data Studio] ページに移動します。 Data Studio ページの左側のナビゲーションウィンドウで、
アイコンをクリックします。 リソース管理ウィンドウで、
アイコンをクリックし、 を選択します。 リソースまたは関数の作成ダイアログボックスで、名前パラメーターを設定し、OK をクリックします。説明リソース名は、アップロードするパッケージと異なる場合があります。
[ファイルソース] パラメーターを [オンプレミス] に設定し、ファイルコンテンツ パラメーターの横にある [アップロード] をクリックして、ローカルマシンにダウンロードした
ip2region.jarパッケージを選択します。環境を準備する ときにワークスペースに関連付けられている MaxCompute 計算リソースを、データソース ドロップダウンリストから選択します。
構成タブの上部ツールバーで、[保存] をクリックし、次に [デプロイ] をクリックして、画面の指示に従って開発環境と本番環境の両方で MaxCompute プロジェクトにリソースをデプロイします。
UDF を登録する (getregion)
DataWorks コンソールにログインし、[Data Studio] ページに移動します。 Data Studio ページの左側のナビゲーションウィンドウで、
アイコンをクリックします。 RESOURCE MANAGEMENT ペインで、
アイコンをクリックして、 を選択します。 [リソースまたは関数の作成] ダイアログボックスで、Name パラメーターを設定します。 このチュートリアルでは、Name パラメーターは getregionに設定されています。表示される構成タブで、パラメーターを構成します。 次の表に、このチュートリアルで構成する必要があるパラメーターを示します。 その他のパラメーターについては、デフォルト値を保持します。
パラメーター
説明
関数タイプ
OTHERを選択します。データソース
環境を準備する ときにワークスペースに関連付けられている MaxCompute 計算リソースを選択します。
クラス名
org.alidata.odps.udf.Ip2Regionと入力します。リソースリスト
ip2region.jarを選択します。説明
説明を入力します。 このチュートリアルでは、次の説明が入力されます:IP アドレスの地域への変換。
コマンド構文
getregion('ip')と入力します。パラメーターの説明
パラメーターの説明を入力します。 この例では、次のパラメーターの説明が入力されます:IP アドレス。
構成タブの上部ツールバーで、保存 をクリックし、次に デプロイ をクリックして、表示される指示に従って、開発環境と本番環境の両方で MaxCompute プロジェクトに関数をデプロイします。
ステップ 3:MaxCompute SQL ノードを構成する
データ処理を実行するには、関連する MaxCompute SQL ノードをスケジュールして、処理ロジックの各レイヤーを実装する必要があります。 このチュートリアルでは、データ処理のサンプルコードが提供されています。 dwd_log_info_di_odps、dws_user_info_all_di_odps、ads_user_info_1d_odps ノードのコードを個別に構成する必要があります。
dwd_log_info_di_odps ノードを構成する
このノードのサンプルコードでは、登録済みの関数を使用して、祖先テーブル ods_raw_log_d_odps のフィールドの SQL コードを処理し、テーブル内のデータを dwd_log_info_di_odps テーブルに同期します。
Data Studio ページの左側のナビゲーションペインで、
アイコンをクリックします。 DATA STUDIO ペインの ワークスペースディレクトリ セクションで、作成したワークフローを見つけ、ワークフロー名をクリックしてワークフローのキャンバスに移動します。ワークフローのキャンバスで、ポインターを
dwd_log_info_di_odpsノードの上に移動し、ノードを開く をクリックします。次の SQL 文をコピーして、コードエディターに貼り付けます。
デバッグパラメーターを構成します。
ノードの構成タブの右側のナビゲーションペインで、デバッグ構成 をクリックします。 デバッグ構成 タブで、次のパラメーターを構成します。 これらのパラメーターは、ステップ 4 でワークフローをテストするために使用されます。
パラメーター
説明
計算リソース
環境を準備する ときにワークスペースに関連付けられている MaxCompute 計算リソースを選択します。
リソースグループ
環境を準備する ときに購入したサーバーレス リソースグループを選択します。
スクリプトパラメーター
このパラメーターを構成する必要はありません。 このチュートリアルで提供されているサンプルコードでは、${bizdate} 変数がデータタイムスタンプを表すために使用されます。 ステップ 4 に従ってワークフローをデバッグするときに、変数の値を
20250223などの定数に設定できます。 ワークフローが実行されると、ワークフローの内部ノードに定義された変数は定数に置き換えられます。(オプション) スケジューリングプロパティを構成します。
このチュートリアルでは、スケジューリングプロパティに関連するパラメーターはデフォルト値のままでかまいません。 ノードの設定タブの右側のナビゲーションウィンドウで [プロパティ] をクリックすると、次のサブタブでパラメーターの値を表示できます。 「プロパティ」タブの他のパラメーターの詳細については、「スケジューリングプロパティ」をご参照ください。
スケジューリングパラメーター:このチュートリアルでは、ワークフローのスケジューリングパラメーターが構成されています。 ワークフローの内部ノードのスケジューリングパラメーターを個別に構成する必要はありません。 構成されたスケジューリングパラメーターは、内部ノードに基づいて開発されたコードとタスクに直接使用できます。
スケジューリングポリシー:遅延実行時間 パラメーターを構成して、ノードの実行がワークフローの実行よりも遅れる期間を指定できます。 このチュートリアルでは、このパラメーターを構成する必要はありません。
構成タブの上部ツールバーで、保存 をクリックしてノードを保存します。
dws_user_info_all_di_odps ノードを構成する
このノードは、基本ユーザー情報テーブル ods_user_info_d_odps と処理済みログデータテーブル dwd_log_info_di_odps を集計し、集計結果を dws_user_info_all_di_odps テーブルに同期するために使用されます。
ワークフローのキャンバスで、ポインターを
dws_user_info_all_di_odpsノードの上に移動し、ノードを開く をクリックします。次の SQL 文をコピーして、コードエディターに貼り付けます。
デバッグパラメーターを構成します。
ノードの構成タブの右側のナビゲーションペインで、デバッグ構成 をクリックします。 デバッグ構成 タブで、次のパラメーターを構成します。 これらのパラメーターは、ステップ 4 でワークフローをテストするために使用されます。
パラメーター
説明
計算リソース
環境を準備する ときにワークスペースに関連付けられている MaxCompute 計算リソースを選択します。
リソースグループ
環境を準備する ときに購入したサーバーレス リソースグループを選択します。
スクリプトパラメーター
このパラメーターを構成する必要はありません。 このチュートリアルで提供されているサンプルコードでは、${bizdate} 変数がデータタイムスタンプを表すために使用されます。 ステップ 4 に従ってワークフローをデバッグするときに、変数の値を
20250223などの定数に設定できます。 ワークフローが実行されると、ワークフローの内部ノードに定義された変数は定数に置き換えられます。(オプション) スケジューリングプロパティを構成します。
このチュートリアルでは、スケジュールプロパティ関連のパラメーターはデフォルト値のままでかまいません。 ノードの構成タブの右側のナビゲーションウィンドウで[プロパティ]をクリックして、次のサブタブでパラメーターの値を表示できます。 [プロパティ] タブの他のパラメーターの詳細については、「スケジューリングプロパティ」をご参照ください。
スケジューリングパラメーター:このチュートリアルでは、ワークフローのスケジューリングパラメーターが構成されています。 ワークフローの内部ノードのスケジューリングパラメーターを個別に構成する必要はありません。 構成されたスケジューリングパラメーターは、内部ノードに基づいて開発されたコードとタスクに直接使用できます。
スケジューリングポリシー:遅延実行時間 パラメーターを構成して、ノードの実行がワークフローの実行よりも遅れる期間を指定できます。 このチュートリアルでは、このパラメーターを構成する必要はありません。
構成タブの上部ツールバーで、保存 をクリックしてノードを保存します。
ads_user_info_1d_odps ノードを構成する
このノードは、dws_user_info_all_di_odps テーブルのデータをさらに処理し、処理済みデータを ads_user_info_1d_odps テーブルに同期して、基本的なユーザープロファイルを作成するために使用されます。
ワークフローのキャンバスで、ポインターを
ads_user_info_1d_odpsノードの上に移動し、ノードを開く をクリックします。次の SQL 文をコピーして、コードエディターに貼り付けます。
デバッグパラメーターを設定します。
ノードの構成タブの右側のナビゲーションウィンドウで、[デバッグ構成] をクリックします。[デバッグ構成] タブで、次のパラメーターを構成します。これらのパラメーターは、ステップ 4 でワークフローをテストするために使用されます。
パラメーター
説明
計算リソース
環境を準備する ときにワークスペースに関連付けられている MaxCompute 計算リソースを選択します。
リソースグループ
環境を準備する ときに購入したサーバーレス リソースグループを選択します。
スクリプトパラメーター
このパラメーターを構成する必要はありません。 このチュートリアルで提供されているサンプルコードでは、${bizdate} 変数がデータタイムスタンプを表すために使用されます。 ステップ 4 に従ってワークフローをデバッグするときに、変数の値を
20250223などの定数に設定できます。 ワークフローが実行されると、ワークフローの内部ノードに定義された変数は定数に置き換えられます。デバッグパラメーターを構成します。
ノードの構成タブの右側のナビゲーションウィンドウで、[デバッグ設定] をクリックします。 [デバッグ設定] タブで、次のパラメーターを構成します。 これらのパラメーターは、ステップ 4 でワークフローをテストするために使用されます。
パラメーター
説明
計算リソース
環境を準備する際に、ワークスペースに関連付けられている MaxCompute 計算リソースを選択します。
リソースグループ
環境を準備する際に、購入したサーバーレスリソースグループを選択します。
スクリプトパラメーター
このパラメーターを構成する必要はありません。 このチュートリアルで提供されているサンプルコードでは、${bizdate} 変数はデータタイムスタンプを表すために使用されます。 手順 4 に従ってワークフローをデバッグする際に、変数の値を
20250223などの定数に設定できます。 ワークフローが実行されると、ワークフローの内部ノードに定義されている変数は定数に置き換えられます。構成タブの上部ツールバーで、保存 をクリックしてノードを保存します。
ステップ 4:データを処理する
データを処理します。
ワークフローの構成タブの上部のツールバーで、[実行] をクリックします。「ランタイムパラメーターの入力」ダイアログボックスで、この実行で各ノードに定義されているスケジューリングパラメーターの値を指定し、[OK] をクリックします。このチュートリアルでは、
20250223を指定します。ビジネス要件に基づいて値を指定できます。データ処理結果をクエリします。
Data Studio ページの左側のナビゲーションペインで、
アイコンをクリックします。 DATA STUDIO ペインの 個人ディレクトリ セクションで、
アイコンをクリックして、名前の末尾が .sqlのファイルを作成します。 ビジネス要件に基づいてファイルの名前を指定できます。ファイルの構成タブの下部で、言語モードが
MaxCompute SQLであることを確認します。
コードエディターで、次の SQL 文を入力して、最終結果テーブル
ads_user_info_1d_odpsのデータレコード数をクエリし、データ処理結果が生成されているかどうかを確認します。-- パーティションフィルター条件を現在の操作のデータタイムスタンプに更新する必要があります。 このチュートリアルでは、前のステップで構成したスケジューリングパラメーター bizdate の値は 20250223 です。 SELECT count(*) FROM ads_user_info_1d_odps WHERE dt='データタイムスタンプ';前の文を実行した後に返された結果にデータが存在することが示されている場合は、データ処理は完了です。
前述の文を実行した結果、宛先にデータが存在しない場合は、ワークフローの実行時に、[今回の実行でワークフローの内部ノードに定義されたスケジューリングパラメーターに指定された値]が、前述の文にある
dtフィールドの値と同じであることを確認する必要があります。 ワークフローの設定タブの右側のナビゲーションウィンドウで [実行履歴] をクリックし、次に、今回の実行で生成された実行レコードの [アクション] 列にある [表示] をクリックすると、ワークフローの実行ログで、ワークフローの実行時に使用されるデータタイムスタンプを表示できます。 データタイムスタンプはpartition=[pt=xxx]フォーマットです。
ステップ 5:ワークフローをデプロイする
自動トリガーノードは、本番環境にデプロイされた後にのみ、自動的に実行するようにスケジュールできます。 ワークフローを本番環境にデプロイするには、次の手順を参照してください。
このチュートリアルでは、ワークフローのスケジューリングプロパティを構成する ときに、ワークフローのスケジューリングパラメーターが構成されています。 ワークフロー内の各ノードのスケジューリングパラメーターを個別に構成する必要はありません。
Data Studio ページの左側のナビゲーションペインで、
アイコンをクリックします。 DATA STUDIO ペインの ワークスペースディレクトリ セクションで、作成したワークフローを見つけ、ワークフロー名をクリックしてワークフローの構成タブに移動します。構成タブの上部ツールバーで、デプロイ をクリックします。
DEPLOY タブで、本番環境へのデプロイを開始 をクリックして、画面の指示に従ってワークフローをデプロイします。
ステップ 6:本番環境でノードを実行する
ある日にノードをデプロイした後、ノードに生成されたインスタンスは次の日に実行するようにスケジュールできます。 データバックフィル機能を使用して、デプロイされたワークフロー内のノードのデータをバックフィルできます。これにより、ノードを本番環境で実行できるかどうかを確認できます。 詳細については、「データのバックフィルとデータバックフィルインスタンスの表示 (新バージョン)」をご参照ください。
ノードがデプロイされた後、Data Studio ページの右上隅にある オペレーションセンター をクリックします。
Data Studio ページの左上隅にある
アイコンをクリックし、 を選択することもできます。オペレーションセンター ページの左側のナビゲーションペインで、 を選択します。 自動トリガーノード ページで、ゼロロードノード
workshop_start_odpsを見つけ、ノード名をクリックします。ノードの有向非巡回グラフ (DAG) で、
workshop_start_odpsノードを右クリックし、 を選択します。[データのバックフィル] パネルで、データをバックフィルするノードを選択し、データタイムスタンプ パラメーターを構成して、送信してリダイレクト をクリックします。
データバックフィル ページの上部にある 更新 をクリックして、すべてのノードが正常に実行されたかどうかを確認します。
チュートリアルの操作が完了した後に過剰な料金が発生しないように、ワークフロー内のすべてのノードの 有効期間 パラメーターを構成するか、ゼロロードノード workshop_start_odps をフリーズすることができます。
次のステップ
ダッシュボードでデータを視覚化する:ユーザープロファイル分析が完了したら、DataAnalysis を使用して処理済みデータをグラフに表示します。 これにより、重要な情報をすばやく抽出して、データの背後にあるビジネストレンドを把握できます。
データ品質を監視する:データ処理後に生成されるテーブルの監視ルールを構成して、ダーティデータを事前に識別して遮断し、ダーティデータの影響の拡大を防ぎます。
データを管理する:ユーザープロファイル分析が完了すると、MaxCompute にデータテーブルが生成されます。 Data Map でデータテーブルを表示し、リネージに基づいてデータテーブル間の関係を判断できます。
API を使用してデータサービスを提供する:最終的に処理されたデータを取得したら、DataService Studio の標準化された API を使用してデータを共有し、API を使用してデータを受信する他のビジネスモジュールにデータを提供します。