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