ゼファーネットのロゴ

Morden Data Engineering の ACID と BASE を理解する

日付:

この記事は、の一部として公開されました データサイエンスブログソン.

酸と塩基

概要

データ エンジニアの皆様、この記事は非常に興味深いトピックです。 フラッシュバックをさせてください。 数年前、Mr.Someone が議論の中で、DATA の ACID および BASE プロパティについて新しい言葉を作り出しました。 部屋に突然静寂が落ちます。 H2SO4、HCL、HNO3、H2CO3 は ACID KOH、NaOH は BASE だと言う人はほとんどいませんでした。

言葉を投げた人は、立ち上がって言った、みんな! どうぞお聞きください。 皆さんは、工学化学、化学工学、または学校や大学で学んだ化学で A+ であることを知っています。 しかし、私はデータエンジニアリングについて話している. しかし、私が言及したのは、特に運用上の観点から、トランザクションの重要な特性です。 これは、現在のデジタル トランスフォーメーションの OLTP および OLAP に不可欠であり、最高の運用システムを実装してモーデン データ ウェアハウスを構築するために、すべての業界に適用できます。 彼は次のようにすべての成分を非常に詳細に表現し始めました。

酸と塩基

モーデン データベース (DB) とは何ですか?

データベースは、DB サーバーに格納されたデータの適切に構造化され、整理されたコレクションであることはわかっています。 これに関する主な焦点は、そのデータとプロセスを保存、管理、および処理することです。分析目的は、そこから必要な洞察を導き出し、さまざまなビジネスソリューションを構築し、それを利用してビジネスチャンスを強化することです。 これらは、特にクラウド システム上で管理される、いわゆる最新のデータベース システムです。 これらのシステムは、Azure、AWS、GCP などの複数のクラウド環境で正確に処理できるように設計されています。

この Morden データベースの世界で ACID と BASE が重要なのはなぜですか?

この文脈で ACID と BASE が機能する場合、どちらも組織を成功に導くデータベース管理アプローチへと導くスターです。

すべて、よし! 既存の DB 管理アプローチの問題点は何ですか?また、これらすべてが現在どの段階に来ているのでしょうか? いくつかの理由があります、男! この現在のデータの世界では、データに関する主要な課題の XNUMX つは、数秒、数分、数時間、および毎日単位で処理される大量のデータを生成することです。皆さんが私に同意してくれることを願っています。 そこで、この DATA を BIG DATA と呼び始めました。 その範囲は? 確かに、他にもたくさんあるので、一言や一行では言い表せません。

ACID と BASE の利点は何ですか?

これから最大限の利益を得るには、まず、データに対する各アクション中にデータの機能と標準を強化する必要があります。これは、GOLDEN データセットを使用して DATA プロダクトを挿入、更新、選択、分析、および実装する際に行われます。このデータまたはデータ ウェアハウス ドメインでデータ管理の畳み込みを操作する手法は、さまざまなデータベース ソースを使用することです。

これを実現するために、ACID と BASE は、データベース トランザクションが一貫して処理されることを保証するために使用される一連の指針となる標準です。

私が基準を簡単に垣間見ると、データベース内で変更が行われるたびに、データベース内で変更を行い、データベース内のデータが汚染されないようにする必要があります。 ところで、ACID プロパティを各トランザクションに適用しています。テーブル/データベース内の行の変更は、データベースの真実性と一貫性を維持するための最良の方法です。

  • データの整合性。
  • シンプルな操作機能
  • 信頼性と耐久性に優れたストレージ。

ACIDとは何ですか?

ACID は、原子性、一貫性、分離、耐久性を定義する XNUMX つの主要なプロパティを指します。

ACID トランザクション データベース操作にこれらすべての ACID プロパティがある場合、ACID トランザクションを呼び出すことができ、この一連の操作を適用するデータ ストレージは ACID トランザクション システムと呼ばれます。

これにより、システムや電源の障害やエラー、またはデータとそのトランザクション アクティビティに関するその他の問題 (新しいレコードの作成や行のデータの更新など) に関係なく、データの整合性が保証されました。

簡単に言えば、ACID は、一貫して同じように処理されるデータベース トランザクションを保護するためのガイドライン原則を提供します。

ACID

それでは、各プロパティについて詳しく説明しましょう。

原子性: 一言で言えば、取引に関して「完了」または「まったくない」と言えます。 さらに簡略化された「DONE」または「Do not Disturb」。 まだ混乱しています、はい、理解できます。 データベース トランザクション中に、commit ステートメントの make がトランザクション操作全体を正常に終了することを確認する必要があります。 DB 接続の問題、インターネットの停止、停電、データ制約の欠落、操作の途中でのデータの品質の中断などの他のケースが発生した場合、データベースは安全な位置の以前の状態にロールバックし、権利を保持する必要があります。開始された commit ステートメントによるデータ。

原子性を使用することで、トランザクション全体が完了したか、何も行われていないことを確認できます。

データベース管理

一貫性: 私たちが知っているように、データベースに関係なく、一貫性が常に期待されます。 これは、ジャーニー全体でデータの整合性の制約を維持し、品質とパフォーマンスの観点を維持することを意味します。 このプロセス段階は放棄され、変更は一貫性を保つために以前の状態にロールバックされます。

さらに説明すると、トランザクションの同じ一貫性は、データのテーブルおよびデータベース レベルのルールに設定された整合性制約に違反してはなりません。 一貫性を強化し、データベース全体の整合性とパフォーマンスを維持することを保証します。 より厳格な宣言的制約を実装する場合は、トランザクションごとにデータベースまたはテーブル レベルに配置できます。 目的は、分析用のゴールデン データセットを準備し、高度な分析を行うことです。これらのすべての段階は、データ パイプラインのデータの取り込み、変換、およびサービス レイヤーでは処理できないためです。 さらに、そこで処理されるデータに関するアクション アイテムがさらに多くあります。 データ系統は、監視者がデータの CDC を理解するのに役立ちます。 私たちの心にこれを覚えておいてください。

分離

各トランザクションは、並行して発生している他のトランザクションに影響を与えることなく、シリアル化可能なモードで明確な順序で実行されます。 焦点を絞った方法では、複数のトランザクションが並行して発生する可能性があり、各トランザクションが同時に発生する他のトランザクションに影響を与える可能性はありません。 楽観的なトランザクション スコープと悲観的なトランザクション スコープの XNUMX つの端の間で達成できます。

• オプティミスティック トランザクションは、同じ場所で XNUMX 回以上の重複した読み取りまたは書き込みを行わないことを保証します。 重複取引があった場合、こちらのアプローチ取引は終了させて​​いただきます。

• ペシミスティック トランザクションは、最小限のトランザクションで非常に安全な操作モードである読み取りまたは書き込みが終了する可能性がある場合に、他のトランザクションに影響を与えることを想定してトランザクションを制限します。

耐久性

私たちが知っているように、耐久性は安定性と持続可能性を保証します。 前述のデータベースで説明したように、変更が正常にコミットされ、常に存続し、データがいかなる犠牲を払っても破損しないことを確認します。

ACID トランザクションはどのように実装されますか?

ステップ

  1. テーブル/DB サーバーから更新する必要があるレコードの場所を特定します。
  2. ブロックディスクをメモリ空間に転送するためのバッファメモリを準備します。
  3. そのメモリ空間で更新を開始します。
  4. 変更されたブロックをディスクにプッシュし始めます。
  5. 参照用にエントリをログに記録します。
  6. トランザクションが完了するか失敗するまで、トランザクションをロックします。
  7. トランザクションがトランザクション ログ テーブル/ファイルに保存されていることを確認します。
  8. データは別のリポジトリに保存され、ACID として呼び出され、実際のデータベースに実装されます。
  9. トランザクションの途中でシステム障害が発生した場合、トランザクションはロールバックするか、トランザクション ログが中断されたところから続行する必要があります。
  10. すべてが最高の方法で行われました! ACID が配置されています。
トランザクション

さて、誰かが会議室の聴衆に向かってこう言いました。 全員がうなずき始めました。 その後、Mr. はデータ エンジニアリングと Morden DB システムの BASE について説明を始めました。

彼は、化学において BASE が ACID の反対であることを強調しました。 データベースの概念においても同様の関係があります。 BASE の概念は、ACID よりも多くの利点を提供するために使用されます。以前の概念は、データベース システムのデータ可用性に重点を置いており、BASE は ACID に間接的に関連しています。

背後にある言葉を導き出すことができます BA S E.

基本的に利用可能 – 現在のデジタル世界では可用性が重要な要素です。 BASE コンテキストでは、データベースは必要なデータをさまざまな地域に複製することにより、必要なデータの可用性を保証します。クラウド (Azure) テクノロジでは、これはデータ コンポーネントを実装する際の必須のアクション アイテムであり、これが行われます。シンプルで強力な構成プロセスとともに。

ソフト状態 – ビジネス ルールをチェックしません。 一貫して書き続ける。

最終的に一貫性がある – BASE コンテキストでは、強制と一貫性の保証はありませんが、これにより、データベースが単純になり、常に最後に更新されたデータが取得されるようになります。

BASE の苦情について説明したことは、データベースが一貫性に関して不利な点に直面しているということです。 DB 開発者は、データ ストレージ ソリューションを簡単な方法で採用し、作業を高速化する自由があります。 しかし別の言い方をすれば、ACID で説明したことのすべての側面が欠けています。

この Morden のデータベース エンジニアリング文化では、BASE を導入する多くのオプションが ACID 固有のものよりもデータベースを意味します。ここでのいくつかの例は NoSQL データベースです。これらのタイプは BASE 原則に傾倒しています。私のお気に入りは次のとおりです。 MongoDBの、Cosmos DB、および Cassandra ですが、一部の NoSQL データベースも関連しており、関数ファセットに必要な ACID ルールに部分的に適用されます。 これは、ステージング レイヤーのデータ ウェアハウスとデータ レイクに役立ちます。

Mr. Somebody は、ACID と BASE での大きな旅を終えました。 最後に、会議室の人々は、データベースに Ph 値があるかどうか、およびそれらを改善および中和するための特定の要因があるかどうかを尋ねました。 彼はイエスと答えた! これについては次回の会議で議論し、会議を終了します。

まとめ

彼ら! ご理解いただければ幸いです。以下は、この記事の要点です。

  • Morden データベース (DB) とその機能とは?
  • このモーデン データベースの世界では、何が ACID と BASE の両方が重要であるかを調査する必要があります
  • データベースに ACID を実装するよりも有利
  • ACID に関する非常に詳細な研究と、簡単な手順で ACID を実装する方法
  • BASE は、ACID や市場で入手可能なデータベースよりも柔軟です。

利点については説明しましたが、落とし穴は常に存在するはずです。 では早速、

ACID トランザクションの落とし穴

  • ロック メカニズムを使用しているため、ACID トランザクションは読み取りおよび書き込み操作で遅くなる傾向があります。 そのため、大量のアプリケーションはパフォーマンスに影響を与える可能性があります。
  • そのため、強力な一貫性または可用性に基づいて、ACID 準拠の DB で低速にするか、ACID 準拠ではなく高速にするかを選択できます。
  • データの一貫性、データ品質、および可用性の側面は、意思決定と予測にとって非常に興味深いものであることを忘れないでください。

お時間を割いていただき、ありがとうございました。近いうちに別の興味深いトピックをご紹介します。 それまで、さようなら! – シャンタ

この記事に示されているメディアは、Analytics Vidhya が所有しておらず、著者の裁量で使用されています

スポット画像

最新のインテリジェンス

スポット画像