仕事

泥沼のような一週間になったってのは仕事での話である。単純に言えば今までExcelで管理していたデータをAccess製のDBに流し込み、それをもとにいくつかの集計結果を出すだけなんだが、随分手間取った。なぜかというとそもそも今までのデータの整理の仕方と、DBの設計が全然かみ合ってなかったから。つーわけでデータを落とす前にDBの設計に沿うように整合性を取る必要がある。1週間という短い期間でやっつけたのは、集計結果を出す締め切りがすでにすぎていたせいだ。いやはや。
問題はまず今回の仕事を持ち込んできた担当部署の人がDBの設計だのなんだのについてはまるきし知らないということだった。というわけで、まずDBってのはどーゆーものかというところから説明していかなきゃならない。しかるのちに今回使用するDBの設計についての話をする。勢い話はリレーショナルデータベース入門になる。これで結構時間を費やした。
でもってデータの内容については当然担当じゃなきゃ判断を下せない部分があるので、データ整理は当然そんお担当の人にやってもらわなきゃしようがない。時間をかけてDB入門の話をしているから仕事をやったような気にはなるんだが、実際にはその間仕事はまるで進展していないのである。その後データの整理にとりかかった後も細かい質問はいくつか出てくるのでその対応も必要だ。
で、データをコンバートしてもその後の集計作業があって、そこでまたちょっと苦労する。ほとんどはクエリが用意されていたのでそれを使えばいいのだが、出てくる結果が微妙に間違っている。その都度DBの設計を見直し、入力したデータに誤りがないかをちまちま探していく必要が生じる。めんどくせえ。人の作ったDBの構造を理解するのは結構大変だ。でもって集計用のクエリが用意されていないものもあったので、それについてはPerlスクリプトを書いて暫定的に対応。最終的にはAccess側で結果を出すようにする必要があるだろう。
たかだか1000件ちょいのDBだったんだが、それでも1週間も費やしてしまうのである。銀行のオンラインシステムなんかだと1日数千万件のレコードが発生して、しかもそいつらをリアルタイム処理しなきゃならないってんだからその苦労というのは私の想像の埒外にあるのに違いない。恐ろしいことである。
まあ今回の件については、担当部署が以前自分のいた部署だったこともあったという幸運があった。それゆえある程度早いうちに話が通じるようになったのでまだマシだったといえるだろう。PerlでDBをいぢるってのもちょうど興味があって調べていたところだったのでスクリプトを書くのにそれほど時間はかからなかった。とりあえずヤマは超えたってことでようやく一息である。ふー。