Delta Lake を使ってみる

完了

Delta Lake は、Spark ベースのデータ レイク処理にリレーショナル データベースのセマンティクスを追加する、オープンソースのストレージ レイヤーです。 Delta Lake は、PySpark、Scala、.NET コード用の Azure Synapse Analytics Spark プールでサポートされています。

Azure Databricks で Delta Lake を使用するベネフィットは次のとおりです。

  • クエリの実行とデータの変更をサポートするリレーショナル テーブル。 Delta Lake を使うと、CRUD (作成、読み取り、更新、削除) 操作をサポートするテーブルにデータを格納できます。 つまり、リレーショナル データベース システムと同じ方法で、データ行の "選択"、"挿入"、"更新"、"削除" を行うことができます。
  • ACID トランザクションのサポート。 リレーショナル データベースはトランザクション データの変更をサポートするように設計されており、"原子性" (トランザクションが 1 つの作業単位として完了する)、"一貫性" (トランザクション後にデータベースの一貫した状態が保たれる)、"分離性" (インプロセス トランザクションは相互に干渉できない)、"持続性" (トランザクションが完了すると、行われた変更は保持される) を備えています。 Delta Lake は、トランザクション ログを実装し、同時実行操作にシリアル化可能な分離を適用することで、この同じトランザクション サポートを Spark にもたらします。
  • データのバージョン管理と "タイム トラベル" すべてのトランザクションがトランザクション ログに記録されるため、各テーブル行の複数のバージョンを追跡することができ、"タイム トラベル" 機能を使ってクエリ内の行の以前のバージョンを取得することもできます。
  • バッチ データとストリーミング データのサポート。 ほとんどのリレーショナル データベースには静的データを格納するテーブルが含まれていますが、Spark には Spark Structured Streaming API を使用したストリーミング データのネイティブ サポートが含まれています。 Delta Lake テーブルは、ストリーミング データの "シンク" (宛先) と "ソース" の両方として使用できます。
  • 標準の形式と相互運用性。 Delta Lake テーブルの基になるデータは Parquet 形式で格納されます。これは、データ レイク インジェスト パイプラインでよく使用されます。

ヒント

Azure Databricks の Delta Lake の詳細については、Azure Databricks ドキュメントの Delta Lake ガイドを参照してください。