OLAPとは?
OLAPはオンライン分析処理の略です。これは技術的およびビジネスの2つの観点から見ることができる広範な用語です。最も高いレベルでは、これらの言葉を逆に読むことができます:
処理 いくつかのソースデータが処理されます…
分析的 …これらを分析的なレポートや洞察を生み出すために…
オンライン …リアルタイムで。
ビジネスの観点から見たOLAP
近年、ビジネス関係者はデータの価値に気付き始めました。盲目的に意思決定をする企業は、競争についていけずに失敗することが多いです。成功した企業のデータ主導のアプローチは、ビジネス決定に役立つ可能性のあるすべてのデータを収集することを強制し、タイムリーにこのデータを分析するためのメカニズムを必要とします。ここでOLAPデータベース管理システム(DBMS)が登場します。
ビジネス的に言えば、OLAPは企業が継続的に業務活動を計画、分析、報告することを可能にし、効率を最大化し、経費を削減し、最終的には市場シェアを獲得することを目指します。これは、社内システムで行うか、SaaSプロバイダ(ウェブ/モバイル分析サービス、CRMサービスなど)にアウトソースするかのいずれかです。OLAPは多くのBIアプリケーション(ビジネスインテリジェンス)の背後にある技術です。
ClickHouseは、ドメイン特有のデータを分析するためのこれらのSaaSソリューションのバックエンドとして頻繁に使用されるOLAPデータベース管理システムです。しかし、いくつかの企業は未だに第三者プロバイダとのデータ共有に消極的であり、したがって社内データウェアハウスのシナリオも実行可能です。
技術的観点から見たOLAP
すべてのデータベース管理システムは、OLAP(オンライン 分析的 処理)とOLTP(オンライン トランザクション 処理)の2つのグループに分類することができます。前者は、大量の履歴データに基づいてレポートを構築することに焦点を当てていますが、それをあまり頻繁には行いません。後者は通常、トランザクションの連続ストリームを処理し、データの現在の状態を常に変更します。
実際には、OLAPとOLTPは二項対立としては見られず、むしろスペクトルのように捉えられています。ほとんどの実際のシステムは通常、それらの一方に焦点を当てますが、もう一方のワークロードが必要な場合には何らかのソリューションやワークアラウンドを提供します。この状況はしばしば企業が統合された複数のストレージシステムを運用することを強いられます。これ自体はそれほど大きな問題ではありませんが、システムが多くなるとメンテナンスコストが増加します。そのため、近年のトレンドはHTAP(ハイブリッドトランザクショナル/分析処理)に向かっており、両方の種類のワークロードが単一のデータベース管理システムによって同等にうまく処理されることを目指しています。
DBMSが純粋なOLAPまたは純粋なOLTPとして始まった場合でも、競争に追いつくためにHTAPの方向に移行せざるを得ません。ClickHouseも例外ではありません。初めて設計されたのはできる限り高速なOLAPシステムであり、現在でも完全なトランザクションサポートはありませんが、一貫した読み書きやデータの更新/削除のための変更といったいくつかの機能が追加されています。
OLAPシステムとOLTPシステムの間の基本的なトレードオフは次の通りです:
- 分析レポートを効率的に構築するには、カラムを別々に読み取ることが重要であり、そのためほとんどのOLAPデータベースは列指向です。
- 一方で、カラムを別々に保存すると、行の追加やインプレースの変更など、行に対する操作のコストがカラムの数に比例して増加します(システムが万が一に備えてイベントのすべての詳細を収集しようとする場合、大きな数になることがあります)。したがって、ほとんどのOLTPシステムはデータを行単位で整理して保存します。