Azure Data Lake Storage の概要
Azure Data Lake Storage は、Azure Blob Storage を基にして構築された、ビッグ データ分析専用の一連の機能です。
Azure Data Lake Storage は、Azure Data Lake Storage Gen1 と Azure Blob Storage の機能を集約したものです。 たとえば、Data Lake Storage では、ファイル システムのセマンティクス、ファイル レベルのセキュリティ、スケーリングが提供されます。 これらの機能は BLOB ストレージに基づいて構築されているため、高可用性およびディザスター リカバリー機能を備えた低コストの階層型ストレージも利用できます。
Data Lake Storage では、Azure 上にエンタープライズ データ レイクを構築するための基盤として Azure Storage が利用されます。 Data Lake Storage は、当初から、数百ギガビットのスループットを維持しながら、複数ペタバイトの情報を提供することを目的に設計されているため、大量のデータを簡単に管理できます。
データ レイクとは
データ レイクとは、構造化データと非構造化データの両方を含むすべてのデータを格納できる単一の一元化されたリポジトリです。 データ レイクを使用すると、組織はさまざまなデータを 1 か所に格納して、すばやく簡単にアクセスおよび分析できます。 データ レイクでは、既存の構造にデータを適合させる必要がありません。 むしろ、データを生形式でもネイティブ形式でも格納でき、通常はファイルやバイナリ ラージ オブジェクト (BLOB) として格納できます。
Azure Data Lake Storage は、クラウドベースのエンタープライズ データ レイク ソリューションです。 これは、任意の形式の大量のデータを格納し、ビッグ データ分析ワークロードに対応するように設計されています。 さまざまなフレームワークを使用して簡単にアクセスおよび分析できるように、あらゆる種類およびインジェスト速度のデータを 1 か所にキャプチャするために、これを使用します。
Data Lake Storage
Azure Data Lake Storage は、専用のサービスまたはアカウントの種類ではありません。 代わりに、Azure Storage アカウントの Blob Storage サービスで使用する一連の機能として実装されます。 これらの機能のロックを解除するには、階層型名前空間の設定を有効にします。
Data Lake Storage には、次の機能が含まれています。
✓ Hadoop と互換性のあるアクセス
✓ 階層ディレクトリ構造
✓ 最適化されたコストとパフォーマンス
✓ よりきめ細かなセキュリティ モデル
✓ 大規模なスケーラビリティ
Hadoop と互換性のあるアクセス
Azure Data Lake Storage は主に、Hadoop およびデータ アクセス層として Apache Hadoop 分散ファイル システム (HDFS) を使うすべてのフレームワークで動作するように設計されています。 Hadoop ディストリビューションには、Azure Blob File System (ABFS) ドライバーが含まれており、多くのアプリケーションとフレームワークが Azure Blob Storage データに直接アクセスできます。 ABFS ドライバーは、ビッグ データ分析のために特別に最適化されています。 該当する REST API は、dfs.core.windows.net
エンドポイントを介して表示されます。
データ アクセス層として HDFS を使用するデータ分析フレームワークでは、ABFS を介して Azure Data Lake Storage データに直接アクセスできます。 Apache Spark 分析エンジンと Presto SQL クエリ エンジンが、このようなフレームワークの例になります。
サポートされているサービスとプラットフォームについて詳しくは、「Azure Data Lake Storage がサポートされている Azure のサービス」と「Azure Data Lake Storage がサポートされているオープンソース プラットフォーム」をご覧ください。
階層ディレクトリ構造
階層型名前空間は、Azure Data Lake Storage がオブジェクト ストレージのスケールと価格で高パフォーマンスのデータ アクセスを提供できるようにする重要な機能です。 この機能を使用すると、ストレージ アカウント内のすべてのオブジェクトとファイルを、ディレクトリと入れ子になったサブディレクトリの階層に整理できます。 言い換えると、Azure Data Lake Storage のデータは、コンピューター上でファイルが整理される場合とほぼ同じ方法で整理されます。
ディレクトリの名前変更や削除などの操作は、そのディレクトリに対する単一のアトミック メタデータ操作になります。 ディレクトリ名のプレフィックスを共有するすべてのオブジェクトを列挙して処理する必要はありません。
最適化されたコストとパフォーマンス
Azure Data Lake Storage の価格は、Azure Blob Storage レベルで設定されます。 自動ライフサイクル ポリシー管理やオブジェクト レベルの階層化などの Azure Blob Storage 機能に基づき、ビッグ データ ストレージのコストを管理します。
分析の前提条件としてデータをコピーまたは変換する必要がないため、パフォーマンス が最適化されます。 Azure Data Lake Storage の階層型名前空間機能により、効率的なアクセスとナビゲーションが可能になります。 このアーキテクチャでは、データ処理に必要なコンピューティング リソースが少なくなるため、データにアクセスする速度とコストの両方が少なくなります。
よりきめ細かなセキュリティ モデル
Azure Data Lake Storage アクセス制御モデルでは、Azure ロールベースのアクセス制御 (Azure RBAC) と Portable Operating System Interface for UNIX (POSIX) の両方のアクセス制御リスト (ACL) がサポートされています。 Azure Data Lake Storage に固有の追加のセキュリティ設定もいくつかあります。 ディレクトリ レベルまたはファイル レベルのどちらかでアクセス許可を設定できます。 格納されているすべてのデータは、保存時に、Microsoft マネージド暗号化キーまたはが管理する暗号化キーまたはカスタマー マネージド暗号化キーのどちらかを使用して暗号化されます。
大規模なスケーラビリティ
Azure Data Lake Storage では、大容量のストレージを用意して、さまざまな種類のデータを分析用に受け入れています。 データ レイクに格納できるアカウント サイズ、ファイル サイズ、またはデータ量に関する制限は設定されていません。 個々のファイルのサイズは、数キロバイト (KB) から数ペタバイト (PB) までの範囲で指定できます。 サービス、アカウント、ファイルの各レベルで測定されるほぼ一定の要求ごとの待機時間で処理が実行されます。
この設計は、Azure Data Lake Storage が最も要求の厳しいワークロードに合わせて簡単かつ迅速にスケールアップできることを意味します。 また、必要がなくなった場合は、同じように簡単にスケールダウンすることもできます。
Azure Blob Storage に基づいて構築
取り込んだデータは、ストレージ アカウントに BLOB として保持されます。 BLOB を管理するサービスは、Azure Blob Storage サービスです。 Data Lake Storage では、ビッグ データ分析ワークロードの要求に対応する機能またはこのサービスの "拡張機能" が記述されています。
これらの機能は Blob Storage に基づいて構築されているため、診断ログ、アクセス層、ライフサイクル管理ポリシーなどの機能を、ご利用のアカウントでお使いいただけます。 ほとんどの Blob Storage の機能は完全にサポートされていますが、一部の機能はプレビュー レベルでのみサポートされ、まだサポートされていない機能もわずかに存在します。 サポート ステートメントのすべての一覧については、「Azure Storage アカウントでの Blob Storage 機能のサポート」を参照してください。 サポートは継続的に拡張されるため、一覧にある各機能の状態は時間の経過と共に変化します。
ドキュメントと用語
Azure Blob Storage の目次には、2 つのコンテンツ セクションがあります。 コンテンツの Data Lake Storage セクションには、Data Lake Storage の機能の使用に関するベスト プラクティスとガイダンスが記載されています。 コンテンツの Blob Storage セクションには、Data Lake Storage に固有ではないアカウントの機能に関するガイダンスが記載されています。
セクション間を移動すると、わずかな用語の違いに気付くことがあります。 たとえば、Blob Storage のドキュメントに含まれるコンテンツでは、"ファイル" ではなく "BLOB" という用語が使用されます。 技術的には、ストレージ アカウントに取り込むファイルは、アカウント内の BLOB になります。 そのため、その用語が正しくなります。 ただし、"ファイル" という用語に慣れている場合、"BLOB" という用語によって混乱が生じる可能性があります。 "ファイル システム" を指す場合は、 "コンテナー" という用語も使用されます。 これらの用語は同義と見なします。