OLAPとは何か?
OLAPは、オンライン分析処理を意味します。これは、技術的な視点とビジネス的な視点の2つから見ることができる広範な用語です。しかし、非常に高いレベルで見ると、これらの言葉を逆に読むことができます。
処理 : 一部のソースデータが処理されます...
分析 : ...分析レポートやインサイトを生成します...
オンライン : ...リアルタイムで。
ビジネスの視点からのOLAP
近年、ビジネス界の人々はデータの価値に気づき始めました。盲目的に意思決定をする企業は、競争に追いつくことができないことが多いのです。成功した企業のデータ駆動型アプローチは、ビジネス意思決定に役立つかもしれないすべてのデータを収集し、それをタイムリーに分析するためのメカニズムを必要とします。ここでOLAPデータベース管理システム(DBMS)が登場します。
ビジネスの観点から、OLAPは企業が継続的に運営活動を計画、分析、報告することを可能にし、それによって効率を最大化し、コストを削減し、最終的には市場シェアを獲得します。これは、内部システムで行うか、ウェブ/モバイル分析サービス、CRMサービスなどのSaaSプロバイダーにアウトソースすることができます。OLAPは多くのBIアプリケーション(ビジネスインテリジェンス)の背後にある技術です。
ClickHouseは、ドメイン固有のデータを分析するためのこれらのSaaSソリューションのバックエンドとしてよく使用されるOLAPデータベース管理システムです。ただし、一部の企業は依然としてサードパーティプロバイダーとデータを共有することに躊躇しており、内部データウェアハウスのシナリオも有効です。
技術の視点からのOLAP
すべてのデータベース管理システムは、OLAP(オンライン 分析 処理)とOLTP(オンライン トランザクション 処理)の2つのグループに分類できます。前者は、大量の過去データに基づいてレポートを構築することに焦点を当てていますが、それを頻繁に行うわけではありません。一方、後者は通常、トランザクションの継続的なストリームを処理し、データの現在の状態を常に変更します。
実際には、OLAPとOLTPはカテゴリーではなく、むしろスペクトルのようなものです。ほとんどの実際のシステムは通常、それらのどちらかに焦点を当てていますが、反対の種類のワークロードが必要な場合には解決策や回避策を提供します。この状況は、企業が統合された複数のストレージシステムを運用せざるを得なくなることが多く、特に大きな問題ではないかもしれませんが、より多くのシステムを持つことはメンテナンスのコストを高くすることになります。したがって、最近のトレンドはHTAP(ハイブリッドトランザクショナル/分析処理)であり、両方のワークロードが単一のデータベース管理システムによって同様に適切に処理されます。
DBMSが純粋なOLAPまたは純粋なOLTPとして開始された場合でも、競争に追いつくためにHTAPの方向に移行せざるを得ません。ClickHouseも例外ではなく、初めは可能な限り高速なOLAPシステムとして設計されており、まだ完全なトランザクションサポートは持っていませんが、一貫した読み取り/書き込みおよびデータの更新/削除のための変異などのいくつかの機能を追加する必要がありました。
OLAPとOLTPシステムの間の根本的なトレードオフは以下の通りです:
- 効率的に分析レポートを構築するには、カラムを別々に読み取ることが重要です。そのため、ほとんどのOLAPデータベースは列指向です。
- 一方、カラムを別々に保存することは、行に対する操作のコストを、カラムの数に比例して増加させます(システムが場合に備えてイベントのすべての詳細を収集しようとした場合は、巨大になる可能性があります)。したがって、ほとんどのOLTPシステムは行によってデータを配置しています。