TECH BLOG

MENU

オンプレクラウド

Dr.Sum

Dr.Sum Connect

さいしょに

この記事ではConnectのライブラリとなる[異常終了DBログ]ライブラリについて解説します。

ライブラリ群の全体の話についてはこちらの本記事に記載しています。

 

 

ライブラリの特徴

異常終了DBログはConnectの各スクリプトが異常終了となったときに処理の最後にログ情報としてデータベースに書き込みを行うライブラリです。

処理開始DBログで処理のスタートを記録し、正常終了DBログや異常終了DBログで終了情報をデータベースに書き込みます。

処理開始DBログがあってのこちらのライブラリになりますので、まずはこちらの記事をご覧ください。

 

 

 

なぜログをデータベースに書き込むのか

ログはテキストファイルに書き込むのが定番です。いざというときにテキストファイルを開けて情報を読みますよね。

これをデータベースに置き換えると、いろいろデータ分析ができるんです。

などなどです。

スクリプトが増えると運用管理が大変になるので、それを楽にするためにもデータベースにログを書くようにしましょう。

DBログに必要なテーブルの作り方はこちらの記事で解説しています。

 

 

 

ライブラリの詳細

引き渡し変数

異常終了DBログライブラリで必要な変数はこちら。

親スクリプトから渡してほしい変数はこちらの4つです。

です。
親スクリプトからは実行スクリプトIDを持たせればOKです。

親スクリプトからの変数の渡し方はこちら。

 

親スクリプトからは自身の変数である

を渡します。

エラーメッセージ変数に渡す情報は[${try_catch:error_message}]です。これはTry-Catchコンポーネントの中でエラーになったときのメッセージ情報になります。

同じように[メール送信]ライブラリの異常終了時にも同じエラーメッセージを渡しますね。

 

 

 

処理の流れ

 

[異常終了DBログ]ライブラリはコンポーネントが5つです。

[処理開始DBログ]ライブラリでデータベースに登録した情報(処理開始情報)を引き継ぎつつ、終了情報をデータベースに書き込みます。

 

 

 

日付取得

まずは現在時刻を取得します。日付のフォーマットは

yyyy/MM/dd HH:mm:ss

とすればOKです。

 

処理開始日時抽出

[ETL_EventLog]テーブルには[処理開始DBログ]でスクリプト実行時の情報が書かれています。この情報から[開始日時]を取得します。

[正常終了DBログ]は処理終了時なので、処理終了時刻は把握できますが、処理開始時刻は把握できないので、テーブルから取得をするのです。

処理を取得するSQLはこちらです。

SELECT
ETL_EventLog.開始日時
FROM
ETL_EventLog
WHERE
ETL_EventLog.イベントID ='${実行スクリプトID}'

 

変数格納

取得した開始日時をスクリプト変数の[処理開始日時]に格納します。

 

EventLog_TRN挿入

別記事にも書いていますが、ログテーブルは2つあります。

ETL_EventLogは常に最新情報のみを管理するテーブル(見たらすぐに最新の情報がわかる)

ETL_EventLog_TRNは過去の情報を保持するテーブルです。

ここではまず過去情報を保持するETL_EventLog_TRNテーブルへの書き込みをします。過去情報を保持するテーブルにはINSERTをします。

INSERT INTO ETL_EventLog_TRN (
イベントID,
ステータス,
開始日時,
終了日時,
メッセージ
) VALUES (
'${実行スクリプトID}',
'3',
'${処理開始日時}',
'${タイムスタンプ}',
'${エラーメッセージ}'
)

このようなデータが書き込まれます。

処理開始日時とタイムスタンプ(処理終了日時)、エラーメッセージ、そして異常終了のアナウンスをする訳ですね。

 

EventLog更新

今度はEvent_Logテーブルに書き込みをします。

ここでは[実行スクリプトID]をキーにして、正常終了の時刻を書き込みます。

UPDATE ETL_EventLog
SET
ステータス = '3',
終了日時 = '${タイムスタンプ}',
メッセージ = '${エラーメッセージ}'
WHERE
イベントID = '${実行スクリプトID}'

このようなデータが書き込まれます。

 

[異常終了DBログ]ライブラリは以上で終了です。

 

さいごに

異常終了DBログライブラリについては以上となります。

わずか5コンポーネントの簡単な処理ですが、この処理を組み込むだけでスクリプトの運用管理はとても楽になります。

効果に気付くのは運用してしばらく経ったあとになるかと思いますが、ぜひ初めて構築をするときから取り込んでいただけると嬉しいです。

他のライブラリについてもこちらで解説していますので、ぜひご覧になってください。

https://navi.wingarc.com/product/drsum/21332

この記事にリアクションしてみませんか?

What do you think of this post?
  • 分かりやすい (0)
  • 問題が解決した (0)
あなたのお役に立ててうれしいです!

石井 亮介

MotionBoard Dr.Sum
プロフィールへ >

BIツールのセールスエンジニア・システムエンジニア・カスタマーサクセス歴15年以上。お客様の課題から適切な製品・使い方を提示することが得意です。 ITベンダー時代にはさまざまなウイングアーク製品以外のBIツール・ETLツールの導入にも携わりました。 趣味で高田馬場の町中華でホームページ・オーダーシステムなどをつくってデータ分析をしています。

Related article

Related article関連記事

Pick up

Pick upおすすめ記事

【Connect】開発コスト・運用コストを抑えたスクリプトの構築方法

公開:2025.02.06
更新:2025.02.06

分かりやすい

1

解決した

0
  • データ取り込み
  • データ加工

Dr.Sum

invoiceAgent【「業務を変える動画たち」シリーズ】記事まとめ

公開:2025.01.16
更新:2025.01.31

分かりやすい

0

解決した

0
  • 業務を変えるシリーズ

invoiceAgent

【脱Excel】MotionBoardの入力機能で業務アプリをつくる

公開:2024.08.05
更新:2024.08.05

分かりやすい

3

解決した

0
  • データ入力
  • デザイン
  • コンテナ

MotionBoard

Ranking

Rankingランキング

1

【Connect】開発コスト・運用コストを抑えたスクリプトの構築方法

公開:2025.02.06
更新:2025.02.06

分かりやすい

1

解決した

0
  • データ取り込み
  • データ加工

Dr.Sum

2

Dr.SumのログをConnectでDr.Sumに取り込んでみる

公開:2023.12.19
更新:2024.04.18

分かりやすい

1

解決した

0
  • データ取り込み
  • データ加工
  • SQL

Dr.Sum

3

【Connect】使い勝手の良いライブラリたちを公開します

公開:2025.02.06
更新:2025.02.06

分かりやすい

1

解決した

0
  • データ取り込み
  • データ加工

Dr.Sum

Info

Information

ウイングアーク1stからのお知らせ