CASE & ACTIVITY
インフォテックの取り組み
  • BI↔DWH連携/ETL
  • 事例紹介

DWH/ETL/BIの役割を活かした設計で夜間処理を9時間から5時間に大幅短縮

プロジェクト概要

弊社が運用を担当していたDWH/ETL/BIシステムを作り替え、夜間処理にかかる時間を4時間削減しました。

プロジェクトのきっかけ

他社が開発したDWH/ETL/BI環境の運用担当をしていましたが、システムの品質に課題があり、障害が多発しておりました。
そこで弊社は、部分的な対応では改善が見込めないことから
弊社主体による、現行環境の再調査及びシステム全体の再構築をご提案し実施することになりました。

プロジェクト前の課題

障害多発やパフォーマンスの悪さから夜間処理が始業時間までに完了しない日が多く、お客様の営業活動や分析業務に支障が出ていました。
弊社の運用チームは業務の大半を障害対応に割き、改善対応を随時行っていましたが、
リカバリーできる対応範囲を超えており、改善できない状態が続いていました。

弊社の取り組み

現行システムの課題の発見

プロジェクト開始にあたり、まずは現行環境を分析するところから着手しました。
確認すると、下記のような問題点がありました。

DWH 用途不明のビューが多数存在している
テーブルの正規化やビューの項目数の制御が適切にされておらず、使いにくい
ETL 後付けしたような処理が散見される
冗長なロジックの処理が存在している
BI DWHにレポート形成しやすいレイアウトのデータがなく、設定が複雑になっている
正規化されてないデータからレポートを作成していたため、レポート作成処理時間が大幅にかかる

最終的なシステムの全体像が設計段階でまとめられず、開発・検証の段階で余分な処理やオブジェクトが増えてしまったと推測されます。

無駄のないシステム設計

最終アウトプットであるBIレポートを起点として、DWH/ETL/BI各システム(ツール)の役割に合わせて設計しました。

<BI設計>
BIの役割はDWHのデータから分析結果を可視化することです。
お客様から必要なレポートをヒアリングし、レイアウトを決め、必要なデータを洗い出します。
<DWH設計>
DWHの役割は分析や業務に必要なデータを保存することです。
レポートに必要なデータが確定した後、取得元のシステムを特定して連携し、保存する為のテーブルを設計します。
ゴール(レポート)が決まっているので、必要なデータのみ連携するように設計します。
<ETL設計>
ETLの役割は必要なデータを他システムから抽出・変換し、DWHに蓄積することです。
最終アウトプットと他システムからの連携データを確定した後、それらを繋ぐための処理とデータレイアウトを考えていきます。
ETLは加工・集計が得意なので、BIで参照する際にはシンプルなデータ構成となるようジョブを設計します。

稼働後の運用を想定した準備

品質の高いシステムであっても障害が発生する可能性は0にはならないため、有事の際には運用チームのリカバリスピードと品質がお客様の安心感につながります。
有事に備えて以下運用チーム向けの資料を作成しました。
・各種業務の解説資料(プロジェクトメンバーとの勉強会で作成したものを利用)
・複雑なロジックの解説書
・想定エラー別のリカバリ手順書
・保守開発用のジョブ改修手順書

効果

システム構成を最適化したことで、毎日午前5時には夜間処理が完了するようになりました。
早朝に夜間処理が完了し、お客様が始業後すぐに最新データを利用できるようになったことで営業活動や分析業務のタイムロスがなくなりました。
システム品質の向上により障害発生率が下がったことと、
障害発生時でも運用向け資料に沿って対応をすることでリカバリ作業が容易になり、運用工数が削減されました。