Delta Lakeのデータマネジメントに対するお客様からの質問

[Top Questions from Customers about Delta Lake \- The Databricks Blog](https://databricks.com/blog/2021/03/31/top-questions-from-customers-about-delta-lake.html)の翻訳です。

先週、我々はデータレイクに信頼性、セキュリティ、パフォーマンスを提供するオープンソースストレージレイヤソフトウェア、[Delta Lake](https://databricks.com/product/delta-lake-on-databricks)に焦点を当てた[バーチャルイベント](https://databricks.com/p/webinar/delta-lake-the-foundation-of-your-lakehouse)を開催しました。その場で、我々はお客様から200もの興味深い質問をいただきました。この記事で全ての質問に回答することはできませんが、特に多かった質問に対する回答をここで共有すべきだと考えました。イベントに参加できなかった方は、[オンデマンド](https://databricks.com/p/webinar/delta-lake-the-foundation-of-your-lakehouse)でも視聴できますのでご覧になって下さい。

Delta Lakeに詳しくない方に説明すると、[Delta Lake](https://databricks.com/product/delta-lake-on-databricks)は[レイクハウス](https://databricks.com/blog/2020/01/30/what-is-a-data-lakehouse.html)の基盤となるオープンかつトランザクションをサポートしたストレージレイヤーです。Delta Lakeはデータレイクに信頼性、セキュリティ、パフォーマンスを提供し、バッチ処理、ストリーミング処理両方に対応しています。また、構造化データ、準構造化データ、非構造化データに対する唯一の格納場所を提供することで、データのサイロ化を防ぎます。最終的には、データ分析、データサイエンス、機械学習をシンプルにし、企業全体からアクセスできるようにします。Delta Lakeは、コスト優位性が高く、スケールが容易なレイクハウスアーキテクチャの基盤となります。

質問に入っていく前に、レイクハウスがデータウェアハウス、データレイクと何が違うのかをはっきりさせておきましょう。

[データウェアハウス](https://databricks.com/glossary/data-warehouse)は構造化データによるビジネスインテリジェンス(BI)をサポートするために設計されたデータマネジメントシステムです。構造化データを取り扱うのには適していますが、世界に存在するデータが日に日に複雑化していった結果、データウェアハウスは我々が直面しているユースケース、特に様々なデータタイプを要求するものには対応できなくなっています。加えて、データウェアハウスは高価であり、特定のデータフォーマットを使用しなくてはなりません。

[データレイク](https://databricks.com/discover/data-lakes/introduction#why-data-lake)はデータウェアハウスの課題を解決するために開発され、様々なデータソースから様々なフォーマットのデータを収集することが可能です。データレイクは低コストでデータを格納するのには適していますが、信頼性、トランザクションなどの性能に関わる機能、データ品質の担保、一貫性・分離性などの機能が欠けており、非常に使いにくいものとなっています。

レイクハウスは、オープンかつ標準化されたシステムデザインを通じて、データウェアハウスとデータレイク両方の利点を兼ね備えたものとなっています。既存のデータレイクにトランザクションレイヤーを追加することで、信頼性に繋がるACIDトランザクションやスキーマ適用・進化、データのバージョン管理機能、高い性能、セキュリティ機能をデータレイクにもたらすことができます。レイクハウスは、データ、分析、AIと統合するためのスケーラブル、低コストな選択肢となります。

# Delta Lakeは他のトランザクションストレージレイヤーと何が違うのですか？

Delta Lakeの他のトランザクションストレージレイヤーソフトウェアも類似の課題を解決するためのものですが、Delta Lakeはデータエコシステムにおけるより広いユースケースをカバーしています。データレイクに、信頼性だけでなく、高性能、セキュリティを追加し、バッチ処理、ストリーミング処理を統合するフレームワークを提供します。また、データ変換パイプラインの効率を改善するだけではなく、BI、データサイエンス、機械学習と言った下流のアクティビティの効率も改善できます。DatabricksのDelta Lakeを活用することで、Deltaエンジンによるよる良いパフォーマンス、きめ細かいアクセスコントロールによる高セキュリティ・ガバナンス、多くのBIツールに対する高性能ネイティブコネクターによるエコシステムの拡大と言った様々な恩恵を享受することができます。最後に、Delta Lakeは世界中の数千のお客様によって、3年以上の実運用に耐え続けている実績を持っています。毎日、少なくとも3ペタバイトのデータがDelta Lakeに投入されています。

# どのようにDelta Lakeにデータを追加するのですか？

Delta Lakeへのデータ追加は非常に簡単です。DatabricksオートローダーあるいはSQLのCOPY INTOコマンドを使って、既存のデータレイク(S3やADLS)にデータを追加するたびに自動でDelta Lakeにデータが追加されます。また、Apache Spark™を用いて、バッチでデータを読み取り、変換処理を行い、結果をDeltaフォーマットで書き込むということも可能です。詳細は[こちら](https://docs.databricks.com/delta/delta-ingest.html)を参照ください。

# DatabricksのDelta LakeはBIやレポート作成のユースケースに適していますか？

はい、Delta LakeはBIやレポート作成にも活用できます。特にこのデータ分析ユースケースに対応するために、我々は最近[SQL Analytics](https://databricks.com/product/sql-analytics)(現在パブリックプレビュー)のリリースを発表しました。SQL Analyticsはデータレイクに直接アクセスして分析を行うBIユースケースに特化して設計されています。もし、データレイクに対してクエリを実行する多くのユーザーをお持ちなのであれば、[SQL Analyticsに目を通して見る](https://databricks.com/p/event/sql-analytics-waitlist)ことをお勧めします。ビルトインされているクエリ、ダッシュボード機能を利用することもできますし、最適化されたネイティブコネクターを介して、既にお使いのBIツールを利用することも可能です。

# Delta Lakeはデータエンジニアリング以外に、機械学習の作業を支援しますか？

はい、Delta Lakeは、あなたがお使いのデータセットに対するバージョン管理機能を提供します。これは、再現性の観点から非常に重要な機能です。あなたのモデルを特定のバージョンのデータセットに紐付けできることは非常に重要です。これによって、他のメンバーが検証目的でトレーニングを再現し、同じ結果が得られることを確認できます。つまり、全く同一のデータ、あなたがトレーニングに使用したのと全く同じバージョンのデータでトレーニングを再現できるようになります。Databricksにおけるデータサイエンス、機械学習に関しては[こちら](https://databricks.com/product/data-science-and-machine-learning)を参照ください。

# コンプライアンスの文脈でDelta Lakeを活用できますか？Delta Lakeでは、GDPRやCCPAに準拠するために、どのように以前のバージョンのデータを削除できますか？

Delta Lakeはデータレイクにあるファイルにおける特定のレコードを削除する機能を持っており、これはCCPAやGDPRのような規制に対して大きな意味を持ちます。

対象を削除する際、ビジネスサイドは多くのケースでクラウドのオブジェクトストレージ上のデータまでも削除することを要求します。Databricksによってデータが管理されるDelta Lake管理テーブルを活用することで、削除処理はあなたのクラウドオブジェクトストレージまで伝播します。

# セキュリティ、ガバナンスの目的でアクセスコントロールを課することはできますか？

はい、DatabricksのDelta Lakeに加えて、ワークスペースオブジェクト(フォルダー、ノートブック、エクスペリメント、モデル)、クラスター、プール、ジョブ、データスキーマ、テーブル、ビューなどに対して、アクセス権限を管理するアクセスコントロールリスト(ACL)を活用できます。管理者、あるいは権限が移譲されたユーザーがアクセスコントロールを制御できます。Databricksにおけるデータガバナンスのベストプラクティスに関しては、[こちら](https://docs.databricks.com/security/data-governance.html)を参照ください。

# どのようにストリーミング、バッチ処理に対応できますか？

Delta Lakeにおいては、バッチ、ストリーミング処理の両方を実行することができ、複雑性、冗長性、運用の課題を回避してアーキテクチャをシンプルにできます。Delta Lakeのテーブルはバッチ処理におけるテーブル、ストリーミング処理のソースとシンクになることができます。ストリーミングによるデータの投入、バッチによる履歴データの補完、インタラクティブなクエリ全てがDeltaテーブルで動作し、直接Sparkの構造化ストリーミングと統合できます。

以上がイベントにおいてお客様からいただいた質問のほんの一部です。ライブイベントに参加された方には、スケーラブルかつコスト効率の高いレイクハウスの基盤であるDelta Lakeを学ぶ時間を割いていただいたことを感謝します。参加されなかった皆様においては、[レコーディング](https://databricks.com/p/webinar/delta-lake-the-foundation-of-your-lakehouse)を参照いただければと思います。

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)