ひとりで残業する夜。データ移行を確認している。移行元から出力された24,400件のCSVデータをREST APIを活用した一括登録。ただ、24,000件といった大量データを一度に送ると、通信タイムアウトやサーバー負荷によるエラーのリスクが高くなる。そこで、データを5,000件ずつの適切なサイズに分割して送信する。これなら、万が一途中でエラーが発生しても、どのブロックまで完了したかの把握が容易になり、リカバリ作業もスムーズに進むはずだ。
が・・・しかし、移行元から出力されたCSVには24,400件あるはずのデータが、移行先のシステムには約24,000件しか取り込まれていない。深夜に判明した400件の差 ── この数字を見るたびに、重みがのしかかる。本稼働は一週間後、誰もいないオフィスの静けさが、余計にその重みを強くする。

この差はなぜ生まれたんだろう!?
①必須項目・フォーマットエラー
システムがデータを取り込む際に
- 必須項目が空
- 日付・数値の形式が合わない
- 文字数超過
などがあると その行だけスキップされるはずだ。
CSV出力元は問題ないけれど、移行先のシステム側で弾かれるよくあるパターンのひとつだ。
②重複による弾き
ユニーク制約のあるキーがCSV側で重複している可能性がある。もしくは取り込み先で既存データと重複。この場合も行数が減るだろう。
③ 改行や特殊文字
CSVは一見普通でも、文字コードや改行が原因で1行が2行に分かれると、その行が読み飛ばされることがある。
規模的に400件程度なら、これも十分起こり得る。
話がそれるが、私はKpopが好きで、新大久保の韓国料理店や、ディズニーリゾートにもよく行ってた。職場の若い人と共通の話しがない訳ではない。でも還暦を迎えた今、若い人のコミュニティに積極的に関わるのは控えたほうがいいと思ってしまう。いまの職場は、若い女性が非常に多く、同年代の男性は少ない。いるにはいるが、その多くは仕事をマトモにしていない。居酒屋で「もう苦労して頑張るような年齢じゃないよね」と、言って慰めあう。もちろん、出世して管理職になって、部下を統率する立場もいる。作業よりも人材マネジメントが中心の役割。私はどちらにも属さない。ひとりで自分の役割をこなしてる。ベテランのエンジニアとして、仕事へのプライドがある。
ただ、この夜は少し内省的になった。
- 一人で作業
- 周囲は誰もいない
- 静かな帰り道
こういう状況が
「自分は仕事しかしてないな」
「同僚との付き合いもないな」
と、人生全体を評価してしまう思考に走った。
それでも、孤独な残業は無駄ではない。データ移行でズレを見つけたことは、一週間後に稼働するシステムの「RASIS」を確保する重要なチェックだ。
RASIS(レイシス)という言葉。システムやサービスの品質を評価するための非機能要件の指標で、信頼性・可用性・保守性・保全性・安全性の5つの観点からシステムの品質を評価する考え方を指す。
もともとは1970年代に IBM が提唱した RAS(信頼性・可用性・保守性) が基になり、日本で Integrity(保全性) と Security(安全性) が加えられて RASIS になった。現在ではクラウドや業務システムの品質評価の指標として浸透しつつある。
- Reliability(信頼性):システムが故障せず安定して動き続ける能力
- Availability(可用性):必要なときにシステムを利用できる能力
- Serviceability(保守性):障害発生時に迅速に復旧できる能力
- Integrity(保全性):データを正しく保ち、改ざんや破損を防ぐ能力
- Security(安全性):不正アクセスや攻撃からシステムを守る能力
これら5つは互いに補完し合ってる。確実に組織の安全網を支える。地味だけれど、意味のある行為だと思う。
ただ、仕事だけではない人生もある。このブログがまさにそれ。記事を積み重ね、6年近くになる。いまでも週に数回更新している。興味ある情報セキュリティや社会の動向を観察し、自分の考えを整理して伝えること。属さない自分だからこそ、記事を書く時間の価値を実感できる。
いま、数字を見つめ、考えるこの夜も、人生の種として文章にする──そう思うと、寂しさも、孤独も、少し温かみに変わる。
一週間、焦らず一つずつ。