--- sidebar_position: 2 sidebar_label: OLAPとは何か? description: "OLAPはOnline Analytical Processing(オンライン分析処理)の略です。技術的およびビジネス的観点から広範に理解できる用語です。" --- # OLAPとは何か? [OLAP](https://en.wikipedia.org/wiki/Online_analytical_processing)は、Online Analytical Processing(オンライン分析処理)の略です。技術的およびビジネス的観点から広範に理解できる用語です。最高レベルでは、この言葉を逆に読むことができます: Processing(処理) : いくつかのソースデータが処理され… Analytical(分析) : …分析レポートや洞察を生成するためであり… Online(オンライン) : …リアルタイムで行われます。 ## ビジネスの観点から見たOLAP {#olap-from-the-business-perspective} 近年、ビジネスの関係者はデータの価値を認識し始めています。盲目的に意思決定を行う企業は、競争に遅れないことが多いのです。成功している企業のデータ駆動型アプローチは、ビジネス上の意思決定に少しでも有用である可能性のあるすべてのデータを収集しなければならないことを強制し、彼らがこのデータをタイムリーに分析するためのメカニズムを必要とします。ここで、OLAPデータベース管理システム(DBMS)が登場します。 ビジネスの観点から言えば、OLAPは企業が運用活動を継続的に計画し、分析し、報告することを可能にし、これにより効率性を最大化し、経費を削減し、最終的に市場シェアを獲得します。これは、社内システムで行うことも、Web/モバイル分析サービス、CRMサービスなどのSaaSプロバイダーに外注することもできます。OLAPは、多くのBIアプリケーション(ビジネスインテリジェンス)の基盤技術です。 ClickHouseは、特定のドメインデータを分析するためのこれらのSaaSソリューションのバックエンドとして非常に頻繁に使用されるOLAPデータベース管理システムです。しかし、依然として一部の企業は第三者プロバイダーとデータを共有することに消極的であり、社内データウェアハウスのシナリオも有効です。 ## 技術的観点から見たOLAP {#olap-from-the-technical-perspective} すべてのデータベース管理システムは、OLAP(Online **Analytical** Processing)とOLTP(Online **Transactional** Processing)の2つのグループに分類できます。前者は、各レポートを大量の履歴データに基づいて構築しますが、それを頻繁には行いません。後者は通常、継続的にデータの現在の状態を変更するトランザクションのストリームを処理します。 実際には、OLAPとOLTPは二項カテゴリとして見るのではなく、スペクトルとして見るべきです。ほとんどの実際のシステムは、主にこれらのいずれかに焦点を当てていますが、反対の種類のワークロードが望ましい場合に何らかの解決策や回避策を提供しています。この状況は、多くの企業に複数のストレージシステムを統合して運用することを余儀なくします。これはそれほど大した問題ではないかもしれませんが、多くのシステムを持つことはメンテナンスコストを増加させるため、近年のトレンドは単一のデータベース管理システムで両方の種類のワークロードを等しく処理できるHTAP(**Hybrid Transactional/Analytical Processing**)に向かっています。 DBMSが純粋なOLAPまたは純粋なOLTPとして始まったとしても、競争に追いつくためにHTAPの方向に進まざるを得ません。ClickHouseも例外ではありません。当初は[可能な限り高速なOLAPシステム](/ja/concepts/why-clickhouse-is-so-fast)として設計されており、今でも本格的なトランザクションサポートはありませんが、データの一貫した読み取り/書き込みや更新/削除のための変異のような機能が追加されています。 OLAPとOLTPシステムの間の基本的なトレードオフは次の通りです: - 分析レポートを効率的に構築するには、カラムを個別に読み取ることが重要であり、そのため、ほとんどのOLAPデータベースは[列指向](/knowledgebase/columnar-database)です。 - カラムを個別に保存すると、行の操作、例えばアペンドやインプレースの修正のコストが、カラムの数(特にシステムがイベントのすべての詳細をちょうど一応収集しようとする場合は非常に多くなる可能性がある)に比例して増加します。したがって、ほとんどのOLTPシステムは、行ごとにデータを配置します。