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