DataWorks は、データベースからビジネスデータをクエリし、さまざまなプッシュチャネルを使用して特定の宛先にプッシュできるデータプッシュ機能を提供します。データベースのモニタリングデータをプッシュすることもできます。このトピックでは、Hologres のモニタリングデータを毎日 9:00 にプッシュする方法について説明します。これは、Hologres のステータスを把握するのに役立ちます。
ステップ 1: 宛先を作成する
データプッシュタスクは、さまざまなプッシュチャネルを使用して、クエリされたデータを特定の宛先にプッシュできます。データプッシュタスクを作成する前に、まず宛先を作成する必要があります。
DataService Studio ページに移動します。
DataWorks コンソール にログオンします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[dataservice Studio に移動] をクリックします。
[dataservice Studio] ページの左下隅にある
アイコンをクリックします。表示されたページで、[宛先管理] タブをクリックします。次に、[宛先を作成] をクリックします。
[宛先を作成] ダイアログボックスで、次のパラメーターを構成します。
[タイプ]: プッシュのチャネルタイプを選択します。オプションには、[dingtalk]、[lark]、[wecom]、[teams] があります。
[ターゲット名]: プッシュターゲットのカスタム名を入力します。
[webhook]: 選択したプッシュチャネルの Webhook URL を入力します。
ステップ 2: データプッシュタスクを作成する
DataService Studio ページに移動します。
DataWorks コンソール にログオンし、データソースが存在するリージョンに切り替え、左側のナビゲーションウィンドウで をクリックし、ドロップダウンリストから対応するワークスペースを選択して、[dataservice Studio に移動] をクリックします。
データプッシュタスクを作成します。
[dataservice Studio] の左側のナビゲーションウィンドウで、 をクリックして [データプッシュ] ページに切り替え、
をクリックして [データプッシュを作成] を選択し、データプッシュタスクの名前を設定して、[OK] をクリックしてデータプッシュタスク構成ページに移動します。
ステップ 3: データプッシュタスクを構成する
次の表に、さまざまなシナリオでのベストプラクティスを示します。ビジネス要件に基づいてベストプラクティスを選択できます。
プラクティス 1: 最も多くの低速クエリを開始したユーザーと上位 50 件の低速クエリをクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
-- 最も多くの低速クエリを開始したユーザーをクエリします。
SELECT usename AS topuser, count(1) AS topuser_counts
FROM hologres.hg_query_log
WHERE query_start >= '${date_start}'
AND query_start < '${date_end}'
GROUP BY usename
ORDER BY topuser_counts DESC
LIMIT 1;
-- 上位 50 件の低速クエリをクエリします。
SELECT usename, datname, duration, application_name
FROM hologres.hg_query_log
WHERE query_start >= '${date_start}'
AND query_start < '${date_end}'
ORDER BY duration DESC
LIMIT 50;
割り当てパラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に入力されます。出力パラメーターが正しくないか、入力に失敗した場合は、[パラメーターの自動解析] を無効にして、手動で [パラメーターを追加] します。
SQL ステートメントで ${変数名}
形式で変数を構成し、割り当てパラメーターを使用して変数に値を割り当てることができます。割り当てパラメーターは、日付と時刻の式または定数にすることができます。このようにして、変数の値は、割り当てパラメーターの構成に基づいて、データプッシュタスクのコードで動的に置き換えられます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。
この例では、${date_start}
および ${date_end}
割り当てパラメーターを構成する必要があります。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。

データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: 手順 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ Topic をご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
プラクティス 2: 過去 12 時間で最もリソースを消費したクエリをクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
SELECT status AS "Status",
duration AS "Time consumed (ms)",
query_start AS "Start time",
(read_bytes/1048576)::text || ' MB' AS "Megabytes read",
(memory_bytes/1048576)::text || ' MB' AS "Memory",
(shuffle_bytes/1048576)::text || ' MB' AS "Shuffle",
(cpu_time_ms/1000)::text || ' s' AS "CPU time",
physical_reads AS "Physical reads",
query_id AS "QueryID",
query::char(30)
FROM hologres.hg_query_log
WHERE query_start >= now() - interval '12 hour'
AND duration > 1000
ORDER BY duration DESC,
read_bytes DESC,
shuffle_bytes DESC,
memory_bytes DESC,
cpu_time_ms DESC,
physical_reads DESC
LIMIT 100;
パラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に設定されます。出力パラメーターが正しくない場合、または設定に失敗した場合は、[自動パラメーター解析] を無効にして、[パラメーターの追加] を手動で実行します。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。
データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: 手順 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ Topic をご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
プラクティス 3: 過去 3 時間の各時間におけるクエリ数とデータ読み取り量をクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
SELECT
date_trunc('hour', query_start) AS query_start,
count(1) AS query_count,
sum(read_bytes/1048576)::text || ' MB' AS read_MB,
sum(cpu_time_ms/1000)::text || ' s' AS cpu_time_s
FROM
hologres.hg_query_log
WHERE
query_start >= now() - interval '3 h'
GROUP BY 1;
パラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に入力されます。出力パラメーターが正しくないか、入力に失敗した場合は、[パラメーターの自動解析] を無効にして、手動で [パラメーターを追加] します。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。

データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: 手順 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ トピックをご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
プラクティス 4: 前日に開始されたクエリ数をクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
SELECT
COUNT(1) AS "increse_queries"
FROM ( SELECT DISTINCT
t1.digest
FROM
hologres.hg_query_log t1
WHERE
t1.query_start >= CURRENT_DATE - INTERVAL '1 day'
AND t1.query_start < CURRENT_DATE
AND NOT EXISTS (
SELECT
1
FROM
hologres.hg_query_log t2
WHERE
t2.digest = t1.digest
AND t2.query_start < CURRENT_DATE - INTERVAL '1 day')
AND digest IS NOT NULL
) AS a;
パラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に設定されます。出力パラメーターが正しくない場合、または設定に失敗した場合は、[自動パラメーター解析] を無効にして、[パラメーターの追加] を手動で実行します。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。

データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: 手順 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ Topic をご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
プラクティス 5: 過去 3 時間のクエリのデータアクセス量と前日の同じ期間のデータアクセス量を比較のためにクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
SELECT
query_date,
count(1) AS query_count,
sum(read_bytes) AS read_bytes,
sum(cpu_time_ms) AS cpu_time_ms
FROM
hologres.hg_query_log
WHERE
query_start >= now() - interval '180min'
GROUP BY
query_date
UNION ALL
SELECT
query_date,
count(1) AS query_count,
sum(read_bytes) AS read_bytes,
sum(cpu_time_ms) AS cpu_time_ms
FROM
hologres.hg_query_log
WHERE
query_start >= now() - interval '1d 180min'
AND query_start <= now() - interval '1d'
GROUP BY
query_date;
パラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に設定されます。出力パラメーターが正しくない場合、または設定に失敗した場合は、[自動パラメーター解析] を無効にして、[パラメーターの追加] を手動で実行します。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。
データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: ステップ 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ Topic をご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
プラクティス 6: 過去 30 分間のさまざまなクエリステージで最も時間がかかったクエリをクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
SELECT
status AS "Status",
duration AS "Time consumed (ms)",
optimization_cost AS "Optimization duration (ms)",
start_query_cost AS "Startup duration (ms)",
get_next_cost AS "Execution duration (ms)",
duration - optimization_cost - start_query_cost - get_next_cost AS "Others (ms)",
query_id AS "QueryID"
FROM
hologres.hg_query_log
WHERE
query_start >= now() - interval '30 min'
ORDER BY
duration DESC,
start_query_cost DESC,
optimization_cost,
get_next_cost DESC,
duration - optimization_cost - start_query_cost - get_next_cost DESC
LIMIT 100;
パラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に設定されます。出力パラメーターが正しくない場合、または設定に失敗した場合は、[自動パラメーター解析] を無効にして、[パラメーターの追加] を手動で実行します。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。
データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: 手順 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ Topic をご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
プラクティス 7: 最初に失敗したクエリをクエリする
作成したデータプッシュタスクをダブルクリックして、タスクの構成タブに移動します。
[テーブルを選択] セクションのパラメーターを構成します。
[クエリ SQL を編集] セクションに SQL ステートメントを記述します。
SQL ステートメントの例:
SELECT
status AS"Status",
regexp_replace(message, '\n', ' ')::char(150) AS "Error message",
duration AS "Time consumed (ms)",
query_start AS "Start time",
query_id AS "QueryID",
query::char(100) AS "Query"
FROM
hologres.hg_query_log
WHERE
query_start BETWEEN '2024-07-10 17:00:00'::timestamptz AND '2024-07-10 17:42:00'::timestamptz + interval '2 min'
AND status = 'FAILED'
ORDER BY
query_start ASC
LIMIT 100;
パラメーターを構成します。
SQL のカスタマイズが完了すると、SQL 結果のフィールドが に自動的に入力されます。出力パラメーターが正しくない場合、または入力されない場合は、[自動パラメーター解析] を無効にして、[パラメーターの追加] を手動で行います。
プッシュするコンテンツを構成します。
[プッシュするコンテンツ] セクションで、テーブルまたは Markdown を使用してプッシュするコンテンツを構成します。Markdown を使用してコンテンツを構成する場合、割り当てパラメーターと出力パラメーターを ${パラメーター名}
形式の変数としてリッチテキストに追加できます。テーブルを使用してコンテンツを構成する場合、出力パラメーターをテーブルに追加できます。詳細については、データプッシュトピックの プッシュコンテンツを構成する セクションをご参照ください。
データプッシュ設定を構成します。
[スケジューリング期間]: 日
を選択します。
[スケジューリング時間]: 09:00
を選択します。
[タイムアウト定義]: [システムデフォルト] を選択します。
[有効日]: [永続的] を選択します。
[スケジューリングのリソースグループ]: 準備 セクションで準備した汎用リソースグループを選択します。
[宛先]: 手順 1: 宛先を作成する で作成した宛先を選択します。
説明 ビジネス要件に基づいてデータ プッシュ設定を構成できます。詳細については、「プッシュ設定」セクションのデータ プッシュ Topic をご参照ください。
データプッシュタスクをテストします。
データプッシュタスクを作成したら、ツールバーの [保存] をクリックして構成を保存します。次に、ツールバーの [テスト] をクリックします。[データプッシュタスクのテスト] ダイアログボックスで、[リクエストパラメーター] セクションの変数に定数を割り当て、[テスト] をクリックします。
データプッシュタスクを公開します。
次のステップ
データプッシュタスクを作成したら、データプッシュタスクを管理できます。詳細については、データプッシュトピックの プッシュタスクを公開する セクションをご参照ください。