SI

大量データ投入

大量データ投入
SI部の役割は、主にConnecty CMSoDのカスタムアプリと呼ばれる部分の設計ですが、サイトのリリース前になると、カスタムアプリのドキュメントデータベースに初期データを大量に作って投入するという作業が発生します。

お客様からEXCELで頂いた製品や店舗の情報や、既存サイトからクロールしたデータを組み合わせ、CMSoDのDBに入れられる形式に整形し直してインポートします。

EXCELのデータを大量に扱う場合は、やはりEXCELマクロが便利です。できるだけ自作マクロや関数などを使って作業を自動化し、時間短縮するよう心掛けています。大体は機械的な作業で済むのですが、データ形式が複雑だったりデータが大量だったりすると作業が難しくなります。それに、この作業をするのは半年に一度ほどの頻度なので、前回初期データ投入作業をしてからだいぶ時間が経ってしまって、過去にハマって苦しんだ事をキレイさっぱり忘れていたりします。

一番最初にハマった事:2年ぐらい前に、EXCELのセルに既存サイトからクロールしたHTMLデータを取り込んで、URLとHTMLデータを一覧表にするマクロを作ったのですが、セルの上限サイズを超えた場合のみセルの構造が滅茶苦茶に壊れてしまいます。テストデータでリハーサルをした時はその問題に気が付かなかったのですが、本番データを取り込んだらセルが壊れてしまってインポートできるような形にはならず、サイトのリニューアルオープン間際に、冷や汗流しながらマクロを修正したものでした。

その次にハマった事:HTMLファイルの改行コードがLFとCR+LFが混在していて、1行ずつ読み込んで処理するマクロが1行読むつもりでファイル全部を読み込んでしまい、意図した通りに動かず。その時も始めに改行コードを判定するように改良して、その後はサクサク処理できるようになりました。

そしてまたつい先週ぐらいに、初期データ大量投入の季節が巡ってきました。もう自作マクロも改良に改良を重ね、機能も充実してきて、今度こそ簡単に作業が終わるかな~!と期待していたのですが、今回お客様から頂いたデータはマトリックス形式の複雑な項目が多く、記入シートもジャンル毎に細かく分かれていて、項目の数もファイル毎に違う・・・。一様の作業では済まないので、縦横のデータを縦に直すマクロや、名称からIDに変換するマクロなどを組み合わせて項目数×ファイル数を実行するはめに。マクロを100回以上叩いたんではなかろうか。データ投入し終えるまでに何と2週間弱の時間が掛かってしまいました。

今度マクロを改良するとしたら、複数のマクロを組み合わせて全自動で実行できるようにしたいなあ。定時にマクロを叩いて帰って、次の日出社したら完了している。夢のようですね。でも全自動だとデータの中身を一切見なくなってしまうので、それはそれで怖いですけど。

ずっとこんな作業をしている訳ではないですが、私のやっている仕事の一部をご紹介しました。こんなSI部で一緒に働いてくださる方、お待ちしています!

ENTRY エントリー

SI 新着ブログ