Azure Data Lake Storage は、Azure Blob Storage をベースに構築された、ビッグ データ分析専用の一連の機能です。 この記事では、分析ワークロードの評価に役立つAzure Data Lake Storageの主な機能、サポートされている統合、アーキテクチャについて説明します。
Azure Data Lake Storage Azure Data Lake Storage Gen1によって開発された機能に基づいて構築され、それらをAzure Blob Storageと組み合わせています。 たとえば、Data Lake Storage では、ファイル システム セマンティクス、ファイルレベルのセキュリティ、スケーリングが提供されます。 これらの機能はBlob Storageに基づいて構築されているため、高可用性とディザスター リカバリー機能を備えた低コストの階層化ストレージも利用できます。
Data Lake Storage によって、Azure Storage は、Azure 上にエンタープライズ データ レイクを構築するための基盤となります。 Data Lake Storage は、当初から、何百ものギガビット単位のスループットを維持しつつ、複数のペタバイト単位の情報を利用可能にする目的で設計されているため、大量のデータを簡単に管理することができます。
データ レイクとは
データ レイクとは、構造化データと非構造化データの両方を含むすべてのデータを格納できる単一の一元化されたリポジトリです。 データ レイクを使用すると、組織はさまざまなデータを 1 か所に格納して、すばやく簡単にアクセスおよび分析できます。 データ レイクでは、既存の構造にデータを適合させる必要がありません。 むしろ、データを生形式でもネイティブ形式でも格納でき、通常はファイルやバイナリ ラージ オブジェクト (BLOB) として格納できます。
Azure Data Lake Storage は、クラウドベースのエンタープライズ データ レイク ソリューションです。 これは、任意の形式の大量のデータを格納し、ビッグ データ分析ワークロードに対応するように設計されています。 さまざまなフレームワークを使用して簡単にアクセスおよび分析できるように、任意の種類とインジェスト速度のデータを 1 つの場所にキャプチャするために使用します。
Azure 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 に固有の追加のセキュリティ設定もいくつかあります。 ディレクトリまたはファイル レベルでアクセス許可を設定します。 Azure Data Lake Storageは、Microsoftマネージド暗号化キーまたはカスタマー マネージド暗号化キーを使用して、保存されているすべてのデータを暗号化します。
大規模なスケーラビリティ
Azure Data Lake Storage では、大容量のストレージを用意して、さまざまな種類のデータを分析用に受け入れています。 データ レイクに格納できるアカウント サイズ、ファイル サイズ、またはデータ量に関する制限は設定されていません。 個々のファイルには、数キロバイト (KB) から数百テラバイト (TB) までの範囲のサイズを指定できます。 Azure Data Lake Storageは、サービス、アカウント、およびファイル レベルで測定された要求ごとのほぼ一定の待機時間で要求を処理します。
この設計は、Azure Data Lake Storage が最も要求の厳しいワークロードに合わせて簡単かつ迅速にスケールアップできることを意味します。 また、必要がなくなった場合は、同じように簡単にスケールダウンすることもできます。
Azure Blob Storage に基づいて構築
取り込むデータは、ストレージ アカウント内の BLOB として保持されます。 BLOB を管理するサービスは、Azure Blob Storage サービスです。 Data Lake Storageでは、ビッグ データ分析ワークロードの要求に対応する、このサービスの機能または "機能強化" について説明します。
これらの機能は Blob Storage に基づいて構築されているため、診断ログ、アクセス層、ライフサイクル管理ポリシーなどの機能を、ご利用のアカウントでお使いいただけます。 ほとんどの Blob Storage の機能は完全にサポートされていますが、一部の機能はプレビュー レベルでのみサポートされ、まだサポートされていない機能もわずかに存在します。 サポート ステートメントのすべての一覧については、「Azure Storage アカウントでの Blob Storage 機能のサポート」を参照してください。 サポートが拡大し続けるにつれて、一覧表示されている各機能の状態が時間の経過と同時に変化します。
用語: BLOB、ファイル、コンテナー
Azure Blob Storage の目次には、2 つのコンテンツ セクションがあります。 コンテンツの Data Lake Storage セクションには、Data Lake Storage の機能の使用に関するベスト プラクティスとガイダンスが記載されています。 コンテンツの Blob Storage セクションには、Data Lake Storage に固有ではないアカウントの機能に関するガイダンスが記載されています。
セクション間を移動すると、わずかな用語の違いに気付くことがあります。 たとえば、Blob Storageドキュメントで紹介されているコンテンツでは、ファイルではなく BLOB という用語が使用されます。 技術的には、ストレージ アカウントに取り込むファイルは、アカウント内の BLOB になります。 そのため、その用語が正しくなります。 ただし、"ファイル" という用語に慣れている場合、"BLOB" という用語によって混乱が生じる可能性があります。 ファイル システムを指してコンテナーという用語が使われることもあります。 これらの用語は同義と見なします。