このトピックでは、DataWorks の StarRocks ノードを使用して、StarRocks に同期された ods_user_info_d_starrocks テーブルおよび ods_raw_log_d_starrocks テーブルのデータを処理し、ユーザー プロファイル データを取得する方法について説明します。 ods_user_info_d_starrocks テーブルには基本的なユーザー情報が格納され、ods_raw_log_d_starrocks テーブルにはユーザーのウェブサイト アクセスログが格納されます。このトピックにより、DataWorks および StarRocks を使用して同期されたデータを計算および分析し、データウェアハウスにおける単純なデータ処理を完了する方法を理解できます。
前提条件
本チュートリアルを開始する前に、「データ同期」で説明されている手順を完了してください。
ステップ 1:データ処理フローの設計
データ同期フェーズでは、必要なデータが StarRocks テーブルに同期されます。次に、このデータをさらに処理して基本的なユーザープロファイルデータを生成することが目的です。
DataWorks コンソールにログインし、Data Studio ページの DATA STUDIO ウィンドウに移動します。DATA STUDIO ウィンドウの ワークスペースディレクトリ セクションで、事前に準備したワークフローを見つけ、ワークフロー名をクリックしてワークフローの構成タブを開きます。
構成タブの「データベース」セクションから StarRocks をドラッグし、右側のキャンバスに配置します。[ノード作成] ダイアログボックスで、[ノード名] パラメーターを設定します。
本チュートリアルでは、3 つの StarRocks ノードを作成する必要があります。以下の表に、本チュートリアルで使用するノード名とその機能を示します。
ノードタイプ
ノード名
ノード機能
StarRocksdwd_log_info_di_starrocksこのノードは、
ods_raw_log_d_starrocksテーブルのデータを分割し、ビルトイン関数またはユーザー定義関数 (UDF) を用いて、dwd_log_info_di_starrocksテーブルの 複数のフィールド に同期するために使用します。
StarRocksdws_user_info_all_di_starrocksこのノードは、基本ユーザー情報テーブル
ods_user_info_d_starrocksおよび ログデータテーブルdwd_log_info_di_starrocksのデータを集約し、集約結果をdws_user_info_all_di_starrocksテーブルに同期するために使用します。
StarRocksads_user_info_1d_starrocksこのノードは、
dws_user_info_all_di_starrocksテーブルのデータをさらに処理し、処理済みデータをads_user_info_1d_starrocksテーブルに同期して基本的なユーザープロファイルを生成するために使用します。次の図に示すように、StarRocks ノードの先祖ノードを手動で接続します。
説明ワークフロー内では、ノードを手動で接続することで、上流および下流の依存関係 を設定できます。また、システムは子ノード内のコードを解析することにより、依存関係を自動的に識別することも可能です。本チュートリアルでは手動接続方式を採用します。自動依存関係解析の詳細については、「自動解析メカニズム」をご参照ください。
ステップ 2: 関数の登録
実験用のログデータの構造をテーブル形式のデータに変換するために、関数などの手法を使用できます。
本例では、IP アドレスを地域に変換する関数に必要なリソースが提供されています。これらのリソースをローカルマシンにダウンロードし、Object Storage Service (OSS) バケットに保存した後、以下の手順に従ってリソースを関数として登録するだけです。
本関数で使用する IP アドレスリソースは、本チュートリアル専用です。正式なビジネスシーンで IP アドレスと地理的位置のマッピングを実装する場合は、専門の IP アドレス変換サービスを専門の IP アドレス関連ウェブサイトから入手する必要があります。
リソースのアップロード(ip2region-starrocks.jar)
ip2region-starrocks.jar パッケージをダウンロードします。
説明ip2region-starrocks.jarパッケージは、本チュートリアル専用です。OSS へのリソースのアップロードを行います。
OSS コンソール にログインし、[バケット] ページに移動します。[バケット] ページで、「環境の準備」時に作成したバケットを検索し、バケットのパス内に
dataworks_starrocksディレクトリを作成します。ip2region-starrocks.jarパッケージをdataworks_starrocksディレクトリにアップロードします。本チュートリアルでは、パッケージの完全な保存パスは
https://test.oss-cn-shanghai-internal.aliyuncs.com/dataworks_starrocks/ip2region-starrocks.jarです。アップロード済み OSS リソースの保存パスは、この完全なパスから取得できます。説明本チュートリアルでは、test という名前のバケットを使用します。
UDF が属するバケットのネットワークアドレスは、ECS からのクラシックネットワーク(イントラネット)経由のアクセスに使用されるアドレスです。
内部エンドポイントを使用する場合、OSS バケットは DataWorks ワークスペースと同じリージョンに存在している必要があります。本例では中国 (上海) リージョンを使用しています。
関数の登録(getregion)
関数登録用の StarRocks ノードを作成します。
DataWorks コンソールにログインし、Data Studio ページの DATA STUDIO ウィンドウに移動します。DATA STUDIO ウィンドウの ワークスペースディレクトリ セクションで、
アイコンをクリックし、 を選択して StarRocks ノードを作成します。関数登録用のコードを記述します。
関数を登録します。
CREATE FUNCTION getregion(string) RETURNS string PROPERTIES ( "symbol" = "com.starrocks.udf.sample.Ip2Region", "type" = "StarrocksJar", "file" = "OSS バケットの完全な保存パスを入力します。このパスは前述のサブステップで取得できます。" );関数が正しく登録されたか確認します。
SELECT getregion('ご利用のローカルマシンの IP アドレス');
重要関数は、開発環境および本番環境それぞれで一度だけ個別に登録できます。本番環境で関数を登録するには、まず StarRocks ノードを本番環境にデプロイする必要があります。
StarRocks ノードの構成タブ上部のツールバーで、保存 をクリックします。その後、デプロイ をクリックし、[DEPLOY] タブに表示される指示に従って、StarRocks ノードを開発環境および本番環境の StarRocks 計算リソースにデプロイします。その後、StarRocks ノードのデータをバックフィルして、本番環境における関数登録を完了します。関数登録が完了したら、オペレーションセンターで本番環境の StarRocks ノードを手動で フリーズ します。これにより、関数の重複登録による StarRocks ノードの失敗を防止できます。
ステップ 3:StarRocks ノードの構成
データ処理を実行するには、関連する StarRocks ノードをスケジュールして各レイヤーの処理ロジックを実装する必要があります。本チュートリアルでは、データ処理のサンプルコードを提供します。このコードを dwd_log_info_di_starrocks、dws_user_info_all_di_starrocks、および ads_user_info_1d_starrocks ノードそれぞれに対して個別に構成する必要があります。
dwd_log_info_di_starrocks ノードの構成
本ノードのサンプルコードでは、登録済み関数を用いて先祖テーブル ods_raw_log_d_starrocks のフィールドに対する SQL コードを処理し、テーブルのデータを dwd_log_info_di_starrocks テーブルに同期します。
ワークフローのキャンバスで、
dwd_log_info_di_starrocksノードの上にポインターを移動し、ノードを開く をクリックします。ノードの構成タブで、[データソースの選択] ドロップダウンリストから、「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
以下の SQL 文をコピーし、コードエディターに貼り付けます:
説明dwd_log_info_di_starrocksノードのサンプルコードでは、登録済み関数を用いて先祖テーブルods_raw_log_d_starrocksのフィールドに対する SQL コードを処理し、テーブルのデータをdwd_log_info_di_starrocksテーブルに同期します。デバッグパラメーターを構成します。
ノードの構成タブ右側のナビゲーションペインで、Run Configuration をクリックします。タブで以下のパラメーターを構成します。これらのパラメーターは、ステップ 4 でワークフローをテストするために使用します。
パラメーター
説明
計算リソース
「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
リソースグループ
「環境の準備」時に購入したサーバーレスリソースグループを選択します。
スクリプトパラメーター
[var] パラメーターの [パラメーター値] 列に、
yyyymmdd形式の定数値を入力します。例:var=20250223。ワークフローのデバッグ時には、Data Studio がワークフロー内のノードで定義された変数をこの定数で置き換えます。(任意)スケジューリングプロパティを構成します。
本チュートリアルでは、スケジューリングパラメーターをデフォルト値のままにしておくことができます。これらを表示するには、ノードエディター右側のペインで スケジューリング構成 をクリックします。各パラメーターの詳細については、「ノードのスケジューリング構成」をご参照ください。
スケジューリングパラメーター:これらのパラメーターはワークフローから継承され、個別のノードに対して構成する必要はありません。タスクやコードで直接使用できます。
[スケジューリングポリシー]: [遅延実行時間] パラメーターを使用して、ワークフロー の開始後からサブノード を実行するまでの待機時間を指定できます。このパラメーターは、本チュートリアルでは設定されません。
構成タブ上部のツールバーで、保存 をクリックしてノードを保存します。
dws_user_info_all_di_starrocks ノードの構成
このノードは、基本ユーザー情報テーブル ods_user_info_d_starrocks およびログデータテーブル dwd_log_info_di_starrocks のデータを集約し、集約結果を dws_user_info_all_di_starrocks テーブルに同期するために使用します。
ワークフローのキャンバスで、
dws_user_info_all_di_starrocksノードの上にポインターを移動し、ノードを開く をクリックします。ノードの構成タブで、[データソースの選択] ドロップダウンリストから、「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
以下の SQL 文をコピーし、コードエディターに貼り付けます:
説明dws_user_info_all_di_starrocksノードの構成タブで、先祖テーブルdwd_log_info_di_starrocksおよびods_user_info_d_starrocksのデータを集約し、集約結果をdws_user_info_all_di_starrocksテーブルに同期するコードを記述します。デバッグパラメーターを構成します。
ノードの構成タブ右側のナビゲーションペインで、Run Configuration をクリックします。タブで以下のパラメーターを構成します。これらのパラメーターは、ステップ 4 でワークフローをテストするために使用します。
パラメーター
説明
計算リソース
「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
リソースグループ
「環境の準備」時に購入したサーバーレスリソースグループを選択します。
スクリプトパラメーター
[var] パラメーターの [パラメーター値] 列に、
yyyymmdd形式の定数値を入力します。例:var=20250223。ワークフローのデバッグ時には、Data Studio がワークフロー内のノードで定義された変数をこの定数で置き換えます。(任意)スケジューリングプロパティを構成します。
本チュートリアルでは、スケジューリングパラメーターをデフォルト値のままにしておくことができます。これらを表示するには、ノードエディター右側のペインで スケジューリング構成 をクリックします。各パラメーターの詳細については、「ノードのスケジューリング構成」をご参照ください。
スケジューリングパラメーター:これらのパラメーターはワークフローから継承され、個別のノードに対して構成する必要はありません。タスクやコードで直接使用できます。
[スケジューリングポリシー]: [遅延実行時間] パラメーターを使用すると、ワークフローの開始後、サブノードを実行するまでの待機時間を指定できます。このパラメーターは、本チュートリアルでは設定されていません。
構成タブ上部のツールバーで、保存 をクリックしてノードを保存します。
ads_user_info_1d_starrocks ノードの構成
このノードは、dws_user_info_all_di_starrocks テーブルのデータをさらに処理し、処理済みデータを ads_user_info_1d_starrocks テーブルに同期して基本的なユーザープロファイルを生成するために使用します。
ワークフローのキャンバスで、
ads_user_info_1d_starrocksノードの上にポインターを移動し、ノードを開く をクリックします。ノードの構成タブで、[データソースの選択] ドロップダウンリストから、「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
以下の SQL 文をコピーし、コードエディターに貼り付けます:
デバッグパラメーターを構成します。
ノードの構成タブ右側のナビゲーションペインで、Run Configuration をクリックします。タブで以下のパラメーターを構成します。これらのパラメーターは、ステップ 4 でワークフローをテストするために使用します。
パラメーター
説明
計算リソース
「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
リソースグループ
「環境の準備」時に購入したサーバーレスリソースグループを選択します。
スクリプトパラメーター
[var] パラメーターの [パラメーター値] 列に、
yyyymmdd形式の定数値を入力します。例:var=20250223。ワークフローのデバッグ時には、Data Studio がワークフロー内のノードで定義された変数をこの定数で置き換えます。(任意)スケジューリングプロパティを構成します。
本チュートリアルでは、スケジューリングパラメーターをデフォルト値のままにしておくことができます。これらを表示するには、ノードエディター右側のペインで スケジューリング構成 をクリックします。各パラメーターの詳細については、「ノードのスケジューリング構成」をご参照ください。
スケジューリングパラメーター:これらのパラメーターはワークフローから継承され、個別のノードに対して構成する必要はありません。タスクやコードで直接使用できます。
スケジューリングポリシー: [遅延実行時間] パラメーターを使用すると、ワークフローの開始後、サブノードを実行するまでの待機時間を指定できます。このチュートリアルでは、このパラメーターは設定しません。
構成タブ上部のツールバーで、保存 をクリックしてノードを保存します。
ステップ 4:データの処理
データを同期します。
ワークフローツールバーで、実行 をクリックします。この実行のために各ノードで定義されたパラメーター変数の値を設定します。本チュートリアルでは
20250223を使用しますが、必要に応じて値を変更できます。その後、OK をクリックし、実行が完了するまで待ちます。結果を照会します。
SQL クエリページに移動します。
DataWorks コンソール にログインします。上部のナビゲーションバーで、希望するリージョンを選択します。左側のナビゲーションペインで、 を選択します。表示されたページで、データ分析へ移動 をクリックします。表示されたページの左側ナビゲーションペインで、SQL クエリ をクリックします。
SQL クエリファイルを構成します。
SQL クエリ ペインで、[マイファイル] の横にある
アイコンをクリックし、[ファイルを作成] を選択します。[ファイルを作成] ダイアログボックスで、[ファイル名] パラメーターを設定します。左側のナビゲーションツリーで、作成した SQL クエリファイルを見つけ、ファイル名をクリックしてファイルの構成タブを開きます。
構成タブの右上隅で、
アイコンをクリックします。表示されるポップオーバーで、以下のパラメーターを構成します。パラメーター
説明
ワークスペース
user_profile_analysis_starrocksワークフローが属するワークスペースを選択します。データソースタイプ
ドロップダウンリストから
StarRocksを選択します。データソース名
「環境の準備」時にワークスペースに関連付けた StarRocks 計算リソースを選択します。
OK をクリックします。
クエリ用の SQL 文を記述します。
本トピックのすべてのノードが正常に実行された後、以下の SQL 文を記述・実行して、StarRocks ノードに基づいて外部テーブルが想定通りに作成されたかどうかを確認します。
-- クエリ文では、パーティションキーの値を ads_user_info_1d_starrocks ノードのデータタイムスタンプに変更します。たとえば、ノードが 2025 年 2 月 23 日にスケジュール実行される場合、ノードのデータタイムスタンプは 20250222 となり、ノードのスケジュール実行時刻より 1 日前となります。 SELECT * FROM ads_user_info_1d_starrocks WHERE dt=データタイムスタンプ;
ステップ 5:ワークフローのデプロイ
自動トリガー型ノードは、ノードを本番環境にデプロイした後にのみ、自動的にスケジュール実行されます。以下に示す手順に従って、ワークフローを本番環境にデプロイできます。
本チュートリアルでは、「ワークフローのスケジューリングプロパティの構成」時にワークフローのスケジューリングパラメーターを構成しました。ワークフロー内の各ノードに対して個別にスケジューリングパラメーターを構成する必要はありません。
DataStudio の左側ナビゲーションペインで、
をクリックします。プロジェクトディレクトリ で作成したワークフローを見つけ、クリックしてワークフローキャンバスを開きます。ツールバーで、公開 をクリックして公開ダイアログボックスを開きます。
本番環境への公開を開始 をクリックします。表示される確認ダイアログボックスで、公開方法を選択します:
フルリリース:現在のワークフローおよびその内部のすべてのタスクを公開します。
インクリメンタルリリース:現在のワークフローおよび前回のリリース以降に変更されたノードのみを公開します。これは反復的最適化および小規模な更新に適しています。

公開方法を確認すると、システムが自動的にワークフローおよび選択されたノードを開発環境および本番環境にリリースします。このプロセスを完了するには、プロンプトが表示されたときに リリースの確認 をクリックします。

ステップ 6:本番環境でのノードの実行
タスクがデプロイされると、翌日にインスタンスが生成されて実行されます。[データバックフィル] 機能を使用して、ワークフローをすぐに実行し、本番環境で正しく動作することを確認できます。詳細については、「データバックフィルインスタンスの O&M」をご参照ください。
ワークフロー内のすべてのノードがデプロイされた後、ノードの構成タブの右上隅にある[オペレーションセンター] をクリックします。
または、DataWorks コンソールの左上隅の
アイコンをクリックし、 を選択することもできます。オペレーションセンターのページ左側ナビゲーションペインで、 を選択します。自動トリガー型ノード ページで、ゼロロードノード
workshop_start_starrocksを見つけ、ノード名をクリックします。ノードの有向非巡回グラフ (DAG) で、
workshop_start_starrocksノードを右クリックし、 を選択します。バックフィルデータパネルで、バックフィル対象のノードを選択し、[データタイムスタンプ] パラメーターを構成して、送信してリダイレクト をクリックします。
データバックフィルページの上部で、更新 をクリックして、workshop_start_starrocks ノードおよびその子孫ノードが正常に実行されたかどうかを確認します。
次のステップ
データの可視化表示:ユーザープロファイル分析を完了した後、DataAnalysis を用いて処理済みデータをチャートで表示します。これにより、データの背後にあるビジネストレンドに関する重要な情報を迅速に抽出できます。
データ品質の監視:データ処理後に生成されるテーブルに対して監視ルールを構成し、ダーティデータを事前に検出し遮断することで、ダーティデータによる影響の拡大を防止できます。
データの管理:ユーザープロファイル分析が完了すると、StarRocks にデータテーブルが生成されます。Data Map で生成されたデータテーブルを表示し、データリネージに基づいてテーブル間の関係を確認できます。
DataService Studio API を用いたサービス提供:最終的な処理済みデータを取得した後、DataService Studio の標準化された API を用いてデータを共有し、API を介してデータを受信する他のビジネスモジュールにデータを提供できます。