Azure Data Lake Storageでは、階層型名前空間を使用して、オブジェクト ストレージのスケールと価格でファイル システムのパフォーマンスを提供します。 この機能は、アカウント内のオブジェクトとファイルのコレクションを、コンピューター上のファイル システムと同様に、ディレクトリと入れ子になったサブディレクトリの階層に整理します。 階層型名前空間を有効にすると、ストレージ アカウントは、分析エンジンやフレームワークが使い慣れているファイル システム セマンティクスと共に、オブジェクト ストレージのスケーラビリティとコスト効率を提供できます。
階層型名前空間の利点
BLOB データに階層型名前空間を実装するファイル システムには、次の利点があります。
アトミック ディレクトリ操作: オブジェクト ストアでは、ディレクトリ階層を模倣するために、パスの区切りを示すスラッシュ (/) をオブジェクト名に埋め込むという規則が採用されています。 この規則はオブジェクトを整理する場合に機能しますが、ディレクトリの移動、名前変更、削除などの操作には対応していません。 アプリケーションは、実際のディレクトリなしに、何百万もの個々の BLOB を処理して、ディレクトリ レベルのタスクを達成する必要があります。 一方、階層型名前空間では、単一のエントリ (親ディレクトリ) を更新することで、これらのタスクを処理します。
この最適化は、多くのビッグ データ分析フレームワークにとって特に重要です。 Hive や Spark などのツールは、多くの場合、一時的な場所に出力を書き込み、ジョブの終了時に場所の名前を変更します。 階層型名前空間がないと、多くの場合、この名前変更操作は分析プロセス自体よりも時間がかかる場合があります。 ジョブの待ち時間が短いほど、分析ワークロードの総保有コスト (TCO) が抑えられます。
使い慣れたインターフェイス スタイル: 開発者もユーザーも、ファイル システムを理解しています。 クラウドに移行する場合、Data Lake Storageは大小のコンピューターで使用されるのと同じファイル システム インターフェイスを公開するため、新しいストレージ パラダイムを学習する必要はありません。
オブジェクト ストアが階層型名前空間をサポートしていなかった理由の 1 つは、階層型名前空間によってスケールが制限されるためです。 ただし、Data Lake Storage階層型名前空間は直線的にスケーリングされ、データ容量やパフォーマンスが低下することはありません。
階層型名前空間を有効にするかどうかを決定する
アカウントで階層型名前空間を有効にした後は、フラット名前空間に戻すことはできません。 そのため、オブジェクト ストアのワークロードの性質に基づいて、階層型名前空間を有効にすることが理にかなっているかどうかを検討してください。 ワークロード、アプリケーション、コスト、サービス統合、ツール、機能、ドキュメントに対する階層型名前空間を有効にする影響を評価するには、「Azure Data Lake Storage の機能による Azure Blob Storage のアップグレード」を参照してください。
ワークロードの中には、階層型名前空間を有効にしてもメリットが得られないものもあります。 たとえば、バックアップ、イメージ ストレージ、およびオブジェクト組織がオブジェクト自体とは別に (たとえば、別のデータベースに) 格納されているその他のアプリケーションが含まれます。
また、BLOB ストレージ機能と Azure サービス エコシステムのサポートは引き続き拡大していますが、階層型名前空間を持つアカウントでは、一部の機能とAzure サービスはまだサポートされていません。 既知の問題を参照してください。
階層型名前空間の恩恵を受けるワークロード
一般に、ディレクトリを操作するファイル システム用に設計されたストレージ ワークロードの階層型名前空間を有効にします。 この条件には、すべての分析処理ワークロードが含まれます。 高度な組織を必要とするデータセットは、階層型名前空間を有効にすることでもメリットがあります。
TCO 分析を使用して、階層型名前空間を有効にするかどうかを判断します。 一般に、ストレージの高速化によるワークロード待機時間の改善には、コンピューティング リソースの時間を短縮する必要があります。 多くのワークロードの待機時間は、階層型名前空間で有効になるアトミック ディレクトリ操作により向上する可能性があります。 多くのワークロードでは、コンピューティング リソースは合計コストの 85% を超えるので、ワークロードの待機時間のわずかな削減であっても、TCO の大幅な削減に相当します。 階層型名前空間を有効にするとストレージ コストが増加する場合でも、計算コストの削減によって TCO は低下します。
フラットな名前空間と階層型名前空間を持つアカウント間のデータ ストレージの価格、トランザクション価格、ストレージ容量の予約価格の違いを分析するには、Azure Data Lake Storage価格に関する説明を参照してください。
階層型名前空間を有効にするには、「Azure Data Lake Storage (新しいアカウント) で使用するストレージ アカウントを作成する」または「Azure Data Lake Storage機能 (既存のアカウント) を使用してAzure Blob Storageをアップグレードする」を参照してください。
次のステップ
- 新しいストレージ アカウントを作成するときに、階層型名前空間を有効にします。 「Azure Data Lake Storage で使用するストレージ アカウントを作成する」を参照してください。
- 既存のストレージ アカウントで階層型名前空間を有効にします。 「Azure Data Lake Storage の機能で Azure Blob Storage をアップグレードする」を参照してください。