トランザクション データベースは、ウェブサイトから銀行、小売店に至るまで、あらゆる本番環境システムの実行のために最適化されています。これらのデータベースは、データの完全性を保ちながら、個々のデータ行を非常に素早く読み書きすることに優れています。
トランザクション データベースは行格納です。つまり、データは、列ではなく行としてディスクに保存されます。行格納は、必要なデータのみを取得できるため、ユーザー テーブルの 1 人の顧客に関するすべての情報を把握する必要がある場合に便利です。しかし、特定の郵便番号の顧客数をカウントする場合には、郵便番号の列だけでなく、名前、住所、ユーザー ID の列も読み込む必要があるため不便です。
トランザクション データベースは分析用に特別に構築されたものではありませんが、すでに本番環境データベースとして導入されているため、事実上の分析環境となっている場合が多くあります。これらは数十年前から存在しており、使用感とアクセス性が高く、広く普及しています。
組織に既存の別の分析スタックがない場合、分析を開始する最も簡単な方法の一つは、トランザクション データベースのレプリカを作成することです。これにより、追加の設定を最小限に抑えながら、分析クエリがビジネス クリティカルな本番環境クエリを誤って妨害することがなくなります。ただし、このようなデータベースは分析用ではなく、トランザクション処理用に設計されているという欠点があります。これらを分析に使用するのは、出発点としてはおすすめですが、分析に特化した設定を行う以前に、制限に遭遇して回避策が必要になる場合があります。
トランザクション データベースは次の点で優れています。
データの完全性の確保
トランザクション データベースは ACID に準拠するように設計されています。これにより、データベースへの書き込みが確実に成功または失敗のどちらかとなるよう保証され、データベースにデータを書き込む際に高レベルのデータの完全性が維持されます。そのため、トランザクション データベースは、高レベルのデータの完全性が必要とされるビジネス トランザクションに不可欠です(典型的な例として、ある口座からの借方と別の口座への貸方というトランザクション全体を成功または失敗させる銀行業務が挙げられます)。
低レイテンシ
トランザクション データベースは本番環境システムを実行するように設計されているため、短時間で完了する必要があるオペレーションに適しています。本番環境データベースのトランザクション レプリカで分析を行っている場合、レプリカはメイン データベースとほぼ同期する、つまりレイテンシが 1 秒未満になる可能性が高くなります。
運用システムのモニタリング
トランザクション データベースのデータを操作してリアルタイムのオペレーション スナップショットを提供することは、レプリカによって発生するレイテンシが極めて少ないため、トランザクション データベースの分析ユースケースとして最適です。サポート ワークロード、インベントリ、別のオペレーティング システムを監視しようとしていて、可能な限り最新のデータに基づいて意思決定を行う必要がある場合は、本番環境データベースを複製するのが最良の方法です。
ACID は、データベースへの書き込みの完全性を維持するためにトランザクション データベースがどのように設計されているかを示す一連のプロパティです。各プロパティの定義を以下に示します。
アトミック性
トランザクションの一部でも失敗すると、そのトランザクション全体が失敗します。このように、データベースに正常に commit するには、すべてのトランザクションが 100% 成功する必要があります。
一貫性
トランザクションがデータベースに書き込まれる(データベースがある有効な状態から別の有効な状態に移行する)か、またはトランザクションが元に戻されます。
分離
まだ完了していないトランザクションを、他のトランザクションによって処理または変更することはできません。
耐久性
一度データベースに書き込まれたトランザクションは、データベースに障害が発生した場合でもそのまま残ります。