データ分析基盤の理解を深めるために、ビッグデータを支える技術を学習中。
今回は、データ処理を高速化するための技術についてまとめます。
データマートに使われるおもな技術
集計システムの種類 | ストレージの種類 | 最適なレコード数 |
---|---|---|
RDB | 行指向 | 〜数千万程度 |
MPPデータベース | 列指向(ハードウェア一体型) | 数億〜 |
対話型クエリエンジン | 列指向(分散ストレージに保存) | 数億〜 |
以下で、行指向と列指向について、MPP(massive parallel prodessing/大規模並列処理)について説明。
行指向データベースと列指向データベース
種類 | 説明 | 具体例 |
---|---|---|
行指向 | レコード単位の読み書きに最適化。データの追記を効率的に。インデックスでデータ検索を高速化。 | Oracle Database, MySQL |
列指向 | カラム単位の集計に最適化。必要なカラム(例えば売上)だけ読み込むことでディスクI/Oを減らす。同じカラムには同じようなデータが並ぶから圧縮効率に優れる。 | Treradata, Amazon Redshift |
MPPデータベースのアプローチ
クエリの遅延を減らすために、MPPのアーキテクチャでデータ処理を並列化。
多数のディスクに分散されたデータが、それぞれ異なるCPUコアによって読み込まれ、部分的なクエリの実行が行われる。それらの結果は1ヵ所に集められ、最終的な結果が出力される。このような一連の処理は可能な限り同時並列で実行される。