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