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