このトピックでは、DataWorks の EMR Hive ノードを使用して、OSS に同期されたユーザー情報テーブル (ods_user_info_d_emr) とアクセスログデータテーブル (ods_raw_log_d_emr) のデータを処理し、ターゲットとなるユーザープロファイルデータを生成する方法について説明します。
前提条件
開始する前に、「データの同期」の手順を完了してください。
ステップ 1:データ処理ワークフローの構築
「データの同期」で作成した workshop_emr ワークフローをダブルクリックして、ワークフローオーケストレーションページを開き、さらにワークフローノードを追加します。
dwd_log_info_di_emr、dws_user_info_all_di_emr、ads_user_info_1d_emr という 3 つの EMR Hive ノードを作成して名前を付け、次の図に示すように依存関係を設定します。
次の表に、各ノードとその機能を示します。
|
ノードタイプ |
ノード名 |
機能 |
|
|
dwd_log_info_di_emr |
組み込み関数とカスタム関数 ( |
|
|
dws_user_info_all_di_emr |
基本ユーザー情報テーブル ( |
|
|
ads_user_info_1d_emr |
|
ステップ 2:カスタム関数の登録
後続のステップでデータ処理をスムーズに行うために、EMR カスタム関数 (getregion) を登録して、データ同期フェーズで EMR に同期されたログデータ構造をテーブルに解析する必要があります。
EMR JAR リソース (ip2region.jar) のアップロード
-
リソース JAR パッケージをダウンロードします。
ip2region-emr.jar をダウンロードします。
-
EMR JAR リソースを作成します。
DataWorks コンソールの ワークスペースページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[操作] 列の を選択します。
-
左側のナビゲーションウィンドウで、
をクリックしてリソース管理ページに移動します。 -
Resource Management ページで、New をクリックし、[EMR Jar] リソースタイプを選択して、カスタムリソース名を指定します。
-
リソース編集ページに移動し、EMR JAR リソースを設定します。次の表に、主要なパラメーターを示します。
パラメーター
説明
Document Source
ローカルを選択します。
Document Content
Click Upload をクリックして、ダウンロードしたリソース JAR パッケージ
ip2region-emr.jarをアップロードします。Storage Path
OSS を選択します。
環境準備フェーズで EMR クラスターを作成する際に設定した OSS バケットを選択します。
Data Source
データ同期フェーズで関連付けた計算リソースを選択します。
Resource Group
環境準備フェーズで作成したサーバーレスリソースグループを選択します。
-
Save をクリックし、次に Publish をクリックして、リソースを開発環境と本番環境にデプロイします。
EMR 関数 (getregion) の登録
-
関数を作成します。
作成した EMR JAR リソースを右クリックし、 を選択し、関数名を
getregionに設定して、Confirm をクリックして関数を作成します。 -
関数を登録します。
関数設定ページに移動し、EMR 関数を設定します。次の表に、主要なパラメーターを示します。
パラメーター
説明
Function type
[その他] を選択します。
Data Source
データ同期フェーズで関連付けた計算リソースを選択します。
The EMR database
[デフォルト] を選択します。
Resource Group
環境準備フェーズで作成したサーバーレスリソースグループを選択します。
Responsible Person
必要な権限を持つ所有者を選択できます。
Class Name
org.alidata.emr.udf.Ip2Region。Resource List
作成した EMR JAR リソースの名前を選択します。
-
関数をデプロイします。
Save をクリックし、次に Publish をクリックして、関数を開発環境と本番環境にデプロイします。
ステップ 3:EMR ノードの設定
データ処理では、各レイヤーの処理ロジックを EMR Hive スケジューリングを通じて実装する必要があります。このチュートリアルでは、データ処理のための完全なサンプル SQL コードを提供します。次のノードを順番に設定する必要があります:dwd_log_info_di_emr、dws_user_info_all_di_emr、ads_user_info_1d_emr。
ステップ 4:データの処理
-
データを処理します。
ワークフローキャンバスの上部にあるツールバーで、Run をクリックします。この実行のために各ノードで定義されたパラメーター変数の値を設定します (このチュートリアルでは
20250223を使用しますが、必要に応じて値を変更できます)。OK をクリックし、実行が完了するまで待ちます。 -
データ処理結果を検証します。
DataWorks コンソールの ワークスペースページに移動します。上部のナビゲーションバーで、目的のリージョンを選択します。目的のワークスペースを見つけ、[操作] 列の を選択します。
-
Data Studio ページの左側のナビゲーションウィンドウで、
をクリックして DataStudio ページに移動します。左側のディレクトリツリーで、Project Directory を選択します。 -
作成した
workディレクトリを右クリックし、 を選択し、カスタムの EMR Hive ノード名を指定して、Confirm をクリックしてノードを作成します。 -
EMR Hive ノード編集ページに移動し、次のスクリプトのビジネス日付を実際のビジネス日付に置き換えて、データ同期の結果を検証します。ods_raw_log_d_emr と ods_user_info_d_emr にインポートされたレコード数を確認します。
説明クエリ文のパーティション列
dtは、実際のビジネス日付に更新する必要があります。たとえば、タスクが20250223に実行される場合、ビジネス日付は実行日の前日である20250222になります。SELECT * FROM ads_user_info_1d_emr WHERE dt=business_date;-
上記のコマンドがデータを返した場合、データ処理は完了です。
-
クエリがゼロ件を返した場合は、This operation value がクエリの
dtパーティションのビジネス日付と一致していることを確認してください。値を確認するには、ワークフローの右側にある Runtime Logs ペインを開き、実行の Operation 列にある View をクリックします。実行ログには、ビジネス日付の値が表示されます。例:partition=[dt=20250223]。
-
ステップ 5:ワークフローのデプロイ
タスクは、自動的にスケジューリングされる前に本番環境にデプロイする必要があります。以下の手順に従って、ワークフローを本番環境にデプロイできます。
このチュートリアルでは、ワークフロースケジュール設定でスケジューリングパラメーターがすでに設定されています。デプロイ前に各ノードのスケジューリングパラメーターを個別に設定する必要はありません。
-
Data Studio の左側のナビゲーションウィンドウで、
をクリックします。Project Directory セクションで、作成したワークフローを見つけてクリックし、ワークフローダッシュボードを開きます。 -
ページ上部のツールバーで、Publish をクリックしてデプロイパネルを開きます。
-
Start Release Production をクリックし、デプロイプロセスに従ってデプロイを完了します。
ステップ 6:本番環境でのタスクの実行
デプロイ後、インスタンスが生成され、翌日に実行されます。Supplementary data を使用して、デプロイされたワークフローのデータをバックフィルし、タスクが本番環境で実行できることを確認できます。詳細については、「データのバックフィル」をご参照ください。
-
タスクがデプロイされた後、右上隅の Operation and Maintenance Center をクリックします。
または、左上隅の
アイコンをクリックし、 を選択します。 -
左側のナビゲーションウィンドウで、 を選択して 定期的なタスク ページに移動し、
workshop_start_emr仮想ノードをクリックします。 -
右側の DAG で、
workshop_start_emrノードを右クリックし、 を選択します。 -
データをバックフィルするタスクを選択し、ビジネス日付を設定して、Submit and Redirect をクリックします。
-
データバックフィルページで、すべてのタスクが正常に実行されるまで Refresh をクリックします。
チュートリアルが完了したら、継続的なコストが発生しないように、ノードに スケジューリングの有効期間 を設定するか、ワークフローのルートノード (仮想ノード workshop_start_emr) を [フリーズ] することができます。
次のステップ
-
データの分析:ユーザープロファイル分析が完了したら、データ分析モジュールを使用して処理済みデータをグラフで可視化し、主要な情報を迅速に抽出し、データの背後にあるビジネス動向を把握できます。
-
データ品質の監視:データ処理中に生成されたテーブルに対してデータ品質モニタリングを設定し、ダーティデータを事前に特定してブロックすることで、ダーティデータの影響が広がるのを防ぎます。
-
メタデータの管理:ユーザープロファイル分析ワークフローが完了すると、対応するデータテーブルが EMR Hive ノードに作成されます。データマップモジュールで生成されたテーブルを表示し、リネージを使用してテーブル間の関係を表示できます。
-
API を介したデータの共有:最終的に処理されたデータを取得した後、データサービスモジュールを使用して標準化されたデータサービス API を介してデータを共有および適用し、API を介してデータを受信する他のビジネスモジュールにデータを提供します。
アイコンをクリックしてタスクノードを保存します。