ジャンプ先

トランザクション データベースとは

トランザクション データベースは、ウェブサイトから銀行、小売店に至るまで、あらゆる本番環境システムの実行のために最適化されています。これらのデータベースは、データの整合性を保ちながら、個々のデータ行を非常に素早く読み書きすることに優れています。

トランザクション データベースの概要

トランザクション データベースは行保存であり、データは列ではなく行としてディスクに保存されます。行ストアは、必要なデータのみを取得できるため、ユーザー テーブルで 1 人の顧客に関するすべての情報を入手する必要がある場合に最適です。ただし、特定の郵便番号のお客様をカウントする際には、名前ではなく、名前、住所、user_id 列も読み込む必要があるため、あまり効果がありません。の各行を理解してください。

トランザクション データベースは分析用に特別に構築されたものではありませんが、すでに本番環境データベースとして導入されているため、事実上の分析環境となっている場合が多くあります。これらは数十年前から存在しており、使用感とアクセス性が高く、広く普及しています。

組織に既存の別の分析スタックがない場合、分析を開始する最も簡単な方法の一つは、トランザクション データベースのレプリカを作成することです。これにより、追加の設定を最小限に抑えながら、分析クエリがビジネス クリティカルな本番環境クエリを誤って妨害することがなくなります。ただし、このようなデータベースは分析用ではなく、トランザクション処理用に設計されているという欠点があります。これらを分析に使用するのは、出発点としてはおすすめですが、分析に特化した設定を行う以前に、制限に遭遇して回避策が必要になる場合があります。

トランザクション データベースの利点

トランザクション データベースは次のような場合に最適です。

データの整合性の確保

トランザクション データベースは ACID に準拠するように設計されています。これにより、データベースへの書き込みが確実に成功または失敗のどちらかとなるよう保証され、データベースにデータを書き込む際に高レベルのデータ整合性が維持されます。そのため、トランザクション データベースは、高レベルのデータ整合性が必要とされるビジネス トランザクションに不可欠です(典型的な例として、ある口座からの借方と別の口座への貸方というトランザクション全体を成功または失敗させる銀行業務が挙げられます)。

低レイテンシ

トランザクション データベースは本番環境システムを実行するように設計されているため、ミリ秒単位で完了する必要があるオペレーションに適しています。本番環境のデータベースのトランザクション レプリカで分析を行っている場合、レプリカはメイン データベースとほぼ同期していることになります(レイテンシが 1 秒未満など)。

オペレーティング システムのモニタリング

トランザクション データベースのデータを操作してリアルタイムのオペレーション スナップショットを提供することは、レプリカによって発生するレイテンシが極めて少ないため、トランザクション データベースの分析ユースケースとして最適です。サポート ワークロード、インベントリ、別のオペレーティング システムを監視しようとしていて、可能な限り最新のデータに基づいて意思決定を行う必要がある場合は、本番環境データベースを複製するのが最良の方法です。

データベースでの ACID トランザクションとは

ACID は、データベースへの書き込みの整合性を維持するためにトランザクション データベースがどのように設計されているかを示す一連のプロパティです。各プロパティの定義を以下に示します。

アトミック性

トランザクションの一部でも失敗すると、そのトランザクション全体が失敗します。このように、データベースに正常に commit するには、すべてのトランザクションが 100% 成功する必要があります。

整合性

トランザクションがデータベースに書き込まれる(データベースがある有効な状態から別の有効な状態に移行する)か、またはトランザクションが元に戻されます。

分離性

まだ完了していないトランザクションを、他のトランザクションによって処理または変更することはできません。

耐久性

一度データベースに書き込まれたトランザクションは、データベースに障害が発生した場合でもそのまま残ります。