目次
こんにちは、grarysの新井です。今回はデータ分析基盤やHTAPついて調べてみました。
データ分析基盤の変遷
シングルノード時代
データ分析はシングルノードで分析するのが基本でした。例えば、Excelでの売上を集計しファイルサーバなどに格納しておき、各個人のPCからファイルサーバへアクセスし分析します。
マルチノード/クラスタ時代
マルチノードおよびクラスターは、複数ノードで一つの目的を達成するために集められた集合体のことです。シングルノードで集められるデータ範囲では月並みの分析しかできず、様々なデータから「パターン」や「関係」を洗い出せるのではということで、ビッグデータの時代が到来しました。
この時期からストリーミングやアドホック分析など、現在のデータ分析基盤の基礎が作られました。また、この時代はオンプレ上で分析基盤を構築するのが主流でした。
クラウド時代
その後、2010年代後半から2020年代にかけてクラウド上でデータ分析基盤を構築するができるようになり、クラウドへの移行が盛んになりました。ストレージと計算処理能力がデカップリング可能になったのもクラウドからです。
ストレージと計算能力を分離することで、計算処理能力が実質無限にスケールできるようになりました。
分析基盤の構成
データレイク
データレイクとはデータがたまる湖という意味です。ローデータもしくはローデータに近い形のデータをそのまま配置する場所です。
ローデータとはCSVやJSONといった半構造データだけでなく、ExcelやPDF、動画データなどの非構造データも含みます。
データウェアハウス
データウェアハウスは、構造化されたデータを保持する領域です。データがある程度整理され管理番号(メタデータ)が振られた状態で配置されていることからウェアハウス(倉庫)に見立ててデータウェアハウスとなりました。
データレイクの半構造/非構造データを構造データへ変換して、データウェアハウスへ格納したりします。このプロセスのことを「ETL」と言います。(ETLとはExtract, Tranceform, Loadの略です。)
Extract(抽出) | データソース(上記だとデータレイク)からデータを取り出す |
Tranceform(変換) | データソース(上記だとデータレイク)からデータを取り出す |
Load(ロード) | 変換後のデータをデータウェアハウスに格納する |
データマート
データマートは、データが加工され売りに出されいる状態です。商品(データ)が加工され売りに出されている状態を市場(mart)に見立てています。
データウェアハウスが組織全体の広範なデータを集約・格納するのに対し、データマートは特定のテーマや部門に焦点を当てたデータを持っています。複数のJOINを並べた複雑なSQLを実行すrというよりは、かなり整理されていて「ダッシュボード」として表示するためのデータがすぐに取り出し可能である、形のイメージです。
データ取り込み方法
データレイクへデータを取り込む方法として、バッチ処理とストリーム処理があります。
バッチ処理
バッチはひとまとまりのデータを指し、ある程度のファイルの塊を取り込む方式をバッチ取り込みと言います。ストリーミング処理とは違い、リアルタイムのような速度は求められませんが、ジョブの数が多くなりがちのためジョブのスループットをあげるなど工夫が求められます。
ストリーミング処理
ストリーミングは途切れることなく、システムに届くデータを順次受付け、リアルタイムもしくはニアリアルタイム処理を行うことです。車に取り付けられたセンサーデータなどのioTデバイスからのデータや、Webサイトじょうのユーザの回遊ログなどのストリーミングデータにあたります。
HTAPについて
近年、HTAP(Hybrid transactional/analytical processing, ハイブリッドトランザクション/分析処理)が注目されています。
HTAPとは
OLTP(オンライントランザクション処理)とOLAP(オンライン分析処理)の両方のワークロードを同時に処理できるハイブリッドデータベースです。
従来型のデータベースはOLTPとOLAPの2種類に大別されます。OLTPデータベースは行ベースのストレージエンジンを利用し、データの保存とリアルタイムでの更新を行えます。ですが、各リクエストによって変更されるデータは数行のみです。
一方、OLAPデータベースはカラムナ(列指向)データベースです。カラム型の特徴にはデータ圧縮効率がよく、データの一貫性を維持するロック処理が不要なため、分散処理、並列処理も実装がしやすいという特徴があります。
HTAPにより実現できること
- リアルタイムの分析
従来のシステムでは、トランザクショナルデータを別の分析用のデータベースやデータウェアハウスに移動するためのETL(Extract, Transform, Load)プロセスが必要でした。これには時間がかかり、リアルタイムの分析が難しいという課題がありました。HTAPを用いることで、リアルタイムのビジネスインサイトを迅速に取得できます。 - 運用コストの削減
別々のOLTPとOLAPシステムを維持するのは、インフラストラクチャ、ライセンス、運用などの面でコストが高くなる可能性があります。HTAPを用いることで、システムの複雑さとコストを削減できます。 - データの一貫性
分離されたシステム間でデータを同期させるのは難しく、データの一貫性を保つのが挑戦的です。HTAPは同じデータベース上での処理を可能にするため、データの一貫性と整合性を保つのが容易です。
- 新しいビジネスモデルの実現
HTAPは新しい種類のアプリケーションやサービスを可能にします。例えば、顧客のリアルタイムのトランザクションデータに基づいてパーソナライズされた提案を行うといったサービスが考えられます。
HTAPに対応したサービス
- AlloyDB(Google Cloud (GCP))
- TiDB(PingCAP)
- Unistore(Snowflake)
まとめ
今回はデータ分析基盤について調べてみました。個人のPCで分析を行なっていたシングルノードの時代〜クラウドへ移行した経緯やデータ分析基盤の構成要素について知ることができたのでよかったです。またHTAPについてもどういったものかを理解できました。
次回はHTAP対応のサービスについて、具体的な使用方法など調査できればと思います。