Jose's FANTASY SPORTS!

アメリカンフットボールを中心にスポーツ好きで、カントリーギター好きのJoseによる雑記帳です。

WEEK17のプレーオフ当落線上のチームの進出条件のように複雑な条件を処理した話

2009年06月11日 23時42分14秒 | Weblog
[ 最近の出来事 ]
今日は、一日デスクで作業をしていました。

あらたに導入したツールにデータをインポートする作業です。

これが、非常に複雑で、これしきの事で、ほんとに丸一日かかってしまいました。
(作業が複雑で大変だという事だけ分かってもらえれば良いんで、分かりやすい書き方とか、順番とか、表現とか、一切考えていません。あしからず。)

前提A. 作成するデータは、もととなるリストをExcelでもらう。全部で6~10ファイル。1ファイルには、3~8シートあり、それらを全てあわせてデータを作成する。1シートは、300~1500レコード位。
前提B. もらうExcelのリストは、多少列がズレてたりするもの、全く形式が違うものA、全く形式が違うものBがある。
前提C. 作成するリストは、別途指示書に内容の記載がある。
前提D. 指示書には、リスト側に無い情報も一部記載されている。この情報は、インポートデータを作成する際、必要である。

1. 今回インポートするデータ内で、ある番号が重複する場合は、1レコードだけをイキとする。
どれをイキにするか、は自由に決めて良い

2. 過去3ケ月以内に取り扱った実績のある番号のレコードは、対象から除外する。
ただし、指示書に取り扱う旨、指示の記載がある場合は、この限りでない

3. リスト中のある番号は、途中の"-(ハイフン)”を取り除く

4. 全く形式が違うものAは、大多数のリストの形式にあわせるが、情報が不足している。必要な情報で、不足しているものは、独自のロジックで補完するが、以前に存在する値は入れてはならない。

5. 全く形式が違うものBは、これらとは別の数十万レコードのDBと、ある番号で引き当てを行う。

6. 上記5.の処理で、引き当たった場合は、数十万件のDB側の情報をイキとして、リストの形に整形する。

7. 5.の処理で引き当たらなかったレコードは、大多数のリストの形式にあわせるが、情報が不足している。必要な情報で、不足しているものは、独自のロジックで補完するが、以前に存在する値は入れてはならない。

8. 5.以下で取り扱う、全く形式が違うものBの該当するリストは、全レコードの特定の項目に“あり”と値を入力する。

9. 実は、数十万件のDBには、5.の処理で引き当てる際のキーとなる項目が、複数存在しているケースがとても多い。
  多いときは、30レコード程度存在する。(数十万件のDB内では、別の主キーがあって、そちらは重複していない。)

10.. 実は、全く形式が違うものBにも、何種類かの形式がある。

11. 過去に、全く形式が違うものBの元データに存在していたレコードは、他の形式のリストにおいても、特定の項目に“あり”と値を入力する。

12. 全く形式が違うものA、Bは、都道府県のデータは入っているが、都道府県コードのデータが無いので、都道府県が「北海道」の場合は01、「青森県」は02...というコードを引き当てる。

13. とある項目が、A、B、C3種類の値が入っている、もしくはNullになっている。この項目に、Cが入っていたら、作成するリストには含めない。A、Bが入っている場合は、シート単位で指示書の指示に従って、含めるか、含めないか、を決定。(Nullの場合は、全て含める。)

14. 最終的にCSV形式にするので、項目の値じたいに“,(カンマ)”が含まれている場合は、取り除く

15. もちろん、取り込む側のテーブル定義に対して、バイト長が長すぎるなどの場合は、なんとかする。

16. 作成したデータには、取り込み日という項目を用意して、YYYY/MM/DD形式で今日の値を全レコードに入れる。

・・・と、とりあえず今すぐに思い返せるだけの作成条件で、こんな感じの作業です。

実は、もらえるリストや、数十万件のDBは、PC(あ)にあり、システムへのアクセスは、別のPC(い)からしか行えない。
PC(あ)と、PC(い)はネットワークが別系統で、データ交換は、FDでのみ行う事ができる。
という悪条件の中、この作業を行わないといけません。

さらに、これらの作業を行う仕事を請けた本人は、既に異動しており、ドキュメントが一切残っていません。
まぁ、それはよくある事か。

やりながら、一部の作業は今後自動化できるようにもしていきましたが、すぐに手順とかをドキュメントにおとしておかないと...。

ともあれ、無事作業は終了しました。
よかった、よかった。
[Jose's FANTASY SPORTS SITE]
Jose's FANTASY SPORTS!
[他チームのBLOG]
[ Swamp Dogs ] [Start me up(GABBA GABBA HEY) ]
[ Tyabo-s ] [ Bonz ] [ Keseran Paseran ] [ Dragon Horse(5to81) ]
[ Wolverines ] [ Thunder Roads ] [ アイマスク21(57) ]
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする