データプラットフォームの基本（初心者向け）　および使用される製品やサービス～Azure編～

### はじめに
本記事では、データプラットフォームについて、基本的な処理の流れや構成要素を初心者向けに説明します。
関連する技術用語や製品・サービス（今回はAzureの製品を例に紹介しています）についても説明し、どのような技術や製品が、データプラットフォームのどのような場面で利用されているのか、についても併せて理解を進められる記事にしたいと考えています。

# データプラットフォームとは
「データを収集する、貯蔵する、加工する、可視化・分析する」を一貫してできるようにする、組織が持つデータを有効活用するためのデータ分析基盤です[^1]。
[^1]:[DATA VIZ LAB｜データプラットフォームとは？導入に向けて組織が知るべき基礎知識](https://data-viz-lab.com/data-platform)


![2410221.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3910628/e0433f37-356d-78ef-e062-04daf258ae4f.png)

データプラットフォームでは、業務システムやWebサイト、アプリ、SNSなど、様々な場所に存在しているデータを収集して一元管理し、またそのプロセスを自動化することで、データの処理の工数や管理のコストの削減と、データの利便性の向上を実現します。これにより、データドリブンな意思決定や生産性の向上に貢献します。

近年、SNSやセンサーデータなど、データの種類及び量が増加し、また、データ分析による企業経営の高度化が進められています[^2]。データを効果的に利用するには、データプラットフォームの構築が重要となります。
[^2]: [総務省｜令和2年版 情報通信白書｜日本企業におけるデータ活用の現状](https://www.soumu.go.jp/johotsusintokei/whitepaper/ja/r02/html/nd132110.html)

以下で、データプラットフォームの
1. 収集する
2. 貯蔵する
3. 加工する
4. 可視化・分析する

の4ステップについて、初心者向けに説明します。また、各ステップでどのような製品やサービスが用いられるのかについて、公開されているアーキテクチャ[^3]や事例[^4][^5]をもとにMicrosoft社の製品およびMicrosoft社のクラウドサービスであるAzure上のサービスを例に紹介します。
[^3]:[Microsoft｜Deploy the Sports Analytics on Azure Architecture](https://learn.microsoft.com/en-us/samples/azure/azure-quickstart-templates/sports-analytics-architecture/)
[^4]:[Microsoft｜お客様事例　龍谷大学](https://customers.microsoft.com/ja-jp/story/1644868890896875797-ryukoku-higher-education-azure-jp-japan)
[^5]:[Microsoft｜お客様事例　株式会社クラレ](https://customers.microsoft.com/ja-jp/story/1750218360838561975-kuraray-azure-data-factory-discrete-manufacturing-ja-japan)

::: note info
Noteでは関連用語や技術について説明します。
:::


## 1. データを収集する
このステップでは、様々なデータソースから、データを収集します。
収集の対象となりうるものとして、企業基幹システムで生成されるデータや、SNSのコメント、アプリのログデータ、そのほか、センサーデータや画像・音声データなど、様々な形式のデータがあります。

:::note info
データの収集には、定期的に処理を行うバッチ処理と、リアルタイムデータを継続的に処理するストリーム処理の2つの方法があります。

**バッチ処理**
一定期間（一定量）ごとに蓄積したデータを一括で処理する処理方式。リソースに余裕があるタイミングなどに、大量のデータを効率よく処理することが可能です。
**ストリーム処理**
リアルタイムにデータを収集し、処理する処理方式。生成されるデータをリアルタイムに捉えて処理して分析につなげることで、より迅速な対応が可能になります。
:::

**関連製品・サービス**
**Azure Event Hubs**[^6]：フルマネージドのデータストリーミングサービス。短い待機時間で、1 秒あたり数百万個のイベントをストリーミングできます。 Event Hubs では、イベント発行元から送信されたイベントデータは、イベントハブ(Kafkaでのトピック) に保存されます。 受信側はイベントハブからデータを読み取ります。ストリーム処理によく使用されるApache Kafkaとも互換性があり、コードを変更せずに既存のKafkaワークロードを実行することが可能です。
[^6]:[Microsoft｜Azure Event Hubs のドキュメント](https://learn.microsoft.com/ja-jp/azure/event-hubs/)

:::note info
データをデータソースから取り込む際、ELTとETLの二つの方式があります。以下でそれぞれについて説明します[^7]。

**ELT**（Extract, Load, and Transform）
データをデータソースから抽出後、そのままデータベースにロードし、必要時にデータを変換する処理方式。事前のスキーマ定義が必要なく、あらゆる形式のデータを格納することが出来ます。一方で、生データをそのまま格納しているため、データの質は保証されません。データレイクへのデータのロードなどに多く使用されます。

**ETL**（Extract, Transform, and Load）
データをデータソースから抽出、適切な形に変換し、データベースにロードする処理方式。事前に、行う分析などの目的に合わせてスキーマを定義し、それに沿ってデータの変換を行ってから格納するため、その後の分析がしやすく、データの質が担保されます。一方で、スキーマに合わないデータを格納することはできません。データウェアハウスへのデータのロードなどに多く使用されます。
[^7]:[IBM｜抽出、ロード、変換（ELT）とは](https://www.ibm.com/jp-ja/topics/elt)

:::
**関連製品・サービス**
**Azure Data Factory（ADF）**[^8]：フルネージドのサーバーレスデータ統合サービス。ELT/ETLプロセスの構築やパイプラインの調整、実行や監視などをコードレスに実施することが出来ます。また、多様な組み込みコネクタを有しており、Amazon Redshift、Google BigQueryなどのデータソースの他、Salesforceなどの SaaS アプリなどからもデータを取得することが出来ます。
[^8]:[Microsoft｜Azure Data Factory のドキュメント](https://learn.microsoft.com/ja-jp/azure/data-factory/)

## 2. データを貯蔵する
:::note info
データソースから収集されるデータには様々なものがあり、構造化データと非構造化データに分けられます[^9]。
|| 構造化データ | 非構造化データ |
|:-:|:-:|:-:|
|データの形式| csvファイルなど、行と列をもち一定の形式に従ったデータ | 音声や動画、文書など、決まった形式をもたないデータ  |
|データ投入時| 事前定義されたデータモデルまたはスキーマと呼ばれるフォーマットに準拠  |  事前のスキーマの定義は不要 |
|検索性|  データの整理や検索、分析は比較的容易| 事前定義された属性がないため、その検索や整理はより難しい  |
|操作性| SQLクエリで操作 |  通常、分析にはより複雑なプログラムによる操作や ML が必要 |

※XMLファイルやJSONファイルなど、構造化データではないものの、ある程度決まった形式を持つデータは半構造化データと呼ばれます。

[^9]:[Amazon｜構造化データと非構造化データの違いは何ですか？](https://aws.amazon.com/jp/compare/the-difference-between-structured-data-and-unstructured-data/)
:::

データソースから収集されたデータは、データレイクに保存されます。データレイクでは、非構造化データも含む大量のデータを未加工のまま蓄積することができ、様々なデータソースから取得した一元管理します。まずはデータを蓄積しておき、その後用途に応じて必要なデータを取り出し加工して利用することが出来ます。
事前のスキーマ定義や投入前の加工が必要ないため、人的リソースやデータ投入までのリードタイムが削減できます。また、ストレージコストが安いこと、拡張性が高いことも特徴です。
一方で、生データがそのまま投入されるので、システムとしてデータの質を担保することはできません。
データレイクには、オブジェクトストレージが多く使われています。[^10]
[^10]:[IBM｜データレイクとは](https://www.ibm.com/jp-ja/topics/data-lake)

|  | データレイク | データウェアハウス | データマート |
|:-:|:-:|:-:|:-:|
| 格納するデータ  |非構造化データを含むあらゆる形式のデータ   |  主に構造化データ |  主に構造化データ |
|  用途 | データの貯蔵、大量データのAIでの利用  |  BIツールなどでのデータの分析 |  特定の業務や部門などでの使用に特化 |

[^11]
※データウェアハウス、データマートは後述する、データを加工する段階で使用します。
[^11]:[大和総研｜データレイクとは - DWH、データマートとの違いと導入時の注意点](https://www.dir.co.jp/world/entry/solution/datalake)


:::note info
オブジェクトストレージ[^12][^13]
データ本体とID、メタデータからなるオブジェクトという単位でデータが保存されます。階層構造がなく、メタデータで管理を行います。オブジェクトの操作には、HTTPを用います。
コストや拡張性に優れ、非構造化データを含めたあらゆる形式のデータを保存できます。一方で、オブジェクト内の一部を更新することはできず、オブジェクトごと置き換えとなるため、頻繁に書き換えられるデータにはあまり適していません。
以下で、一般にパソコンでのデータの保存などにも使われるファイルストレージと特徴を比較しています。
[^12]:[IBM｜オブジェクト・ストレージとは](https://www.ibm.com/jp-ja/topics/object-storage)
[^13]:[FUJITU｜CLOUD NAVI　オブジェクトストレージとは](https://clouddirect.jp.fujitsu.com/service/navi-words-object_storage)

|   | オブジェクトストレージ | ファイルストレージ |
|:-:|:-:|:-:|
| 構造  | 階層構造はなく、メタデータでデータが管理される  | ディレクトリ、フォルダなどの階層構造がある  |   
|データへのアクセス|オブジェクトが持つ一意なIDでデータにアクセスする|階層をたどっていくパスを用いてデータにアクセスする|
| メリット  |  非構造化データを含む大量のデータを保存できる | 直感的な操作が可能  |  
|  デメリット | オブジェクト内の一部を更新することはできず、オブジェクトごと置き換えとなるなど、更新頻度の高いデータにあまり向かない  | 規模が大きくなると階層構造が複雑になる、パフォーマンスが落ちる  |   

:::
**関連製品・サービス**
**Azure Storage Blob**[^14]：クラウドネイティブのオブジェクトストレージ。オブジェクトストレージの特徴としてあるように、スケーラビリティが高く拡張性と費用対効果に優れています。また、Azure Storage Blobは認証や保存時の暗号化といったセキュリティ機能を持ち、ビッグデータ分析ソリューションである Azure Data Lake Storage Gen2をサポートしています。
[^14]:[Microsoft｜Azure Blob Storage のドキュメント](https://learn.microsoft.com/ja-jp/azure/storage/blobs/)

## 3. データを加工する
蓄積されたデータから分析に使用するデータを取り出し、分析用に加工を行います。分析ツールでの分析が行えるように、分析に必要なデータを選択し、データの形式を整えてデータウェアハウスに保管します。また、さらに特定の部門での使用などに特化してその用途に最適化されたデータを格納するデータマートが作成されることもあります。

**関連製品・サービス**
**Azure SQL Database**[^15]： MicrosoftがSQL Serverを運用するフルマネージド型のデータベースサービス。高可用性が特徴で、監視機能やトラブルシューティング機能、セキュリティ機能なども有しています。
[^15]:[Microsoft｜Azure SQL Database のドキュメント](https://learn.microsoft.com/ja-jp/azure/azure-sql/database/?view=azuresql)

## 4. データを可視化、分析する

分析用に加工されたデータをBIツールを用いて集計・分析することで、人が見て理解できるようにし、意思決定に役立てます。

:::note info
ビジネスインテリジェンス（BI）ツール
ビジネスにおける大量のデータを収集し、分析するための機能を持ちます。
主な機能としては、データをグラフや図表で可視化するレポートダッシュボード、データを多角的に分析して迅速に結果を返すOLAP分析 (オンライン分析処理)、収集したデータの関係性や傾向をつかむデータマイニング、過去の実績を利用し予算や経営計画をシミュレーションやプランニングするシミュレーション、の4つがあります。

:::

**関連製品・サービス**
**PowerBI**[^16]：Microsoftが提供するBIツール。データ分析ツールやレポート作成ツールのほか、TeamsやPowerPointなど他の Microsoftサービスにレポートを簡単に埋め込んで共有する機能や、データ内のパターンの検索やレポートの即時作成などを行えるAI 機能なども有しています。
[^16]:[Microsoft｜Power BI](https://www.microsoft.com/ja-jp/power-platform/products/power-bi?msockid=0be1af2ac276600416aabb7cc32b6196)

## まとめ
今回ご紹介した、データプラットフォームの概要と、関連技術（灰色のふきだし）や製品・サービス（緑色の四角）の位置づけのイメージを図にまとめました。
![2410222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3910628/b020dc1e-87d8-9fc1-3ab9-e0bae60af302.png)

データプラットフォームは、このようなコンポーネントや技術・製品を使用して構成されます。しかし、実際のデータプラットフォームでは、データレイクとデータウェアハウスのどちらかのみを有していたり、データマートが存在していなかったり、といったように、その構成は様々です。
また、本記事ではAzureの製品・サービスを取り上げましたが、様々な会社の製品を組み合わせてデータプラットフォームを構築することも可能です。

データを有効活用するには、目的と状況に合わせて構成や製品・サービスを選択してデータプラットフォームの構成する必要があると考えられます。

本記事が、データプラットフォームについて学習を始めた方が全体像のイメージをつかむ助けになりましたら幸いです。

#### 参考文献