このチュートリアルでは、Data Integration のバッチ同期タスクを使用して、MySQL の ods_user_info_d テーブルに格納されている基本的なユーザー情報と、Object Storage Service (OSS) の user_log.txt ファイルに格納されている Web サイトアクセスログデータを、それぞれ MaxCompute の ods_user_info_d テーブルおよび ods_raw_log_d テーブルに同期する方法を例示します。これにより、DataWorks Data Integration を使用して異種データソース間でデータを同期し、データウェアハウスを構築する方法を説明します。
前提条件
必要な作業環境が整っていることを確認してください。詳細な手順については、「環境の準備」をご参照ください。
1. データソースの作成
このチュートリアルで使用する生データを取得するために、ご利用の DataWorks ワークスペースに以下のデータソースを作成します。
MySQL データソース:このチュートリアルでは、MySQL に格納されている基本的なユーザー情報 (
ods_user_info_d) を取得するために、user_behavior_analysis_mysqlという名前の MySQL データソースを使用します。HttpFile データソース:このチュートリアルでは、Object Storage Service (OSS) に格納されているユーザーの Web サイトアクセスログ (
user_log.txt) を取得するために、user_behavior_analysis_httpfileという名前の HttpFile データソースを使用します。
他の計算リソース向けのユーザー プロファイル分析チュートリアルで既に MySQL および HttpFile データソースを作成済みの場合は、この手順をスキップできます。
MySQL データソース (user_behavior_analysis_mysql) の作成
MySQL データベースから基本的なユーザー情報 (ods_user_info_d) を MaxCompute に同期するための MySQL データソースを作成します。
データソースページに移動します。
DataWorks コンソールにログインします。対象のリージョンで、左側のナビゲーションウィンドウの をクリックします。ドロップダウンリストからワークスペースを選択し、入力 管理センター をクリックします。
左側のナビゲーションウィンドウで、Data Source をクリックします。
Add Connection をクリックし、データソースタイプとして MySQL を検索して選択します。
[MySQL データソースの作成] ページでパラメーターを設定します。このチュートリアルでは、開発環境と本番環境の両方で同じサンプル値を使用します。
以下の表は、このチュートリアルで必要な主なパラメーターを示しています。その他のパラメーターはデフォルト値のままにしてください。
パラメーター
説明
Data Source Name
データソース名を入力します。このチュートリアルでは、
user_behavior_analysis_mysqlと入力します。Description
DataWorks チュートリアル専用のデータソースです。バッチ同期タスクを設定する際に、プラットフォームが提供するテストデータを読み取ることができます。このデータソースは Data Integration シナリオでの読み取り操作のみをサポートしており、他のモジュールでは使用できません。
設定モード
User-created Data Store with Public IP Addresses を選択します。
Connection Address
ホスト IP アドレス:
rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.comポート:
3306
Database Name
データベース名を入力します。このチュートリアルでは、
workshopと入力します。Username
ユーザー名を入力します。このチュートリアルでは、
workshopと入力します。Password
パスワードを入力します。このチュートリアルでは、
workshop#2017と入力します。Authentication Method
認証なし。
接続設定 セクションで、本番環境および開発環境の両方について テスト接続 をクリックし、接続ステータスが 接続可能 であることを確認します。
重要リソースグループがワークスペースに関連付けられており、パブリックネットワークアクセスが設定されていることを確認してください。設定されていない場合、後続のデータ同期中にエラーが発生します。設定手順については、「環境の準備」をご参照ください。
利用可能なリソースグループがない場合は、接続設定セクションの指示に従い、Go to Buy および 購入したリソースグループのバインド をクリックします。
Complete Creation をクリックします。
HttpFile データソース (user_behavior_analysis_httpfile) の作成
このチュートリアルで使用するユーザーの Web サイトアクセスログデータは OSS に格納されています。OSS から MaxCompute にユーザーの Web サイトアクセスログ (user_log.txt) を同期するための HttpFile データソースを作成する必要があります。
[Management Center]ページで、左側のナビゲーションウィンドウにある[Data Source]をクリックします。
Add Connection をクリックします。Add Connection ダイアログで、データソースタイプとして [Httpfile] を検索して選択します。
[Httpfile データソースの作成] ページでパラメーターを設定します。このチュートリアルでは、開発環境と本番環境の両方で同じサンプル値を使用します。
以下の表は、このチュートリアルで必要な主なパラメーターを示しています。その他のパラメーターはデフォルト値のままにしてください。
パラメーター
説明
Data Source Name
データソース名を入力します。このチュートリアルでは、
user_behavior_analysis_httpfileと入力します。Description
DataWorks チュートリアル専用のデータソースです。バッチ同期タスクを設定する際に、プラットフォームが提供するテストデータを読み取ることができます。このデータソースは Data Integration シナリオでの読み取り操作のみをサポートしており、他のモジュールでは使用できません。
URL
開発環境および本番環境の両方で、URL を
https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.comに設定します。接続設定 セクションで、本番環境および開発環境の両方について テスト接続 をクリックし、接続ステータスが 接続可能 であることを確認します。
重要リソースグループがワークスペースに関連付けられており、パブリックネットワークアクセスが設定されていることを確認してください。設定されていない場合、後続のデータ同期中にエラーが発生します。設定手順については、「環境の準備」をご参照ください。
利用可能なリソースグループがない場合は、接続設定セクションの指示に従い、Go to Buy および 購入したリソースグループのバインド をクリックします。
Complete Creation をクリックします。
2. 同期パイプラインの構築
このステップでは、ユーザーの基本情報および Web サイトアクセスログデータを MaxCompute テーブルに同期する同期パイプラインを構築し、後続のデータ処理を行います。
左上隅の
アイコンをクリックし、 を選択します。その後、ページ上部でこのチュートリアル用に作成したワークスペースに切り替えます。左側のナビゲーションウィンドウで
をクリックしてデータ開発ページに移動します。Project Directory セクションで、
をクリックして Create Workflow を選択します。ワークフロー名を設定します。このチュートリアルでは、user_profile_analysisと設定します。ワークフロー オーケストレーションページで、New Node をクリックし、右側のキャンバスに Zero-Load Node および Data Integration ノードをドラッグします。Data Integration ノードを次のように設定します。
Data Source Type:MySQL。
Data destination type:MaxCompute。
Specific Type:単一テーブル バッチ同期。
ノード名を設定します。以下の表は、このチュートリアルでのサンプルノード名とその目的を示しています。
ノードタイプ
ノード名
目的
仮想ノードworkshop_startユーザー プロファイル分析ワークフロー全体を管理し、データフロー経路を明確にするために使用されます。このノードは 空の実行中のタスク であり、コードは不要です。
バッチ同期ノードods_user_info_dMySQL から MaxCompute の
ods_user_info_dテーブルに基本的なユーザー情報を同期するために使用されます。
バッチ同期ノードods_raw_log_dOSS から MaxCompute の
ods_raw_log_dテーブルにユーザーの Web サイトアクセスログを同期するために使用されます。手動で接続をドラッグし、
workshop_startノードを 2 つのバッチ同期ノードの上流ノードに設定します。最終的な結果は次のとおりです。ワークフローのスケジューリングを設定します。
ワークフロー オーケストレーションページの右側で、Scheduling Configuration をクリックし、パラメーターを設定します。以下の表は、このチュートリアルで必要な主なパラメーターを示しています。その他のパラメーターはデフォルト値のままにしてください。
スケジュール設定パラメーター
説明
Scheduling Parameters
ワークフロー全体のスケジューリングパラメーターを設定します。ワークフロー内の内部ノードはこれを直接使用できます。このチュートリアルでは、前日の日付を取得するために
bizdate=$[yyyymmdd-1]と設定します。Scheduling period
このチュートリアルでは、
Dayに設定します。Scheduling time
このチュートリアルでは、Scheduling time を
00:30に設定します。ワークフローは毎日00:30に実行されます。ノード依存関係の設定
ワークフローには上流依存関係がないため、設定は不要です。管理を容易にするために、Using the Workspace Root Node をクリックして、ワークフローをワークスペースルートノード配下にマウントできます。
ワークスペースルートノードの名前は、
ワークスペース名_rootの形式になります。
3. 同期タスクの設定
初期ノードの設定
ワークフロー オーケストレーションページで、
workshop_startノードにカーソルを合わせ、Open Node をクリックします。workshop_startノード編集ページの右側で、Scheduling Configuration をクリックし、パラメーターを設定します。以下の表は、このチュートリアルで必要な主なパラメーターを示しています。その他のパラメーターはデフォルト値のままにしてください。スケジュール設定パラメーター
説明
Scheduling Type
このチュートリアルでは、
Dry Runに設定します。Resource Group
このチュートリアルでは、「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
ノード依存関係の設定
workshop_startは初期ノードであり、上流依存関係がないため、Using the Workspace Root Node をクリックして、ワークスペースルートノードからワークフローの実行をトリガーできます。ワークスペースルートノードの名前は、
ワークスペース名_rootです。
ユーザー データ同期パイプライン (ods_user_info_d) の設定
ワークフロー オーケストレーションページで、
ods_user_info_dノードにカーソルを合わせ、Open Node をクリックします。同期パイプラインのネットワークおよびリソースを設定します。
パラメーター
説明
Data source
データソース:
MySQL。データソース名:
user_behavior_analysis_mysql。
My Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Data going
データ送信先:
MaxCompute(ODPS)。データソース名:「環境の準備」ステップで関連付けた MaxCompute 計算リソースを選択します。この例では、
MaxCompute_Sourceです。
次のステップ をクリックして、同期タスクを設定します。
Configure Source and Destination
以下の表は、このチュートリアルで必要な主なパラメーターを示しています。その他のパラメーターはデフォルト値のままにしてください。
セクション
パラメーター
説明
Data source
Table
ods_user_info_dを選択します。Shard Key
分割キーを
uid列に設定します。uid 列は MySQL のods_user_info_dテーブルのプライマリキーです。Data going
Tunnel Resource Group
このチュートリアルのデフォルト値は パブリック転送リソース です。専用トンネルクォータをお持ちの場合は、ドロップダウンリストから選択できます。専用トンネルクォータの詳細については、「トンネルクォータ」をご参照ください。
Table
Generate Destination Table Schema をクリックして、MaxCompute テーブルを迅速に作成します。以下の DDL ステートメントを テーブル構築ステートメント セクションに貼り付け、New Table をクリックします。このテーブルは、ソースからのユーザー データを受信するために使用されます。
CREATE TABLE IF NOT EXISTS ods_user_info_d ( uid STRING COMMENT 'User ID', gender STRING COMMENT 'Gender', age_range STRING COMMENT 'Age range', zodiac STRING COMMENT 'Zodiac sign' ) PARTITIONED BY ( dt STRING ) LIFECYCLE 7;Partition Information
このチュートリアルでは、
${bizdate}と入力します。これは、デバッグ中にbizdateパラメーターに定数値を割り当て、スケジュール実行中にbizdateパラメーターに動的値を割り当てるために使用されます。Data Studio でサポートされている変数形式および設定方法の詳細については、「スケジューリングパラメーター」をご参照ください。Field Mapping および Channel を確認します。
DataWorks は、ソースと送信先の間でカラムをマッピングし、指定されたソースカラムから指定された送信先カラムにデータを書き込みます。また、タスクの同時実行数およびダーティデータ処理ポリシーの設定もサポートしています。このチュートリアルでは、Policy for Dirty Data Records を Disallow Dirty Data Records に設定し、その他の設定はデフォルトのままにしてください。詳細については、「チャンネル制御の設定」をご参照ください。
デバッグパラメーターを設定します。
バッチ同期タスク設定ページの右側で、Run Configuration をクリックし、以下のパラメーターを設定します。これらのパラメーターは、ステップ 4 で Run Configuration パラメーターを使用してデバッグする際に使用されます。
パラメーター
説明
Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Script Parameters
設定は不要です。このチュートリアルのサンプルコードでは、
${bizdate}を使用してビジネス日付を表します。ステップ 4 でワークフローをデバッグする際には、This operation value を特定の定数(例:20250223)に設定します。タスクは実行時にこの定数を使用して、タスク内で定義された変数を置き換えます。(オプション)スケジュール設定を構成します。
このチュートリアルでは、スケジュール設定をデフォルト値のままにしてください。バッチ同期タスク設定ページの右側で、Scheduling Configuration をクリックできます。スケジュール設定パラメーターの詳細な説明については、「スケジュール設定」をご参照ください。
Scheduling Parameters:このチュートリアルでは、すでにワークフローレベルで設定されています。ワークフロー内の内部ノードは個別に設定する必要がなく、タスクまたはコード内で直接使用できます。
Scheduling Policy:ワークフロー開始後に子ノードの実行を遅延させるために、Delayed execution time パラメーターを指定できます。このチュートリアルでは、未設定のままにしてください。
ノードツールバーで、Save をクリックします。
ユーザー ログ同期パイプライン (ods_raw_log_d) の設定
ワークフロー オーケストレーションページで、
ods_raw_log_dノードにカーソルを合わせ、Open Node をクリックします。同期パイプラインのネットワークおよびリソースを設定します。
パラメーター
説明
Data source
データソース:
HttpFile。データソース名:
user_behavior_analysis_httpfile。
My Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Data going
データ送信先:
MaxCompute(ODPS)。データソース名:「環境の準備」ステップで関連付けた MaxCompute 計算リソースを選択します。この例では、
MaxCompute_Sourceです。
次のステップ をクリックして、同期タスクを設定します。
Configure Source and Destination
以下の表は、このチュートリアルで必要な主なパラメーターを示しています。その他のパラメーターはデフォルト値のままにしてください。
セクション
パラメーター
説明
Data source
File Path
このチュートリアルでは、
/user_log.txtと入力します。File Type
このチュートリアルでは、
textタイプを選択します。Field Delimiter
このチュートリアルでは、
|と入力します。Advanced Configuration > Skip Header
このチュートリアルでは、ヘッダーをスキップしないように
いいえを選択します。重要データソースを設定したら、Confirm Data Structure をクリックして、ログファイルが正しく読み取れることを検証します。
Data going
Tunnel Resource Group
このチュートリアルのデフォルト値は パブリック転送リソース です。専用トンネルクォータをお持ちの場合は、ドロップダウンリストから選択できます。専用トンネルクォータの詳細については、「トンネルクォータ」をご参照ください。
Table
Generate Destination Table Schema をクリックして、MaxCompute テーブルを迅速に作成します。以下の DDL ステートメントを テーブル構築ステートメント セクションに貼り付け、New Table をクリックします。このテーブルは、ソースからのユーザー ログデータを受信するために使用されます。
CREATE TABLE IF NOT EXISTS ods_raw_log_d ( col STRING ) PARTITIONED BY ( dt STRING ) LIFECYCLE 7;Partition Information
このチュートリアルでは、
${bizdate}と入力します。これは、デバッグ中にbizdateパラメーターに定数値を割り当て、スケジュール実行中にbizdateパラメーターに動的値を割り当てるために使用されます。Data Studio でサポートされている変数形式および設定方法の詳細については、「スケジューリングパラメーター」をご参照ください。Field Mapping および Channel を確認します。
DataWorks は、ソースと送信先の間でカラムをマッピングし、指定されたソースカラムから指定された送信先カラムにデータを書き込みます。また、タスクの同時実行数およびダーティデータ処理ポリシーの設定もサポートしています。このチュートリアルでは、Policy for Dirty Data Records を Disallow Dirty Data Records に設定し、その他の設定はデフォルトのままにしてください。詳細については、「チャンネル制御の設定」をご参照ください。
デバッグパラメーターを設定します。
バッチ同期タスク設定ページの右側で、Run Configuration をクリックし、以下のパラメーターを設定します。これらのパラメーターは、ステップ 4 で Run Configuration パラメーターを使用してデバッグする際に使用されます。
パラメーター
説明
Resource Group
「環境の準備」ステップで購入したサーバーレスリソースグループを選択します。
Script Parameters
設定は不要です。このチュートリアルのサンプルコードでは、
${bizdate}を使用してビジネス日付を表します。ステップ 4 でワークフローをデバッグする際には、This operation value を特定の定数(例:20250223)に設定します。タスクは実行時にこの定数を使用して、タスク内で定義された変数を置き換えます。(オプション)スケジュール設定を構成します。
このチュートリアルでは、スケジュール設定をデフォルト値のままにしてください。バッチ同期タスク設定ページの右側で、Scheduling Configuration をクリックできます。スケジュール設定パラメーターの詳細な説明については、「スケジュール設定」をご参照ください。
Scheduling Parameters:このチュートリアルでは、すでにワークフローレベルで設定されています。ワークフロー内の内部ノードは個別に設定する必要がなく、タスクまたはコード内で直接使用できます。
Scheduling Policy:ワークフロー開始後に子ノードの実行を遅延させるために、Delayed execution time パラメーターを指定できます。このチュートリアルでは、未設定のままにしてください。
ノードツールバーで、Save をクリックします。
ステップ 4:データ同期
データを同期します。
ワークフローツールバーで、Run をクリックします。今回の実行のために各ノードで定義されたパラメーター変数の値を設定します(このチュートリアルでは
20250223を使用します。必要に応じて変更できます)。OK をクリックし、実行が完了するまで待ちます。データ同期の結果を確認します。
Data Studio の左側のナビゲーションウィンドウで、
をクリックしてデータ開発ページに移動します。個人ディレクトリセクションで、
をクリックして .sql拡張子を持つファイルを作成します(ファイル名は任意で設定できます)。ページ下部で、言語モードが以下のように
MaxCompute SQLに設定されていることを確認します。
ノード編集ウィンドウで、以下の SQL ステートメントを入力して、
ods_raw_log_dテーブルおよびods_user_info_dテーブルにインポートされたレコード数を確認し、同期されたデータが送信先に書き込まれていることを確認します。-- 実際の操作におけるビジネス日付に合わせて、パーティションのフィルター条件を変更する必要があります。このチュートリアルでは、上記で設定したデバッグパラメーター bizdate(ビジネス日付)が 20250223 です。 SELECT count(*) FROM ods_user_info_d WHERE dt='business date'; SELECT count(*) FROM ods_raw_log_d WHERE dt='business date';上記のクエリがデータを返した場合、データ同期は完了しています。
データが返されない場合は、ワークフロー実行時に設定した This operation value が、クエリ内の
dtで指定されたビジネス日付と一致していることを確認してください。ワークフローをクリックし、右側の Runtime Logs をクリックし、実行履歴の Operation 列の View をクリックして、ワークフロー ランタイムログ内のビジネス日付値(partition=[pt=xxx])を確認できます。
次のステップ
データ同期の設定が完了したら、次のチュートリアルに進んで、同期されたデータの処理および分析方法を学習できます。詳細については、「データ処理」をご参照ください。