データ分析基盤（概念モデル）におけるバッチレイヤー（コールドパス）

## 概要
データ分析基盤（概念モデル）におけるバッチレイヤー（コールドパス）に関する整理を実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/55dc0fa4-ed5d-45c2-b9d0-be4b725d6c2c.png)

本記事にて、下記の記事におけるバッチレイヤー（コールドパス）の詳細を記載します。

- [最強のデータ分析基盤を目指して～汎用的なデータ分析基盤の選定方法の提案～](https://qiita.com/manabian/private/e689daf5cc006eced737)


## 定義
### バッチレイヤー（コールドパス）の定義
データ活用を行う上で最適なクエリを発行できるようにデータを保持する層。


### コンポーネント詳細
| 番号 | データ基盤におけるレイヤー                    | コンポーネント名                                             | 説明                                                         | サービス例                                                   |
| ---- | --------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 11   | バッチレイヤー                                | データレイク                                                 | 様々な構造であるデータ、大量のデータ、多頻度で発生するデータを保存できるサービス。Sparkなどのデータ統合サービスやETLツールを含める場合もある。管理がされていないデータや一貫性がないデータを含む場合には、データスワンプと呼ばれることがある。 | HDFS、Amazon  S3、Azure Storage                              |
| 12   | バッチレイヤー                                | データ統合サービス                                           | 様々な構造のデータを抽出し、そのデータを変換・標準化の処理を行い、マージを含むロード処理を行うサービス。 | Hadoop、Spark、Databricks、Google  Big Query                 |


## 要求要件
### データレイク
| 番号 | 要否 | 分類         | 主要要件                                 | 説明                                                         |
| ---- | ---- | ------------ | ---------------------------------------- | ------------------------------------------------------------ |
| 1    | 必須 | 拡張性       | データ容量の拡張                         | 利用する上で制約とならないような量のデータを蓄積できる機能。 |
| 2    | 任意 | データ蓄積   | 構造化データのデータ蓄積                 | 構造化のデータを蓄積できる機能。                             |
| 3    | 任意 | データ蓄積   | 半構造化データのデータ蓄積               | 半構造化のデータを蓄積できる機能。                           |
| 4    | 任意 | データ蓄積   | 非構造化データのデータ蓄積               | 非構造化のデータを蓄積できる機能。                           |
| 5    | 任意 | データ蓄積   | HDFSと互換性のある接続性                 | Hadoop 分散ファイル  システム (HDFS) と互換性のあるデータの管理およびアクセスを可能とする機能。 |
| 6    | 任意 | データ蓄積   | データのバージョニング（タイムトラベル） | 蓄積のデータを過去のバージョンに戻す機能。                   |
| 7    | 必須 | 接続の提供   | APIの利用（GUI Tool）                    | GUIによる接続方法の提供によりデータ連携を可能とする機能。    |
| 8    | 任意 | セキュリティ | データへの権限付与                       | データへの権限付与を設定する機能                             |
| 9    | 必須 | 可用性       | フォールトトレランス                     | システムの一部に障害が発生しても正常に動作する機能。         |

### データ統合サービス
| 番号 | 要否 | 分類               | 主要要件                             | 説明                                                         |
| ---- | ---- | ------------------ | ------------------------------------ | ------------------------------------------------------------ |
| 1    | 必須 | 接続の提供         | APIの利用（REST API）                | REST  APIにより処理を実行する機能。                          |
| 2    | 任意 | 接続の提供         | APIの利用（ODBC）                    | ODBCにより事前定義したストアードプロシージャ等により処理を実行する機能。 |
| 3    | 任意 | 接続の提供         | APIの利用（SDK）                     | SDKにより処理を実行する機能。                                |
| 4    | 必須 | メタデータ定義     | 外部データストアの参照               | データレイクに対して、サービスが保持していないデータに接続する機能。 |
| 5    | 必須 | データの問い合わせ | 構造化データの処理                   | 構造化データを処理する機能                                   |
| 6    | 必須 | データの問い合わせ | 半構造化データの処理                 | 半構造化データを処理する機能。                               |
| 7    | 任意 | データの問い合わせ | 非構造化データの処理                 | 非構造化データを処理する機能。                               |
| 8    | 必須 | データの問い合わせ | データレイク向けデータ形式の処理     | Parquet、Delta  Lakeなどのビックデータに対応可能なフォーマットでの処理を行う機能。 |
| 9    | 必須 | データの問い合わせ | MPPによるデータ処理                  | 超並列処理 (MPP)  によるデータ処理を行う機能。               |
| 10   | 任意 | プログラミング     | 外部APIによるデータ抽出              | 非構造データから構造化データを抽出するなどの外部APIを利用したデータ抽出を実施すること。 |
| 11   | 任意 | セキュリティ       | データへの権限付与                   | データへの権限付与を設定する機能。                           |
| 12   | 必須 | 拡張性             | ノードのスケールアウト               | 同一のエンドポイントを利用可能な状態で、CPU、メモリなどのリソースを保持したノードの数を増減する機能。 |
| 13   | 任意 | 拡張性             | クラスターのスケールアウト           | 同一のエンドポイントを利用可能な状態で、クラスターの数を増減する方法。 |
| 14   | 必須 | 拡張性             | コンピューティングリソースのマルチ化 | 同一のストレージに接続可能な状態で、クラスターの数を増減する機能。 |
| 15   | 必須 | 可用性             | フォールトトレランス                 | システムの一部に障害が発生しても正常に動作する機能。         |

## 参考情報
### データレイク
データレイクについては、DMBOk 2ndにて下記のように記載されており、本概念モデルと相違点はあまりない。

>   データレイクは様々な種類や構造をもった膨大な量のデータをインジェストし保存し評価し分析できる環境である。
>
>   データレイクにおいては、データ処理ツールを複雑に構成できるので、Hadoopやその他のデータストレージシステム、クラスタサービス、データ変換、データ統合ツールなどを含めることができる。
>
>   データレイク（湖）の危険性は、すぐに乱雑で、汚れていて、一貫性のないデータスワンプ（沼）になってしまうことである。～[一部省略]～データレイクに含まれるデータを台帳化するには、データがインジェストされるときにメタデータを管理しなければならない。
引用元：[DMBOK 2nd]

### データ統合サービス
データ統合についてDAMAにて下記のように定義されており、本概念モデルでは大量データ・半構造化データに対するデータ統合処理を行う機能と捉えている。

>   data integration The planned and controlled 
>   a) merge using some form of reference, 
>   b) transformation using a set of business rules, and 
>   c) flow of data from a source to a target, 
>   for operational and/or analytical use. Data needs to be accessed and extracted, moved, validated and cleansed, standardized, transformed, and loaded. 

下記は機械翻訳結果

>   データ統合計画および管理
>   a）何らかの形式の参照を使用してマージします。
>   b）一連のビジネスルールを使用した変換、および
>   c）ソースからターゲットへのデータの流れ。
>   運用上および/または分析用。 データへのアクセスと抽出、移動、検証とクレンジング、標準化、変換、およびロードが必要です。

引用元：The DAMA Dictionary of Data Management, 2nd Edition


## 参考資料
- [DAMA-DMBOK: Data Management Body of Knowledge: 2nd Edition](https://www.amazon.co.jp/DAMA-DMBOK-Data-Management-Body-Knowledge/dp/1634622340)
- [データマネジメント知識体系ガイド 第二版](https://www.amazon.co.jp/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%E7%9F%A5%E8%AD%98%E4%BD%93%E7%B3%BB%E3%82%AC%E3%82%A4%E3%83%89-%E7%AC%AC%E4%BA%8C%E7%89%88-DAMA-International/dp/4296100491/ref=pd_lpo_14_t_0/355-0270959-3880927?_encoding=UTF8&pd_rd_i=4296100491&pd_rd_r=6532e6ec-4ebf-491f-8bc4-e1ea0ff00bd6&pd_rd_w=1rgNg&pd_rd_wg=XtJYk&pf_rd_p=4b55d259-ebf0-4306-905a-7762d1b93740&pf_rd_r=EQJ9BB6JE81405JYZVM7&psc=1&refRID=EQJ9BB6JE81405JYZVM7)
- [The DAMA Dictionary of Data Management, 2nd Edition: Over 2,000 Terms Defined for IT and Business Professionals (English Edition)](https://www.amazon.co.jp/DAMA-Dictionary-Data-Management-Professionals-ebook/dp/B01BT0BUCG/ref=sr_1_2?dchild=1&qid=1602683933&refinements=p_27%3ADAMA+International&s=english-books&sr=1-2&text=DAMA+International)
- [Gartner Glossary](https://www.gartner.com/en/information-technology/glossary/business-intelligence-bi)