メインコンテンツへジャンプ

ACID トランザクション (ACID transaction)

トランザクションとは

データベースやデータストレージシステムの文脈では、トランザクションは、完全に完了するか全く完了しないかのいずれかで、ストレージシステムを一貫した状態に保つ単一の作業単位として扱われる任意の操作です。トランザクションの典型的な例は、銀行口座からお金を引き出すときに起こることです。お金が銀行口座から出ているか、出ていないかのどちらかです - 中間状態は存在しません。

Acidデルタレイクのグラフィック

ACID 特性:原子性、一貫性、独立性、永続性

ACID とは、トランザクションを定義する4つの重要な特性、Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)の頭文字をとった略語です。データベース操作にこれらの ACID 特性がある場合は、ACID トランザクションと呼ぶことができます。また、これらの操作を適用したデータストレージシステムは、トランザクションシステムと呼ばれます。ACID トランザクションにより、テーブルの読み取り、書き込み、変更の各処理で次の特性が保証されます。

  • 原子性(A):トランザクションの各ステートメント(データの読み取り、書き込み、更新、削除)は、1 つの単位として扱われます。ステートメントは、実行されるか、あるいは全く実行されないかのいずれかです。この特性は、ストリーミングデータソースがストリーミングの途中で障害が発生した場合などに、データの損失や破損が発生するのを防ぎます。
  • 一貫性(C):トランザクションがテーブルに、事前定義された予測可能な方法でのみ変更を加えることを保証します。トランザクションの一貫性により、データの破損やエラーが起きた場合でもテーブルの整合性を保ち、意図しない実行結果を防ぎます。
  • 独立性(I):複数のユーザーが同じテーブルで読み書きを同時に実行しても、トランザクションが分離され、同時進行のトランザクションが相互に干渉したり、影響を受けたりしないようにします。実際は、同時に発生していも、各要求は単独で発生しているように扱われます。
  • 永続性(D):システム障害が発生した場合でも、正常に実行されたトランザクションによるデータの変更が保存されることを保証します。

Databricks についてさらに詳しく

ACID トランザクションによるメリット

ACID トランザクションは、データの信頼性と整合性を最大限に高めます。部分的にしか操作を完了できなかった場合でも、データの一貫性を保つことができます。例えば、データベースのテーブルへの書き込み中に、予期せず電源が切れた場合、ACID トランザクションがなければ、データは一部のみ保存され、残りは保存されない可能性があります。その結果、データベースの一貫性は失われ、復旧は困難で時間のかかるものとなります。

Delta Lake の ACID トランザクションの保証により、信頼性と一貫性のあるデータを提供

Delta Lake のロゴ

ACID トランザクションは、これまでデータウェアハウス (Data Ware House)のみが持つ特性でしたが、Delta Lakeは、データレイクにこの特性を提供します。これにより、新たなデータがテーブルに書き込まれても、ユーザーは、データの一貫性のあるリアルタイムなビューを見ることができます。各書き込みは、順序付けられたトランザクションログに記録される独立したトランザクションとなるためです。Delta Lake は、最高レベルの独立性(直列化可能な独立性)を採用し、1 つのテーブルでの読み取り/書き込みの一貫性と信頼性を確保しています。ACID トランザクションの実装により、Delta Lake は、ラムダアーキテクチャの問題である複雑さ、データの誤表示、ラムダのパイプライン (Lambda pipelines)が壊れた後に必要となるリワークや再処理などを効果的に解決します。また、ユーザーは、データに対して複数の同時トランザクションを実行できます。データソースやストリームでエラーが発生した場合でも、Delta Lake は、トランザクションの実行を中止し、データをクリーンで元の状態に保つことを保証します。ACID トランザクションによる大きなメリットは、ユーザーが Delta Lake のデータを信頼できることです。データアナリストは、ダッシュボードの準備の ETL 実行に Delta Lake を使用することで、データアナリストが見ている KPI が、データの実際の状況を表していることを信用できます。機械学習のエンジニアは、特徴量エンジニアリングに Delta Lake のテーブルを利用することで、変換や集約が意図したとおりに実行できているか、または全く実行できなかったかを確信できます(その場合、通知を受けます)。データに対して持っているメンタルモデルが、実際のデータに反映していると信頼できる価値は計り知れません。

FAQ

1. ACIDトランザクションとは何ですか?
ACIDトランザクションは、原子性、一貫性、独立性、永続性の4つの特性を持ち、データベースやストレージシステムでデータの整合性と信頼性を確保するためのトランザクションです。

2. Delta LakeはACIDトランザクションをどのように利用していますか?
Delta Lakeは、ACIDトランザクションを通じてデータの整合性と信頼性を確保し、エラーが発生した場合でもデータを元の状態に戻すことができます。

3. ACIDトランザクションの実装がデータ管理にどのような利点をもたらしますか?
ACIDトランザクションはデータの整合性を維持し、システム障害時でもデータ損失を防ぎます。

用語集に戻る