すべてのプロダクト
Search
ドキュメントセンター

DataWorks:ベストプラクティス:Hologres 診断情報を定期的にプッシュする

最終更新日:Feb 28, 2026

DataWorks のデータプッシュ機能を使用すると、データベースのデータをクエリしてさまざまなチャネルにプッシュできます。業務データに加えて、データベースのモニタリングメトリックもプッシュ可能です。この例では、インスタンスのステータスを追跡できるよう、毎日 09:00 に Hologres のモニタリングデータを自動でプッシュするスケジュールを設定します。

前提条件

  1. DataWorks ワークスペースを作成します(この例では標準モードを使用)。詳細については、「ワークスペースの作成」をご参照ください。

  2. Hologres データソースを作成します。詳細については、「Hologres コンピューティングリソースの関連付け」をご参照ください。

  3. DataWorks リソースグループを準備し、ワークスペースにバインドします。詳細については、「サーバーレスリソースグループの使用」をご参照ください。

制限事項

  • 宛先ごとにデータサイズの制限が異なります。

    • DingTalk:最大ペイロードサイズは 20 KB です。

    • Lark:最大ペイロードサイズは 20 KB、イメージは 10 MB 未満である必要があります。

    • WeCom:各ボットは 20 件/分 のメッセージ送信に制限されています。

    • Teams:最大ペイロードサイズは 28 KB です。

    • メール:各データプッシュタスクではメール本文を 1 つしかサポートしません。すでにメール本文が追加されている場合、別の本文を追加することはできません。その他の制限事項については、ご利用のメールサービスプロバイダーの SMTP 制限をご確認ください。

  • リージョン制限中国 (杭州)、中国 (上海)、中国 (北京)、中国 (深セン)、中国 (成都)、中国 (香港)、シンガポール、日本 (東京)、米国 (シリコンバレー)、米国 (バージニア)、ドイツ (フランクフルト)

ステップ 1: データプッシュターゲットの作成

プッシュタスクはクエリ結果を特定のチャネルに送信します。プッシュタスクを作成する前に、プッシュターゲットを作成する必要があります。

  1. DataService Studio ページに移動します。

    DataWorks コンソール にログインします。上部ナビゲーションバーで目的のリージョンを選択します。左側のナビゲーションウィンドウで データ分析とサービス > DataService Studio を選択します。表示されたページでドロップダウンリストから目的のワークスペースを選択し、DataService Studio へ移動 をクリックします。

  1. サービス開発 ページの左下隅にある image(設定)をクリックします。プッシュターゲット管理 タブで、データプッシュターゲットの作成 をクリックします。

    以下のパラメーターを設定します。

    • TypeDingTalkLarkWeCom、または Teams などのチャンネルタイプを選択します。

    • Destination Name:新しい宛先のカスタム名を入力します。

    • Webhook:選択した宛先の Webhook URL を入力します。

    説明

ステップ 2: データプッシュタスクを作成する

  1. DataService Studio に移動します。

    DataWorks コンソール にログインします。データソースが配置されているリージョンに切り替えます。左側のナビゲーションウィンドウで データ分析とサービス > DataService Studio を選択します。ドロップダウンリストからワークスペースを選択し、DataService Studio へ移動 をクリックします。

  2. データプッシュタスクを作成します。

    DataService Studio の左側ナビゲーションウィンドウで、Service Development > Data Push を選択します。Data Push ページで image アイコンをクリックし、Create Data Push Task を選択します。タスク名を入力し、OK をクリックします。

ステップ 3:プラクティスの構成

本トピックでは 7 つのシナリオを紹介します。要件に最も適したものを選択してください。

プラクティス内容

説明

プラクティス 1:最も多くの低速クエリを実行したユーザーと低速クエリ上位を特定する

以下の SQL を実行します。

  • 低速クエリ数が最も多いユーザーを特定します。

  • 低速クエリ上位 50 件を特定します。

プラクティス 2:過去 12 時間の高リソース消費クエリをクエリする

過去 12 時間の高リソース消費クエリを特定します。必要に応じて時間範囲を調整してください。

プラクティス 3:過去 3 時間の時間単位クエリ数と総データ読み取り量をクエリする

過去 3 時間の時間単位クエリ数をクエリし、データ量の変化を把握します。

プラクティス 4:昨日の新規クエリ数をクエリする

昨日の新規クエリ数をクエリします。時間パーティションを調整することで、先週や先月のデータをクエリすることも可能です。

プラクティス 5:過去 3 時間のデータアクセス量を昨日の同時刻と比較する

過去 3 時間のデータアクセス量を昨日の同時刻と比較します。より長い期間での比較を行う場合は、時間範囲を調整してください。

プラクティス 6:各ステージで処理時間が長いクエリを特定する(過去 30 分)

ステージごとの処理時間が長いクエリを特定します。必要に応じて時間範囲を調整してください。

プラクティス 7:最初に失敗したクエリをクエリする

トラブルシューティングのために、指定期間内で最も早く失敗したクエリをクエリします。

実践 1: クエリ数が最も多いユーザーと、最も遅いクエリを発行するユーザーを特定する

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    低速クエリ数が最も多いユーザーと低速クエリ上位 50 件を特定する 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;
  4. 代入パラメーターを構成します。

    • SQL 文の記述後、クエリ結果のフィールドが自動的に Parameters > Output Parameters セクションに追加されます。出力パラメーターの解析に失敗した場合や不正確な場合は、Automatically Parse Parameters をオフにして、手動で Add Parameter を行ってください。

    • SQL 内で ${変数名} を使用してカスタム変数(動的パラメーター)を定義できます。これらの 代入パラメーター には、時間式または定数を割り当てることができます。詳細については、「プッシュコンテンツの構成」をご参照ください。

      以下の 2 つの代入パラメーターを構成します:${date_start} および ${date_end}

  5. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  6. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  7. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  8. テストが完了したら、タスクを公開します。

プラクティス 2:過去 12 時間の高リソース消費クエリをクエリする

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    過去 12 時間の高リソース消費クエリを特定する以下の SQL 文を使用します。

    SELECT status AS "Status",
           duration AS "Duration(ms)",
           query_start AS "Start Time",
           (read_bytes/1048576)::text || ' MB' AS "Read Volume",
           (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;
  4. パラメーターを構成します。

  5. SQL 文の作成が完了すると、クエリ結果のフィールドが自動的に Parameters > Output Parameters セクションに追加されます。出力パラメーターの解析に失敗した場合や不正確な場合、Automatically Parse Parameters をオフにして、手動で Add Parameter できます。

  6. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  7. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  8. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  9. テストが完了したら、タスクを公開します。

プラクティス 3:過去 3 時間の時間単位クエリ数と総データ読み取り量をクエリする

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    過去 3 時間の時間単位クエリ数と総読み取り量をクエリする以下の 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;
  4. パラメーターを構成します。

    SQL 文の記述後、クエリ結果のフィールドが自動的に Parameters > Output Parameters セクションに追加されます。出力パラメーターの解析に失敗した場合や不正確な場合は、Automatically Parse Parameters をオフにして、手動で Add Parameter を行ってください。

  5. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  6. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  7. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  8. テストが完了したら、タスクを公開します。

プラクティス 4:昨日の新規クエリ数をクエリする

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    昨日の新規クエリ数をクエリする以下の SQL 文を使用します。

    SELECT
        COUNT(1) AS "new_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;
  4. パラメーターを構成します。

  5. SQL 文の記述が完了すると、クエリ結果のフィールドが自動的に Parameters > Output Parameters セクションに追加されます。出力パラメーターの解析に失敗した場合や正しくない場合は、Automatically Parse Parameters をオフにして、手動で Add Parameter できます。

  6. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  7. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  8. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  9. テストが完了したら、タスクを公開します。

プラクティス 5:過去 3 時間のデータアクセス量を昨日の同時刻と比較する

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    過去 3 時間のデータアクセス量を昨日の同時刻と比較する以下の 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;
  4. パラメーターを構成します。

  5. SQL 文の記述が完了すると、クエリ結果のフィールドは Parameters > Output Parameters セクションに自動的に追加されます。出力パラメーターの解析が失敗した場合や、内容が正しくない場合は、Automatically Parse Parameters をオフにし、手動で Add Parameter を実行できます。

  6. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  7. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  8. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  9. テストが完了したら、タスクを公開します。

プラクティス 6:各ステージで処理時間が長いクエリを特定する(過去 30 分)

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    過去 30 分の各ステージで処理時間が長いクエリを特定する以下の SQL 文を使用します。

    SELECT
        status AS "Status",
        duration AS "Duration (ms)",
        optimization_cost AS "Optimization Duration (ms)",
        start_query_cost AS "Start Query Duration (ms)",
        get_next_cost AS "Execution Duration (ms)",
        duration - optimization_cost - start_query_cost - get_next_cost AS "Other Duration (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;
  4. パラメーターを構成します。

  5. SQL 文の作成が完了すると、クエリ結果のフィールドが自動的に Parameters > Output Parameters セクションに追加されます。出力パラメーターの解析に失敗した場合、または不正確な場合は、Automatically Parse Parameters を無効化して、手動で Add Parameter を行うことができます。

  6. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  7. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  8. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  9. テストが完了したら、タスクを公開します。

プラクティス 7:最初に失敗したクエリをクエリする

  1. 前に作成したプッシュタスクをダブルクリックして、構成ページを開きます。

  2. テーブルの選択 セクションを構成します。

    • データソースタイプHologres を選択します。

    • データソース名前提条件 で作成した Hologres データソースを選択します。

    • データソース環境開発環境 を選択します。

  3. クエリ SQL の記述

    最も早く失敗したクエリをクエリする以下の SQL 文を使用します。

    SELECT
        status AS "Status",
        regexp_replace(message, '\n', ' ')::char(150) AS "Error Message",
        duration AS "Duration (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;
  4. パラメーターを構成します。

  5. SQL 文の作成が完了すると、クエリ結果のフィールドが自動的に Parameters > Output Parameters セクションに追加されます。出力パラメーターの解析に失敗した場合、または不正確な場合、Automatically Parse Parameters をオフにして、手動で Add Parameter を行うことができます。

  6. プッシュコンテンツを構成します。

    プッシュコンテンツを表形式または Markdown 形式で構成します。Markdown の場合、${パラメーター名} プレースホルダーを使用して出力パラメーターや代入パラメーターを含めることができます。表形式の場合は、直接出力パラメーターを選択して表示できます。詳細については、「プッシュコンテンツの構成」をご参照ください。

    image

  7. データプッシュ設定を行います。

    • スケジュール周期:ドロップダウンリストから を選択します。

    • スケジュール時刻09:00 を選択します。

    • タイムアウト定義システムデフォルト を選択します。

    • 有効期間永続的 を選択します。

    • スケジュールリソースグループ前提条件 で事前に準備した汎用リソースグループを選択します。

    • データプッシュターゲットステップ 1:データプッシュターゲットの作成 で作成したプッシュターゲットを選択します。

      説明

      必要に応じてその他の設定を構成してください。詳細については、「プッシュ設定」をご参照ください。

  8. データプッシュタスクをテストします。

    保存 をクリックして構成を保存し、テスト をクリックして開発環境でタスクを検証します。

  9. テストが完了したら、タスクを公開します。

次のステップ

作成したタスクを管理できるようになりました。詳細については、「プッシュタスクの公開」をご参照ください。