logデータの突き合わせプログラムを書けという自分への指令(5・終)

ログの原簿であるLog200のデータにある交信レコードをup-to-dateにしているメインのデータベースであるMariaDB (MySQLコンパチブル)のデータと照合して,MariaDBに欠落しているレコードがないか,を確認するプロジェクトですが,照合スクリプトの最終形が吐き出したエラー分について手で確認をしました.

MariaDBとの照合は,日付,時刻(±5分のマージン)とコールサインで検索しました.参考の為に,モードの違いについても,検索してヒットしたレコードと原簿のレコードについて照合して,違う場合はwarningとしました.

原簿にある7万9千レコード全部について照合するのに,190分ほどかかりました.そのうちほとんどがMariaDBが占めていて,PerlのCPU占有は30秒余りです.

その結果,モードの違いまでも含めると,540ありました.検索条件が違うので(4)の293件より多くなっています.

このうちwarning扱いのモードの違いをのぞいたエラーは,128件で,手作業で照合しました.

ほとんどが,コールサインの間違いです.もらったQSLカードで修正したものがほとんどです.また,時刻の違いも何件かありました.時刻は,PCの時計データを取り込むようにしていますが,そのPCが仮想マシンのため,仮想マシンが再起動した直後に時刻データが不正確であった可能性があります(これは仮想マシンの特定のバージョンにより含まれているバグです).可能性は低いとはいえ,自分が間違っている可能性もあり,間違っているのは自分か相手か断定できません.しかし,もらったQSLカードに返信の形で発行するQSLカードは相手の時刻に合わせた方が無難なので,ほとんどのケースで相手に合わせて修正してます

完全な漏れは,先に判明したUR2FEO局の2交信分の他は,8N2SEA/2局との1交信のみでした.いずれも追加済です.思っていたよりうんと少ないレベルなので,安心しました.

これで,少なくとも原簿であるLog200に記録されている交信は全てメインの交信データベースにあるという状態にできました.

ただし,多くはない思いますが,原簿に漏れている交信もあるはずです.それらについてはどうしようもないです.QSLカードが届いて,該当する交信レコードがないときはこっそり追加するしかありません😓

Notes:
1. ただし,あり得ない時間や明らかにJST/UTCの計算違いの場合は,こちらの時間にしています.
ただし,あり得ない時間や明らかにJST/UTCの計算違いの場合は,こちらの時間にしています.