Delta Lakeとは何か?
メニューを表示するにはスワイプしてください
Delta Lake は、データレイクに信頼性をもたらすオープンソースのストレージレイヤー。ACIDトランザクション、スケーラブルなメタデータ管理、ストリーミングとバッチデータ処理の統合を提供。Databricks では、Delta がすべてのテーブルのデフォルトフォーマット。
従来のファイルが問題であれば、Delta Lake がその解決策。ダイヤモンドデータを workspace.workshop.diamonds の Delta テーブルとして保存すると、それはもはや単なるディスク上のファイルではなく、「インテリジェント」なテーブルとなる。
Delta Lake は、標準のデータファイル(Parquet)と隠れた トランザクションログ を組み合わせて動作。
1. ACIDトランザクション
これが Delta の信頼性の核。ACID は Atomicity(原子性)、Consistency(一貫性)、Isolation(分離性)、Durability(耐久性) の略。
簡単に言うと: データ操作は「すべてか無か」。ダイヤモンドテーブルで5万行を更新中に、クラスタが49,999行目で停止した場合、Delta はすべての変更をロールバック。書きかけや破損したテーブルが残ることはない。
2. トランザクションログ(「頭脳」)
ダイヤモンドテーブルにデータを追加、削除、または変更するたびに、Deltaはその操作をDelta Logと呼ばれる中央台帳に記録します。
クエリを実行するとき、Databricksはフォルダー内のすべてのファイルを単純にスキャンするのではなく、まずログを確認し、有効かつ関連するファイルを特定します。これにより、数百万行の検索が非常に高速になります。
3. スキーマの強制と進化
Delta Lakeは、必要に応じて厳格かつ柔軟なゲートキーパーとして機能します。
- 強制: もし「Price」が数値ではなく文字列であるダイヤモンドレコードを挿入しようとすると、Deltaは書き込みを拒否しエラーを返します。これによりデータの整合性が保たれます;
- 進化: 新しいカラム(例:「Store_Location」)を追加する必要がある場合、Deltaは履歴データセット全体を書き換えることなく、安全にスキーマを進化させることができます。
4. バージョニングとタイムトラベル
すべての変更がトランザクションログに記録されるため、Delta Lakeはテーブルの過去のあらゆる時点の状態を記憶しています。
これをタイムトラベルと呼びます。もし workspace.workshop.diamonds から誤ってデータを削除してしまっても、「10分前のテーブルの状態を参照する」とDatabricksに指示するだけで、失われたデータを復元できます。
5. オープンスタンダード
DatabricksがDelta Lakeを開発しましたが、これはオープンソース形式です。つまり、データが特定のベンダーに「ロック」されることはなく、ハイエンドデータベースのパフォーマンスとオープンソースクラウドストレージの柔軟性を両立できます。
1. Delta Lakeの「トランザクションログ」は何をしますか?
2. Deltaテーブルへの「書き込み」操作が途中で失敗した場合、どうなりますか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください