このトピックでは、DataWorks の StarRocks ノードを使用して、StarRocks に同期された ods_user_info_d_starrocks テーブルと ods_raw_log_d_starrocks テーブルのデータを処理し、ユーザー・プロファイル・データを取得する方法について説明します。 ods_user_info_d_starrocks テーブルには基本的なユーザー情報が格納され、ods_raw_log_d_starrocks テーブルにはユーザーの Web サイト・アクセス・ログが格納されます。 このトピックは、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 ノードの先祖ノードを構成します。
説明線を描画して、ワークフロー内のノードの スケジューリング依存関係 を構成できます。 また、自動解析機能を使用して、システムがノード間のスケジューリング依存関係を自動的に識別できるようにすることもできます。 このチュートリアルでは、線を描画することでノード間のスケジューリング依存関係を構成します。 自動解析機能の詳細については、「方法 1:ノードのコード内のリネージに基づいてスケジューリング依存関係を構成する」をご参照ください。
ステップ 2:関数を登録する
関数などのメソッドを使用して、実験のログデータの構造 をテーブル内のデータに変換できます。
この例では、IP アドレスをリージョンに変換するために使用される関数に必要なリソースが提供されています。 リソースをオンプレミス・マシンにダウンロードし、ダウンロードしたリソースを Object Storage Service (OSS) バケットに保存し、以下の手順に従ってリソースを関数として登録するだけです。
この関数の IP アドレスリソースは、このチュートリアルでのみ使用されます。 正式なビジネスシナリオで IP アドレスと地理的な場所のマッピングを実装する必要がある場合は、専門の IP アドレス Web サイトから専門の 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 が属するバケットのネットワークアドレスは、[クラシックネットワーク (内部ネットワーク) 経由の Elastic Compute Service (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テーブルに同期します。デバッグパラメータを構成します。
ノードの構成タブの右側ナビゲーション・ペインで、[デバッグ構成] をクリックします。 デバッグ構成タブで、次のパラメータを構成します。 これらのパラメータは、ステップ 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テーブルに同期するためのコードを記述します。デバッグパラメータを構成します。
ノードの構成タブの右側ナビゲーション・ペインで、[デバッグ構成] をクリックします。 デバッグ構成タブで、次のパラメータを構成します。 これらのパラメータは、ステップ 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 文をコピーしてコードエディタに貼り付けます。
デバッグパラメータを構成します。
ノードの構成タブの右側ナビゲーション・ペインで、[デバッグ構成] をクリックします。 デバッグ構成タブで、次のパラメータを構成します。 これらのパラメータは、ステップ 4 でワークフローをテストするために使用されます。
パラメータ
説明
[計算リソース]
環境を準備 したときにワークスペースに関連付けられた StarRocks 計算リソースを選択します。
[リソースグループ]
環境を準備 したときに購入したサーバーレス・リソース・グループを選択します。
[スクリプトパラメータ]
var パラメータのパラメータ値列に、
yyyymmdd形式の定数値を入力します。 例:var=20250223。 ワークフローをデバッグすると、Data Studio はワークフローのノードに定義された変数を定数に置き換えます。オプション。 スケジューリングプロパティを構成します。
このチュートリアルでは、スケジューリングプロパティに関連するパラメータのデフォルト値を保持できます。 ノード構成タブの右側ナビゲーション・ペインで [プロパティ] をクリックできます。 プロパティタブのパラメータの詳細については、「スケジューリングプロパティ」をご参照ください。
[スケジューリングパラメータ]:このチュートリアルでは、ワークフローのスケジューリングパラメータが構成されています。 ワークフローの内部ノードのスケジューリングパラメータを個別に構成する必要はありません。 構成されたスケジューリングパラメータは、内部ノードに基づいて開発されたコードとタスクに直接使用できます。
[スケジューリングポリシー]:[遅延実行時間] パラメータを構成して、バッチ同期ノードの実行がワークフローの実行よりも遅れる期間を指定できます。 このチュートリアルでは、このパラメータを構成する必要はありません。
構成タブの上部ツールバーで、[保存] をクリックしてノードを保存します。
ステップ 4:データを処理する
データを同期します。
ワークフローの構成タブの上部ツールバーで、[実行] をクリックします。 実行時パラメータの入力ダイアログボックスで、この実行で各ノードに定義されたスケジューリングパラメータに使用される値を指定し、[OK] をクリックします。 このチュートリアルでは、
20250223が指定されています。 ビジネス要件に基づいて値を指定できます。結果をクエリします。
SQL クエリページに移動します。
DataWorks コンソール にログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーション・ペインで、 を選択します。 表示されるページで、[DataAnalysis に移動] をクリックします。 表示されるページの左側のナビゲーション・ペインで、[SQL クエリ] をクリックします。
SQL クエリファイルを構成します。
SQL クエリペインで、[My Files] の横にある
アイコンをクリックし、Create File を選択します。Create File ダイアログボックスで、File Name パラメーターを設定します。左側のナビゲーションツリーで、作成された 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:ワークフローをデプロイする
自動トリガーノードは、本番環境にデプロイされた後にのみ、自動的に実行されるようにスケジュールできます。 ワークフローを本番環境にデプロイするには、次の手順を参照できます。
このチュートリアルでは、ワークフローのスケジューリングプロパティを構成 するときに、ワークフローのスケジューリングパラメータが構成されます。 ワークフローの各ノードのスケジューリングパラメータを個別に構成する必要はありません。
Data Studio ページの左側のナビゲーションウィンドウで、
アイコンをクリックします。DATA STUDIO ペインの[ワークスペースディレクトリ]セクションで、作成したワークフローを見つけ、ワークフロー名をクリックしてワークフローの構成タブに移動します。設定タブの上部のツールバーで、[デプロイ] をクリックします。
「デプロイ」タブで、[本番環境へのデプロイを開始] をクリックし、画面の指示に従ってワークフローをデプロイします。
ステップ 6:本番環境でノードを実行する
ノードをデプロイすると、そのノード用に生成されたインスタンスは、翌日に実行されるようにスケジュールできます。デプロイ済みのワークフロー内のノードについては、データバックフィル機能を使用してデータをバックフィルし、ノードが本番環境で実行可能かを確認できます。詳細については、「データをバックフィルしてデータバックフィルインスタンスを表示する (新バージョン)」をご参照ください。
ワークフロー内のすべてのノードがデプロイされたら、ノードの構成タブの右上隅にある[オペレーションセンター]をクリックします。
DataWorks コンソールの左上隅にある
アイコンをクリックし、 を選択することもできます。オペレーションセンターページの左側のナビゲーション・ペインで、 を選択します。 [自動トリガーノード] ページで、ゼロロードノード
workshop_start_starrocksを見つけ、ノード名をクリックします。ノードの有向非巡回グラフ (DAG) で、
workshop_start_starrocksノードを右クリックし、 を選択します。データのバックフィルパネルで、データをバックフィルするノードを選択し、データタイムスタンプパラメータを構成して、[送信してリダイレクト] をクリックします。
データバックフィルページの上部にある [更新] をクリックして、workshop_start_starrocks ノードとその子孫ノードが正常に実行されたかどうかを確認します。
次のステップ
データを視覚的に表示する:ユーザー・プロファイル分析が完了したら、DataAnalysis を使用して処理済みデータをグラフに表示します。 これにより、重要な情報をすばやく抽出して、データの背後にあるビジネストレンドを把握できます。
データ品質を監視する:データ処理後に生成されるテーブルの監視ルールを構成して、ダーティデータを事前に識別して傍受し、ダーティデータの影響のエスカレーションを防ぎます。
データを管理する:ユーザー・プロファイル分析が完了すると、StarRocks にデータテーブルが生成されます。 生成されたデータテーブルはデータマップで表示でき、データリネージに基づいてテーブル間の関係を表示できます。
DataService Studio API を使用してサービスを提供する:最終的に処理されたデータを取得したら、DataService Studio の標準化された API を使用してデータを共有し、API を使用してデータを受信する他のビジネスモジュールにデータを提供します。