データ分析基盤の基本と構築のポイント

データ分析基盤の基本と構築のポイントについて解説します。

データ分析基盤とは

データ分析基盤は世の中に溢れる様々なデータについて統合、活用するためのシステムです。データの収集、蓄積、分析、可視化の4つの機能を持ちます。システム構成としてはデータレイク、データウェアハウス、データマートの3層構造が一般的です。またシステムの利用目的としてデータ分析だけでなく、データの集計やレポーティング、機械学習への活用も行われるため、より広義な意味でデータ基盤とも呼ばれています。

データ分析基盤の構成

データ分析基盤の構成

データレイク

データレイクはデータを加工せずにそのまま集約したものです。元のデータに対して不可逆な加工処理を施して保存してしまうと、後からデータの活用方法が替わった際に大きな問題が生じます。そこでデータレイクでは元のデータをそのままコピーして保存しておくことで、そのような問題に柔軟に対応します。IoTやSNSのデータなど、現在、世の中で収集されるデータの多くは非構造化データとも言われています。そのためデータレイクでは構造、非構造に関係なくデータを保存できる形式を採用しています。

データウェアハウス

データウェアハウスは元のデータにドメイン(領域)知識を反映させたものです。データレイクと異なり、データウェアハウスでは構造化された形式でのみデータ保存が行われます。データウェアハウスの内部には、生のデータを加工する処理であるETLと加工されたデータを保存するためのデータベースが存在します。そのためデータは扱いやすいフォーマットに整形されており、データ利用者はSQL等を用いてデータの抽出・分析作業を行うことができます。

データマート

データマートは特定の用途・目的に応じて、必要なデータを抽出・加工したデータベースのことを指します。データウェアハウスは、複数のデータソースから目的別に再構成されたデータベースですが、データマートは目的を果たすために必要となる一部のデータをまとめたものになります。そのため扱うデータサイズやデータソースの数についても、データウェアハウスに比べて限定的なものになります。データを扱う際にパフォーマンス効率を気にしないかつ、複雑な集計処理を挟まずに、ユースケースに最適化されたデータ利用を行えることが重要です。

データ分析基盤構築のポイント

ユースケースの確保

データ分析基盤の最大のメリットは企業全体でみたときのデータの効率的な再利用です。そのため基盤構築を行うにあたっては、現在データを活用している担当者のユースケース把握が非常に重要になります。エクセルやダッシュボードなどの環境を利用して、ユースケースが確立されている場合、必ずしもそれらに汎用性が求められないこともあります。複雑な構造を持つデータの加工や集計など、汎用性を求められるユースケースの洗い出しを行い、企業全体としてデータ活用コストを最適化することを考える必要があります。

効率的なデータ収集

データ分析基盤を実際に構築するにあたっては、データソースからのデータ抽出がボトルネックとなりがちです。データの自動連携が行えず、データ抽出を手作業で行うと人的ミスが増ええて、安定したデータ活用を行うことが難しくなります。またデータ収集を行うにあたっては、データ更新の流れを一方通行にする必要があります。逆方向へのデータ更新を許容してしまうと、処理のタイミングによってデータの状態が異なり、復旧が困難なものになります。安定したシステム運用を考える上でも、データフローの統一は重要な要素です。

データスキーマの運用

前述した様にデータウェアハウスでは、非構造化されたデータについて、定義されたデータスキーマに従って加工を行い、構造化された状態でデータを蓄積します。データスキーマについては都度、システム運用担当者が定義する必要があるため、スキーマの数が増えた分だけ、管理コストも嵩んでいきます。データの加工ロジックについても、複数のデータ間で依存させず互いに疎な形式にして、データソースの変更に柔軟に対応できる様にするなど、効率的な運用が求められます。

データ分析基盤に関わる技術

ETL(Extract Transform Load)

ETLはデータの抽出(Extract)、加工(Transform)、読み込み(Load)の略称です。ETLのプロセスでは様々なデータソースからデータの抽出を行い、データを構造化した上で、データウェアハウスに保存します。また、ETLではデータの内容を最新に保つため、定期的にデータソースからデータを取得するバッチ処理が必要になります。大量のデータを扱う際には、一度にまとめて送信すると他のデータ通信に障害が出る可能性があるため、重い処理を分割して行うなどの工夫が必要になります。

Extract

それぞれのシステムに蓄積された情報を抽出するプロセスです。複数のサービスに保存されているデータを取り出す作業です。データウェアハウスに取り込む必要があるデータなのかどうかを判断して抽出する項目を決めていきます。

Transform

Extractで抽出したデータをデータベースに取り込めるように加工します。それぞれの異なるシステムから抽出されたデータをデータウェアハウスのモデルに適した形に整形するプロセスです。

Load

加工したデータをデータマートに取り込むプロセスです。SQLのimport機能等を使ってTransformのプロセスで加工されたデータをデータウェアハウスのデータベースに取り込みます。

ストリームデータ処理

ストリームデータは途切れることなく送信され続けるデータが、川の流れに表現できることに由来します。工場の異常検知や広告配信の最適化など、世の中ではリアルタイムにデータを処理する需要が高まりつつあります。一般的なデータ処理ではまとまった単位でデータのやりとりを行います。一方でストリームデータ処理では、データのやりとりを行うデバイス間で通信を常に確立しておくことで、リアルタイムにデータ処理を行います。

ELK スタック

ELK スタックは、Elasticsearch、Logstash、Kibanaという 3つのツールを使ったログ分析の手法です。全てオープンソースのプロジェクトであり、ログ分析の手法として人気です。

Elasticsearchは全文検索エンジンで、さまざまな言語、高パフォーマンス、スキーマフリー JSON ドキュメントをサポートしています。Logstashはさまざまなソースからデータを収集して変換して送信するツールです。KibanaはElasticsearch に保存されたデータを可視化するツールです。これら3つを組み合わせることで、データの収集、検索、可視化を効率的に行います。

まとめ

データ分析基盤は企業の効率的なデータ活用を行う上で重要な役割を持つ一方、複雑なデータ加工やリアルタイム性、機械学習への応用など、様々なユースケースへの対応が求められます。データサイエンティストやアプリケーションエンジニアだけでなく、経営者や営業担当者など非エンジニアがデータを活用する機会もあります。彼らがストレスなくデータを扱い、企業全体のビジネスに寄与していくために、データ分析基盤の担当者には分析基盤に関わる技術選定から効率的なシステム運用まで、総合的な能力が求められています。