一ヶ月分の転送ジョブの合計転送時間を取得したい場合
転送元TROCCOを利用することで、過去分のジョブ実行時間をジョブ単位で取得可能です。そのため全てのジョブの情報を取得して、転送時間の和を求めてみましょう。
転送設定作成
転送元TROCCO → 転送先 BigQueryで設定を作成しました。
今回集計したいジョブは2024年12月に実行された転送ジョブのみ、なので以下のように設定します。
取得できるデータはヘルプページにも記載があります。今回はstatusとstarted_at、そしてfinished_atのデータを利用します。
STEP2に遷移したらプレビューとカラム定義が作成されます。次にstatusがsucceededのレコードのみに絞り込んで抽出を行いたいので、データ設定タブ内「フィルター設定」にて以下設定を行います。
「変更をプレビュー」を行うと、プレビューで利用するレコードがないというエラーが発生することがあります。 理由はプレビューで使用しているレコードは取得対象のレコードの一部のみを利用しているためそのレコード内に一致しなかった場合、No input records to previewエラーが発生します。
転送ジョブを実行するとstatusがsucceededのレコードのみ転送されたのが確認できます。
次にstarted_at(転送ジョブの開始日時)とfinished_at(転送ジョブの終了日時)の差分を計算して転送処理時間を求め、合計を出してみます。これはデータマート定義を用いて計算することができます。(データマート定義はBigQuery、Snowflake、Redshift、Azure Synapse Analyticsでのみ利用できます。)データマート定義が利用できない転送先の場合は、転送後に転送先にて計算をお願いします。
クエリで差分を計算し、その後フォーマットを◯時間◯分◯秒に変換を行います。
記述したクエリ例
WITH tmp AS (
SELECT
SUM(timestamp_diff(finished_at, started_at, SECOND)) AS diff_second
FROM
dataset.table
)
SELECT
CONCAT(
EXTRACT(HOUR FROM MAKE_INTERVAL(SECOND => diff_second)), '時間',
EXTRACT(MINUTE FROM MAKE_INTERVAL(SECOND => diff_second)), '分',
EXTRACT(SECOND FROM MAKE_INTERVAL(SECOND => diff_second)), '秒'
) AS format_seconds
FROM tmp
これで処理時間の算出ができるようになりました。
コメント
0件のコメント
記事コメントは受け付けていません。