
こんにちは!やましー@データ活用クラウドエンジニア(@yamashi18041)です!
あなたはデータの重要性に気が付いているでしょうか?
おそらく、あなたはその重要性に気が付き始めているからこそ、私のブログを読んで下さっているのだと思います。
これからの時代、データは超重要な資産の一つになっていきます。
ただし、データはほっておくとただのゴミです。
あなたはこんなことを思ったことはありませんか?
- あのキャンペーンの時のデータってどこにあったっけ?
- これいつ時点のデータだ?
- ファイル名に「_old」「最新_」「_追記」「_編集中」「_V2」
が付いている。どれを見ればいいんだ。 - 保管期間が過ぎてなくなってる。
まさにゴミデータですね。
しかし、データを有効に活用することでそれは資産となり、あなたの組織へ、そしてあなたに利益を生むようになります。
日本はまだまだデータの活用が進んでいるとは言えません。
今、デジタルトランスフォーメーション( ITの浸透が、人々の生活をあらゆる面でより良い方向に変化させる)が巷を賑わせています。
様々なものをIT、デジタル化すると言ことは必然的にそこにデータが生まれます。
デジタルトランスフォーメーションの次のステップとして必ずデータ活用というステップが見えてきます。
しかし、データは溜めなければ消えてしまいます。
ただ単に溜めておけばよいかというとそうでもありません。
前置きが長くなりましたが、今日はそのデータを溜めるのに大切なデータ基盤について、その構成要素であるデータウェアハウスを解説した記事です。
その前にデータ基盤って何?って方はこちらの記事も併せてご覧ください。
このブログで説明するデータウェアハウスの前提

まず前提として混同されやすいのでこの記事で取り上げるデータウェアハウスについてです。
説明する人によっては、データ基盤全体をデータウェアハウスとして説明される方もいれば、データレイクをウェアハウスと説明している方もいます。
私は以前の記事でデータ基盤を説明していますが、この記事ではデータ基盤の構成要素として、データ基盤の一部としてデータウェアハウスを説明します。
データウェアハウスとは

データウェアハウスとは簡単に言うと「意思決定のためデータを構造化して統合して時系列に溜める場所」ということになります。
実態としてはリレーショナルデータベースでその使い方の概念の名前がデータウェアハウスとなります。
もう少し細かく説明すると
データを取り出しやすいようにデータレイクに溜めたデータを構造化データとして整形して溜める場所になります。
すなわちSQLで処理できるようにする場所(リレーショナルデータベース)ということです。
そしてデータを統合するために項目名やコードを統一(統合)して溜めることになります。
さらに過去のデータもすべて 時系列で溜める場所になります。
特徴をまとめると
- 構造化データを溜める
- 項目名やコードを統一(統合)して溜める
- 時系列で溜める
という場所がデータウェアハウスです。
ちなみにアメリカの計算機科学者ビル・インモン(William H. Inmon) が データウェアハウスの父と呼ばれています。
なぜデータウェアハウスが必要なのか

なぜデータウェアハウスが必要なのでしょうか。
それは、意思決定を行うためです。
この説明はデータ基盤が必要な理由でもあるんですが、マーケティング、プロモーション、業務効率化、コスト削減、あらゆる場面で施策を実施すると思います。
これまでは施策を実施する根拠として経験と勘によって意思決定していたことでしょう。
それは属人生が高く、再現性がなく、ある意味ギャンブルです。
しかしこれからはデータを活用し、実施した施策を検証し次に生かす時代です。
そのためにはデータを1か所に集めて、検索や分析、AIによる機械学習をし易くするためにデータウェアハウスが必要なのです。
データウェアハウスのメリットとデメリット

データウェアハウスのメリット
データウェアハウスの長所メリットを列挙してみます。
- データが1か所にまとまっている
- 他部門以外のデータを扱って分析ができる
- 一般的にSQLで検索が可能
- 項目名など統一化されている
- 時系列なので当時の状況が分かる
- 分析者は本番のシステムへ直接アクセスしなくてよい
- すぐに分析に取り掛かれる
デメリット
データウェアハウスの短所デメリットを列挙してみます。
- 非構造や半構造化データが扱えない(構造化する必要がある)
- データソースから受け取るデータ型、スキーマなどの変化に弱い
- SQLを覚える必要がある
- 新たにデータソースを追加するためにステークホルダーが広がる
- 構築にはかなり費用が掛かる(予算取りが難しい)
Microsoft Azureにおけるデータウェアハウス

データ基盤は運用するにつれてデータ量が莫大に増えていきます。
データ量が増えたり、分析などをするユーザーが増えると処理速度が問題になっていきます。
そのため拡張性に優れたクラウドサービスを使うのは非常に相性が良いです。
MicrosoftのクラウドサービスであるAzure でデータウェアハウスを実現するためのサービスは
「Azure Synapse Analytics」を使うのがよいでしょう。
SQLで操作ができますし、将来的には非構造化データを扱えるかもしれないというデータウェアハウスの弱点を克服してくる可能性を秘めています。
ちなみに余談ですが、このAzure Synapse Analyticsですが2019年11月のMicrosoft Igniteで発表があるまではSQLDW(SQL データウェアハウス)という名前でした。
その第三世代の位置づけとされています。
この少し意味の分かりづらい名前に変わった理由として
Microsoft としては「そこに注力していくという証」だそうです。
データウェアハウスの周辺技術

データウェアハウスに関する周辺の技術がいくつかあるので説明しておきます。
- データレイク
- データマート
- ETL
- BIツール
- クエリツール
- メタデータ管理ツール
データレイク
データレイクには各業務システムから得られるすべてのデータをそのままの形で置いておく場所になります。
より詳しい説明こちらをご覧ください。
データマート

データマートにはデータウェアハウスから特定の用途や部門向けに必要なデータだけを取り出して結合や削除、集計などあらかじめ加工してデータを溜めておく場所になります。
また、ユーザーはデータマートに分析(BI)ツールを接続してデータを参照する場所になります。
データマートはデーウェアハウスに比べて溜めてあるデータ量が少なくレスポンスが早いのが特徴です。
さらにデータウェアハウスは大規模なデータを高速に処理するために複数台のコンピュータを分散して処理を行います。そのため、小さなデータを処理しようとすると逆に時間がかかってしまいます。
ユーザーがアクセスをデータマートにすることで、データウェアハウスへアクセスが集中するを避けることができるので負荷も分散されます。
まとめると
- 特定部門向けのデータを溜める
- 分析しやすいようにデータを溜める
- 分析ツールで接続してユーザーが直接使う
より詳しく知りたい方はこちらの記事をどうぞ
ETL
ETLとは
- Extract(抽出)
- Transform(変換)
- Load(格納)
の頭文字をとったものです。
Extract(抽出)
各業務システムからデータを取り出したり、またはデータレイクからデータを取り出すことを言います。
Transform(変換)
Extract(抽出)で取り出したデータをデータウェアハウスの統合されたフォーマットに変換することを言います。
Load(格納)
データウェハウスまたはデータ基盤へデータを格納することを言います。
ETLは専用ツール、または自作のプログラムやスクリプトを使う場合があります。
AzureのETLツール
Microsoft AzureにおけるETLツールであるDatafactoryについて以前記事にしたので良ければどうぞ。
BIツール 、クエリツール

BIとはビジネス・インテリジェンス(Business Intelligence) を意味しています。
データをグラフやチャート、マップなど様々な角度からデータを見える化し意思決定をスムーズに行うためのツールになります。
また、ダッシュボードやレポーティングなどを行い、情報の共有等を行うこともできます。
データウェアハウスやデータマートに接続して、接続するツールです。
以下のようなものがあります。
- Microsoft Power BI
- Pentaho(ペンタホ)
- Qlick Sense(クリックセンス)
- Tableau(タブロー)
- Google Data Studio
メタデータ管理ツール

メタデータ管理とはデータガバナンスと言ったりもします。
データウェアハウスやデータ基盤など1か所にデータを入れたたとしても実はどのデータがどのようなテーブル構造、スキーマ構造で入っているかを管理しなければどこに何があるかが分からなくなってしまします。
そのためメタデータ管理ツールを使いデータカタログを作りデータを管理します。
まとめ

デジタルトランスフォーメーションが浸透とともに生産されるデータ。
このデータを有効に活用することで、変化の激しいこの社会で競争力を持ち生き残っていくことができます。
そのために必要なデータデータ基盤。その中核を担うデータウェアハウス。
今日はそのデータウェアハウスについて解説してみました。
データウェアハウスとは「意思決定のためデータを構造化して統合して時系列に溜める場所」です。
実態はリレーショナルデータベースで、Azure におけるデータウェアハウスサービスは「Azure Synapse Analytics」という製品でした。
是非、データを有効活用し、一緒に世の中にインパクトを与えられる人材になっていきましょう。
最後まで読んでいただきありがとうございました。
以上、やましー@データ活用クラウドエンジニア(@yamashi18041)でした。