データウェアハウス(DWH)とは|現場のエンジニアが説明する必要性
データウェアハウスってなに?
どんなときにつかうの?
具体的な利用シーンは?

こんな疑問に答えていきます。

この記事の想定読者
  • DWHを提案された人
  • DWHを構築することになったエンジニア
  • DWHを提案する営業やコンサルタント

データウェアハウス(DWH)とは?

  • DWHとは、分析システムの裏側で動くデータベース
  • DWHとは、データベースの使い方に名前をつけたもの
  • DWHでは、通常のデータベースと違い正規化をあえて行わないなどの設計を行う

DWHはデータベースシステムについての専門用語であり、プログラミングのことを知らない人には触れる機会が少ない言葉です。

この言葉は抽象度が高く、使う人によって意味が異なる場合があります。

  • データベースを指す場合
  • DWHの設計基準を満たしたテーブル群を指す場合
  • 「データウェアハウスソフト」として販売されているソフト自体を指す場合
  • データレイク、データウェアハウス、データマート等をまとめて指す場合
  • データベースの設計方法としてデータウェアハウスと呼ぶ場合

「データウェアハウスソフト」と名付けてパッケージ販売しているソフトもあり、その場合は、ソフト自体を指す言葉としても利用されます。※グラフなどを見られる分析システム+DWHを合体して販売しているソフトも存在しており、そういった場合は、分析画面も含めてDWHと呼ぶ人もおります。

また、開発者の立場としてデータベースの設計方法を指して「データウェアハウス」という言葉を使うこともあります。

データウェアハウス(DWH)3つの特徴

データウェアハウスの特徴として以下の3つが挙げられます。

  • 大量のデータが保存される
  • データに一貫性がある
  • 処理が高速

どれも分析には重要な要件です。

つまりDWHとは分析のために特化されたデータベースと言えます。

データウェアハウス(DWH)が存在しないとどうなる?

DWHなしで分析システムを構築したり現場の作業者がデータ作成を実施したりすると以下のような問題が発生します。

  • 処理が重く、分析できない
  • 新しい分析をする為データを集めるのに時間がかかる
  • 分析する人によって結果が変わってしまう

データウェアハウス(DWH)を導入する理由

DWHを導入する大きな理由は、基幹システムへの影響がなくなることです。DWHがない場合に帳票の作成やデータ分析を行ってしまうと、定常業務で利用している基幹システムが重くなったり最悪の場合システムが止まることがあります。それほどデータ分析はリソースが必要な処理になります。

そのため、データ分析を行うためのデータベースを用意し、さらにどうせなら分析を効率よく行うための作り方もしようというのがDWHです。

データウェアハウス(DWH)が必要になる場面

続いてどういった場合にDWHを導入するのか、検討するポイントをまとめました。

1.分析システム(BIツールなど)を導入している場合

すでにBIツールなどの分析システムを導入されており、DWHを構築されていないのであれば導入を検討すべきです。今は問題が顕著になっていないだけで今後先述した問題が発生する可能性があります。

2.情報システム部門へデータ作成を依頼している場合

経営会議などの資料を作成するためにシステム部門へデータ作成を依頼している場合、DWHの構築を検討するべきです。 もしかすると、現場のシステムエンジニアは独自に作成している場合もありますのでそれを元にエンジニアが誰でも扱えるように整理することにより、会社の眠っているデータがいつでも活用できる資産になります。

3.会社にある分析したいデータがExcelである場合

いつも分析に使っているデータがExcelやテキストデータの場合、DWH構築を検討しましょう。 今は問題なくてもデータが増えた時に対応できなくなります

4.データが至るところに存在している場合

分析システムを構築していない、する予定がなかったとしても、ExcelやAccess、業務システムなど、至るところにデータが点在している場合はDWH検討の余地があります。 企業の資産であるデータがあらゆる箇所に点在している状態だと、簡単に経営状況を見るだけでもデータをかき集めるのに大変な労力となります。

データは1つの箇所にまとめておくことで短期的に見てもデータを探す手間が省けて生産性の向上につながりますし、長期的に見ても大量データ分析の準備となるのでオススメです。

データウェアハウス(DWH)導入前に必要なもの

データウェアハウス(DWH)に必要な環境

  • サーバー

DWHは基本時にPCにインストールするソフトウェアなのでサーバの用意が必要です。ですが、最近はクラウドサービスとして提供しているDWHサービスも存在しているため、その場合はサーバは必要ありません

※ただしDWHに対してデータを更新する仕組みをどうするかは検討が必要です。

  • データベースソフト

    DWHを構築するためのデータベースソフトは必須です。通常のデータベースソフトや、DWHに特化したデータベースソフトもありますので、要件に合わせて用意しましょう。

    • プログラミング開発環境

    DWHはデータベースでありデータを蓄積するだけのものです。データを登録や更新するような仕組みは持ち合わせていないため、プログラミングが必要になります。

    windowsのコマンドプロンプトや、pythonなどのプログラミング言語を使うこともありますが、近年はETLツールと呼ばれるNoプログラミングツールを利用することもあります。

    データウェアハウス(DWH)に必要な知識

    • データベースの知識

    DWHはデータベースの使い方の一つのため、通常のデータベースソフトを利用する場合はDWH設計の知識が必要になります。

    DWH専用のソフトを利用する場合は少なからずどのようにデータを蓄積すれば良いかなどの知見が必要になってきます。

    • プログラミングの知識

    DWHにデータを登録するためのプログラミングの知識が必要になります。具体的にはSQLやコマンドプロンプトやbash、さらにjavaやpythonなどが必要でしょう。

    • ツールの知識

    DWH専用のソフトやプログラミングを実施しないETLツールなどを利用する場合は、そのソフトやツール独自の知識が必要になります。

    データウェアハウス(DWH)運用のために考えておくこと

    • 更新タイミング

    DWHを利用する分析システムではどのタイミングの情報を見たいかどうか検討します。

    基本的には、夜間の間に前日の情報を更新する「日次更新」です。

    どうしても常に最新の状態が必要な場合は「リアルタイム更新」を選択しますが、運用負荷が高くなります。

    締め処理後の確定データだけを参照したい場合は「月次更新」や「週次更新」を選択します。

    • マスタの更新方法

    DWHには様々なシステムのデータを1つに集約することがあります。そういった時に各システムごとに社員コードが違うなどの事象が発生します。

    その場合に、DWHではどの社員コードを扱うのか?社員の情報が更新された時DWHではどのように更新するか?を検討します。

    • 過去何年分まで参照するか

    DWHは大量のデータを保存することができますが、データの単位が細かすぎる(秒単位のデータなど)と対応できるソフトやサーバのディスク容量について検討しなければいけません。

    データウェアハウス(DWH)導入の次は

    DWHを導入後もBIシステムを運用しているとさまざまな問題や課題が出てきます。参考までに想定される事象と解決策をまとめます。

    分析システムがまだ遅い(データマート)

    DWH導入後、分析はできるようになったけど、一部の分析システムがまだ遅い。そう言った場合は、とても複雑な分析処理にしている可能性があるため、データマート(DM)と呼ばれる仕組みの導入を検討する必要があります。

    データマートについては以下の記事を参考にしてみてください。

    新しいデータで分析したいのに追加費用や開発時間がかかる(データレイク)

    DWH導入後、新しいデータで分析をしたいのに、その度に新しいDWHを作る必要が出てきてしまい、自由に分析できないことで社内に分析文化が根付く妨げになることがあります。そう言った場合はデータレイクと呼ばれる仕組みを検討すると良いでしょう。

    データレイクについては以下が参考になります。

    データウェアハウス(DWH)まとめ

    最後にここまで記載した情報を振り返ります。

    DWHまとめ

    DWHとは分析のために特化されたデータベースで3つの特徴がある

    • 大量のデータを保存できる
    • データに一貫性がある
    • 処理が高速

    以下4つの状況が存在する場合にはDWH導入を検討する

    1. システム(BIツールなど)を導入している場合
    2. 情報システム部門へデータ作成を依頼している場合
    3. 会社にある分析したいデータがExcelである場合
    4. データが至るところに存在している場合

    DWHはシステムの裏側の話のため、専門知識が必要

    DWHを導入する=データベースソフトをインストールしてDWHとして設計+開発することなんだなと考えてください。

    ちなみに、DHW=Data WareHouse(※直訳でデータの倉庫)という意味です。大量データをきれいに整頓されているイメージからこの名前がついたそうですよ。

    最後までご覧いただきありがとうございました!

    おすすめの記事