このチュートリアルでは、DataWorks の単一テーブルデータ統合バッチタスクを使用して、MySQL テーブル ods_user_info_d の基本的なユーザー情報と Object Storage Service (OSS) ファイル user_log.txt の Web サイトアクセスログを、それぞれ StarRocks テーブル ods_user_info_d_starrocks と ods_raw_log_d_starrocks に同期する方法について説明します。このプロセスでは、異種データソース間でデータを同期して、データウェアハウスにデータを格納します。
前提条件
作業環境が準備されていることを確認してください。詳細な手順については、「環境の準備」をご参照ください。
1. データソースの追加
スムーズなデータ処理ワークフローを確保するために、お使いの DataWorks ワークスペースに次のデータソースを作成し、プラットフォームから提供される初期データを取得します。
-
MySQL データソース:このデータソースは
user_behavior_analysis_mysqlという名前で、MySQL のods_user_info_dテーブルからユーザーの基本情報を取得します。 -
HttpFile データソース: このデータソースの名前は
user_behavior_analysis_httpfileで、OSS のuser_log.txtファイルからユーザーのウェブサイトアクセスログを取得します。
MySQL データソースの追加 (user_behavior_analysis_mysql)
このチュートリアルでは、基本ユーザー情報は MySQL データベースに格納されています。基本ユーザー情報データ(ods_user_info_d)を StarRocks に同期するには、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 セクションの画面の指示に従い、Go to Buyと購入したリソースグループのバインドをクリックします。
-
-
Complete Creation をクリックします。
HttpFile データソースの追加 (user_behavior_analysis_httpfile)
このチュートリアルでは、ユーザーの Web サイトアクセスログデータは OSS に保存されています。OSS から StarRocks にユーザーの 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 セクションの画面の指示に従い、Go to Buy と 購入したリソースグループのバインド をクリックします。
-
-
Complete Creation をクリックします。
2. 同期ワークフローの構築
-
左上隅の
アイコンをクリックして を選択し、このチュートリアル用に作成したワークスペースに切り替えます。 -
左側のナビゲーションウィンドウで、
をクリックします。Project Directory セクションで、
をクリックし、Create Workflow を選択します。ワークフローの名前を設定します。このチュートリアルでは、名前を user_profile_analysis_starrocksに設定します。 -
ワークフローオーケストレーションページで、Zero-Load Node を1つと Data Integration ノードを2つ右側のキャンバスにドラッグします。Data Integration ノードを次のように設定します:
-
Data Source Type:
MySQL。 -
Data destination type:
OSS. -
Specific Type: 単一テーブルオフライン。
ノードタイプ
ノード名
説明
ゼロロードノードworkshop_start_starrocksユーザープロファイル分析ワークフローを管理して、データフローパスを明確にします。このノードは空の実行中のタスクであり、コードの編集は不要です。
StarRocks ノードddl_ods_user_info_d_starrocks同期タスクの前に実行します。このノードは、MySQL ソースからのユーザーの基本情報を格納するために、StarRocks テーブル
ods_user_info_d_starrocksを作成します。
StarRocks ノードddl_ods_raw_log_d_starrocks同期タスクの前に実行します。このノードは、OSS ソースからのユーザーウェブサイトアクセスログを格納するStarRocks テーブル
ods_raw_log_d_starrocksを作成します。
単一テーブルオフラインノードods_user_info_d_starrocksユーザーの基本情報を MySQL から StarRocks テーブル
ods_user_info_d_starrocksに同期します。
単一テーブルオフラインノードods_raw_log_d_starrocksOSS からStarRocks テーブル
ods_raw_log_d_starrocksに、ユーザーの Web サイトアクセスログを同期します。 -
-
ノード間に回線をドラッグして、手動で接続します。
workshop_start_starrocksノードを 2 つの単一テーブルオフラインノードの上流ノードとして設定します。最終的なワークフローは、次の図に示されています。 -
ワークフローのスケジューリングを設定します。
フローオーケストレーションページの右側で、Scheduling Configuration をクリックし、パラメーターを設定します。以下の表では、このチュートリアルの主要なパラメーターについて説明します。その他のパラメーターについては、デフォルト値のままでかまいません。
パラメーター
説明
Scheduling Parameters
ワークフロー全体のスケジューリングパラメーターを設定します。このパラメーターは、その内部ノードで直接使用できます。このチュートリアルでは、前日の日付を取得するために、パラメーターを
bizdate=$[yyyymmdd-1]に設定します。Scheduling period
このチュートリアルでは、これを
Dailyに設定します。Scheduling time
このチュートリアルでは、Scheduling time を
00:30に設定します。ワークフローは毎日00:30に開始されます。スケジューリング依存関係
このワークフローには上流の依存関係がありません。管理しやすくするために、Using the Workspace Root Node を選択して、ワークスペースのルートノードにアタッチできます。
ワークスペースルートノードには、
workspace-name_rootというフォーマットが使用されます。
ステップ 3:同期タスクの設定
初期ノードの設定
-
フローオーケストレーションページで、
workshop_start_starrocksノードにマウスカーソルを合わせ、Open Node をクリックします。 -
workshop_start_starrocksノード構成ページの右側で、Scheduling Configuration をクリックしてスケジューリングプロパティを構成します。 次の表では、このチュートリアルの主要なパラメーターについて説明します。 その他のパラメーターについては、デフォルト値のままにしておくことができます。パラメーター
説明
Scheduling Type
このチュートリアルでは、このパラメーターを
dry runに設定します。Scheduling Resource Groups
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
Node dependency configuration
workshop_start_starrocksは初期ノードであり、上流の依存関係がないため、Using the Workspace Root Node をクリックして、ワークスペースのルートノードからワークフローをトリガーします。ワークスペースルートノードは、
WorkspaceName_rootというフォーマットで命名されます。
ユーザーテーブルを作成 ddl_ods_user_info_d_starrocks
StarRocks にデータを同期する前に、MySQL データソースのユーザー基本情報を格納する ddl_ods_user_info_d_starrocks テーブルを作成します。このテーブルは、後述するようにノード内で作成することも、[Data Catalog] で手動で作成することもできます。
-
ワークフローオーケストレーションページで、
ddl_ods_user_info_d_starrocksノードにカーソルを合わせ、Open Node をクリックします。 -
CREATE TABLE文を編集します。CREATE TABLE IF NOT EXISTS ods_user_info_d_starrocks ( uid STRING COMMENT 'ユーザー ID', gender STRING COMMENT '性別', age_range STRING COMMENT '年齢層', zodiac STRING COMMENT '星座', dt STRING not null COMMENT '日付' ) DUPLICATE KEY(uid) COMMENT 'ユーザー行動分析 - 基本ユーザー情報テーブル' PARTITION BY(dt) PROPERTIES("replication_num" = "1"); -
デバッグ設定を構成します。
StarRocks ノード構成ページの右側で、Run Configuration をクリックし、次のパラメーターを構成します。ステップ 4 では、Run Configuration のパラメーターを使用してデバッグ中に実行をテストできます。
パラメーター
説明
Computing Resources
「環境の準備」ステップでバインドした StarRocks コンピューティングリソースを選択します。
Resource Group
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
-
(オプション) スケジューリングプロパティを設定します。
ノード構成ページの右側で、Scheduling Configuration をクリックしてスケジューリングプロパティを表示します。このチュートリアルでは、デフォルト値を使用できます。これらのパラメーターの詳細については、「ノードスケジューリング構成」をご参照ください。
-
Scheduling Parameters: ワークフローレベルで構成するため、ノードレベルでの構成は不要です。タスクやコードで直接参照できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用して、ワークフローの開始後、子ノードを実行するまでの遅延時間を指定できます。 このチュートリアルでは、この設定は使用しません。
-
-
上部ツールバーで、Save をクリックします。
ログテーブルの作成: ddl_ods_raw_log_d_starrocks
StarRocks にデータを同期する前に、HttpFile データソースからのユーザーのウェブサイトアクセスログを保存するための ddl_ods_raw_log_d_starrocks テーブルを作成します。 テーブルは、後述するようにノード内で作成するか、[Data Catalog] で手動で作成できます。
-
フローオーケストレーションページで、
ddl_ods_raw_log_d_starrocksノードにカーソルを合わせ、Open Node をクリックします。 -
CREATE TABLE文を編集します。CREATE TABLE IF NOT EXISTS ods_raw_log_d_starrocks ( col STRING COMMENT 'ログエントリ', dt DATE not null COMMENT '日付' ) DUPLICATE KEY(col) COMMENT 'ユーザー行動分析 - 生のウェブサイトアクセスログテーブル' PARTITION BY(dt) PROPERTIES ("replication_num" = "1"); -
デバッグ設定を構成します。
バッチ同期ノード構成ページの右側で、Run Configuration をクリックし、ステップ 4 のデバッグ実行中に Run Configuration の関連パラメーターでテスト実行を行うように、以下のパラメーターを構成します。
パラメーター
説明
Computing Resources
「環境の準備」ステップでバインドした StarRocks コンピューティングリソースを選択します。
Resource Group
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
-
(オプション) スケジューリングプロパティを設定します。
ノード構成ページの右側で、Scheduling Configuration をクリックしてスケジューリングプロパティを表示します。このチュートリアルでは、デフォルト値をそのまま使用できます。これらのパラメーターの詳細については、「ノードスケジューリング構成」をご参照ください。
-
Scheduling Parameters:ワークフローレベルで構成するため、ノードレベルの構成は不要です。タスクやコードで直接参照できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用すると、ワークフローの開始後に子ノードの実行を遅延させることができます。このチュートリアルでは、この設定は使用しません。
-
-
上部のツールバーで、Save をクリックします。
ユーザーデータパイプラインの設定 (ods_user_info_d_starrocks)
-
フローオーケストレーションページで、
ods_user_info_d_starrocksノードにマウスカーソルを合わせ、Open Node をクリックします。 -
同期パイプラインのネットワークとリソースを設定します。
パラメーター
説明
Data source
-
Data source: MySQL
-
Data Source Name:
user_behavior_analysis_mysql
My Resource Group
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
Data going
-
Data going: StarRocks
-
Data Source Name:
doc_starrocks_storage_compute_tightly_01
-
-
タスクを設定します。
-
Configure Source and Destination。
セクション
パラメーター
設定
Data source
Table
MySQL テーブル
ods_user_info_dを選択します。Shard Key
プライマリキーまたはインデックス付きの列を分割キーとして使用します。整数データ型のみがサポートされています。
このチュートリアルでは、スプリットキーを
uidフィールドに設定します。Data going
Table
StarRocks テーブル
ods_user_info_d_starrocksを選択します。Statement Run Before Writing
このチュートリアルでは、
dtフィールドに基づく動的パーティションを使用します。ノードが再実行された際のデータの重複を防ぐため、次の SQL ステートメントは各同期の前にターゲットパーティションを削除します。ALTER TABLE ods_user_info_d_starrocks DROP PARTITION IF EXISTS p${var} FORCE文では、スケジューリング構成時に値が割り当てられるパラメーター${var}が使用されます。 これにより、スケジューリングシナリオでの動的パラメーター入力が可能になります。 詳細については、「スケジューリング設定」をご参照ください。Streamload Request Parameters
StreamLoad のリクエストパラメーター。値は JSON 形式である必要があります。
{ "row_delimiter": "\\x02", "column_separator": "\\x01" } -
Field Mapping。
フィールドマッピングを使用して、ソースフィールドと送信先フィールドの関係を定義します。スケジューリングパラメーターを T 変数に割り当てることで、StarRocks パーティションフィールドを動的に入力し、日次データが正しいパーティションに書き込まれるようにします。
-
[同名のフィールドをマッピング] をクリックします。システムは、ソースの MySQL フィールドを同じ名前の送信先フィールドに自動的にマッピングします。
-
[追加] をクリックし、
'${var}'を入力し、このフィールドを StarRocks テーブルのdtフィールドに手動でマップします。
-
-
Channel。
このチュートリアルでは、Policy for Dirty Data Records を Disallow Dirty Data Records に設定し、その他の設定はデフォルト値のままにします。 詳細については、「コードレス UI でバッチ同期ノードを設定する」をご参照ください。
-
-
デバッグ設定を構成します。
バッチ同期ノード設定ページの右側で、Run Configuration をクリックし、次のパラメーターを設定します。ステップ 4 のデバッグ実行中に、Run Configuration セクションのパラメーターを使用して実行をテストできます。
パラメーター
説明
Resource Group
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
Script Parameters
Add parameter をクリックし、
var=20250223のように、定数をvar=yyyymmddフォーマットで設定します。 デバッグ中、 Data Studio はタスク変数をこの定数で置き換えます。 -
(オプション) スケジューリングプロパティを設定します。
ノード構成ページの右側で、Scheduling Configuration をクリックすると、スケジューリングプロパティが表示されます。このチュートリアルでは、デフォルト値のままにしておくことができます。これらのパラメーターの詳細については、「ノードスケジューリング構成」をご参照ください。
-
Scheduling Parameters: これらはワークフローレベルで構成するため、ノードレベルの構成は不要です。タスクまたはコードで直接参照できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用して、ワークフローの開始後に子ノードを実行するための遅延を指定できます。このチュートリアルでは、この設定は使用しません。
-
-
上部ツールバーで、Save をクリックします。
ログデータパイプラインの設定 (ods_raw_log_d_starrocks)
-
ワークフローオーケストレーションページで、
ods_raw_log_d_starrocksノードにポインターを合わせ、Open Node をクリックします。 -
同期パイプラインのネットワークとリソースを設定します。
以下の詳細に従ってData source、My Resource Group、Data goingを設定します。その後、次のステップをクリックし、画面の指示に従って接続性テストを完了します。
パラメーター
設定
Data source
-
Data source: HttpFile
-
Data Source Name:
user_behavior_analysis_HttpFile
My Resource Group
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
Data going
-
Data going: StarRocks
-
Data Source Name:
doc_starrocks_storage_compute_tightly_01
-
-
次のステップ をクリックして、同期タスクを設定します。
-
Configure Source and Destination。
セクション
パラメーター
設定
Data source
File Path
/user_log.txtFile Type
テキストField Delimiter
|Noソースを設定した後、Confirm Data Structure をクリックします。
Data going
Table
StarRocks テーブル
ods_raw_log_d_starrocksを選択します。Statement Run Before Writing
このチュートリアルでは、
dtフィールドに基づく動的パーティションを使用します。ノードが再実行された際のデータ重複を防ぐため、次の SQL ステートメントは、各同期の前にターゲットパーティションを削除します。ALTER TABLE ods_raw_log_d_starrocks DROP PARTITION IF EXISTS p${var} FORCE文は、パラメーター${var}を使用します。このパラメーターには、スケジューリング構成時に値が割り当てられます。これにより、スケジューリングシナリオでの動的パラメータ入力が可能になります。詳細については、「スケジューリング設定」をご参照ください。Streamload Request Parameters
StreamLoad のリクエストパラメーター。値は JSON 形式である必要があります。
{ "row_delimiter": "\\x02", "column_separator": "\\x01" } -
Channel。
このチュートリアルでは、Policy for Dirty Data Records を Disallow Dirty Data Records に設定し、その他の設定はデフォルト値のままにします。詳細については、「コードレス UI でバッチ同期ノードを設定する」をご参照ください。
-
Field Mapping。
ノードのツールバーで、
アイコンをクリックして、構成モードを Wizard Mode から Script Mode に切り替えます。これにより、HttpFile データソースのフィールドをマップし、StarRocks パーティションフィールド dtに値を動的に割り当てることができます。-
ソースの
column設定に、次のコードを追加します:{ "type": "STRING", "value": "${var}" } -
以下は、
ods_raw_log_d_starrocksノードの完全なスクリプトです:{ "type": "job", "version": "2.0", "steps": [ { "stepType": "httpfile", "parameter": { "fileName": "/user_log.txt", "nullFormat": "", "compress": "", "requestMethod": "GET", "connectTimeoutSeconds": 60, "column": [ { "index": 0, "type": "STRING" }, { "type": "STRING", "value": "${var}" } ], "skipHeader": "false", "encoding": "UTF-8", "fieldDelimiter": "|", "fieldDelimiterOrigin": "|", "socketTimeoutSeconds": 3600, "envType": 0, "datasource": "user_behavior_analysis", "bufferByteSizeInKB": 1024, "fileFormat": "text" }, "name": "Reader", "category": "reader" }, { "stepType": "starrocks", "parameter": { "loadProps": { "row_delimiter": "\\x02", "column_separator": "\\x01" }, "envType": 0, "datasource": "doc_starrocks_storage_compute_tightly_01", "column": [ "col", "dt" ], "tableComment": "", "table": "ods_raw_log_d_starrocks", "preSql": "ALTER TABLE ods_raw_log_d_starrocks DROP PARTITION IF EXISTS p${var} FORCE;" }, "name": "Writer", "category": "writer" }, { "copies": 1, "parameter": { "nodes": [], "edges": [], "groups": [], "version": "2.0" }, "name": "Processor", "category": "processor" } ], "setting": { "errorLimit": { "record": "0" }, "locale": "en", "speed": { "throttle": false, "concurrent": 2 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
-
-
-
デバッグ設定を構成します。
バッチ同期ノードの構成ページの右側で、Run Configuration をクリックし、以下のパラメーターを設定します。ステップ 4 のデバッグ実行中に、Run Configuration セクションのパラメーターを使用して実行をテストできます。
パラメーター
説明
Resource Group
「環境の準備」ステップで作成したサーバーレスリソースグループを選択します。
Script Parameters
Add parameter をクリックし、定数を
var=yyyymmddフォーマットで設定します (例:var=20250223)。 デバッグ中に、DataStudio はタスク変数をこの定数に置き換えます。 -
(オプション) スケジューリングプロパティを設定します。
ノード構成ページの右側で、Scheduling Configuration をクリックしてスケジューリングプロパティを表示します。このチュートリアルでは、デフォルト値のままにしておくことができます。これらのパラメーターの詳細については、「ノードのスケジューリング構成」をご参照ください。
-
Scheduling Parameters: これらはワークフローレベルで構成するため、ノードレベルの構成は必要ありません。 タスクまたはコードで直接参照できます。
-
Scheduling Policy: Delayed execution time パラメーターを使用して、ワークフローの開始後に子ノードの実行に遅延を指定できます。このチュートリアルでは、この設定は使用しません。
-
-
上部のツールバーで、Save をクリックします。
4. タスクの実行
-
データを同期します。
ワークフローのツールバーで Run をクリックし、この実行の各ノードで定義されているパラメーター変数の値を設定し (このチュートリアルでは
20250223を使用しますが、必要に応じて値を変更できます)、OK をクリックして、実行が完了するまで待ちます。 -
結果を確認します。
[SQL クエリ] ページに移動します。
DataWorks コンソールにログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されたページで、[データ分析へ移動] をクリックします。 表示されたページの左側のナビゲーションウィンドウで、[SQL クエリ] をクリックします。
-
SQL クエリファイルを設定します。
-
Show My Nodes Only の横にある
アイコンをクリックして新しいファイルを作成し、SQL クエリファイルに名前を付けます。 -
新しいファイルをクリックしてエディターを開きます。
-
ファイルエディターの右上隅にある
アイコンをクリックして、SQL クエリのワークスペースとデータソースを設定します。次の表にパラメーターを示します。パラメーター
説明
Work space
user_profile_analysis_starrocksワークフローがあるワークスペースを選択します。Data Source Type
ドロップダウンリストから、
StarRocksを選択します。Data Source Name
「環境の準備」でバインドした StarRocks 開発環境を選択します。
-
[OK] をクリックしてデータソース設定を保存します。
-
-
SQL クエリを編集します。
このセクションのすべてのノードが正常に実行された後、次の SQL クエリを実行して、外部テーブルが正しく作成されたかどうかを確認します。
-- クエリ内のパーティションキーを正しいデータタイムスタンプで更新します。データタイムスタンプは、タスクの実行日の前日です。たとえば、タスクが 20250223 に実行される場合、データタイムスタンプは 20250222 です。 SELECT * FROM ods_raw_log_d_starrocks WHERE dt=your_data_timestamp; SELECT * FROM ods_user_info_d_starrocks WHERE dt=your_data_timestamp;
次のステップ
データの同期が完了したので、次のチュートリアルではデータの計算と分析方法を学びます。詳細については、「データの処理」をご参照ください。