階層型名前空間

このページでは、階層型名前空間の概要、主な機能、一般的なユースケース、メリットと考慮すべき制限事項について説明します。

概要

階層型名前空間は、Cloud Storage が提供する機能であり、オブジェクトをフォルダに整理できます。階層型名前空間を使用すると、データを論理ファイル システム構造に保存できます。ファイル システム構造でデータを整理すると、パフォーマンスが向上し、整合性が確保され、データ集約型ワークロードとファイル指向ワークロードの管理が簡素化されます。

フォルダ管理オペレーションは、フォルダの作成、削除、一覧表示、名前変更など、信頼性を確保し管理機能を提供します。オブジェクトを階層化して整理することにより、データの編成が簡素化され、データ マネジメントのタスクが合理化されます。階層型名前空間が有効になっているバケットのフォルダには、オブジェクト、他のフォルダ、またはそれらの両方を格納できます。

階層型名前空間を有効にできるのは、バケットの作成時のみです。バケットで階層型名前空間を有効にする方法については、階層型名前空間を有効にしてバケットを作成、管理するをご覧ください。

次の図は、階層型名前空間が有効になっているバケットの例を示しています。オブジェクトは、フォルダの階層構造で整理されています。

図 1. フォルダとオブジェクトを含むバケット階層。
図 1. フォルダとオブジェクトを含むバケット階層。

主な機能

階層型名前空間には、次の機能があります。

  • 初期の秒間クエリ数(QPS)の増加: 階層型名前空間が有効になっているバケットでは、階層型名前空間が有効になっていないバケットと比較して、読み取りと書き込みのオペレーションの初期 QPS が増加します。初期 QPS が高いと、データ集約型ワークロードのスケーリングが容易になり、スループットが向上します。

  • フォルダ: フォルダはオブジェクトや他のフォルダのコンテナとして機能し、フォルダの作成、削除、取得などのオペレーションをサポートします。

  • フォルダの名前を変更する: フォルダの名前変更オペレーションを使用すると、オブジェクトを削除することなく、フォルダとその配下にあるフォルダのパスの名称をアトミックに変更できます。この方法は、特に複数のオブジェクトを含む大きなフォルダの場合に、効率的であり時間を節約できます。

  • フォルダを一覧表示する: フォルダの一覧表示オペレーションでは、バケット内または特定のフォルダの配下にあるすべてのフォルダを一覧表示します。これにより、バケット内に保存されているデータの構造を管理して理解できます。

バケットで階層型名前空間を有効にするタイミング

ファイル システムのような階層とセマンティクスを想定するアプリを使用する場合は、階層型名前空間を有効にすることを検討してください。階層型名前空間は、分析、AI、ML ワークロードなどのデータ集約型のタスクに対して有効です。階層型名前空間の使用を検討すべき一般的なシナリオを次に示します。

  • Hadoop ベースの処理: Hadoop と Spark のワークロードでは、従来、ファイル システムのようなストレージ構造と、ファイルとフォルダの時刻ベースの命名が想定されてきました。階層型名前空間は Cloud Storage コネクタと統合されており、スループットの向上とフォルダ名のアトミックな変更が可能になり、多くのデータ処理パイプラインでデータの完全性と整合性が向上します。

  • ファイル指向のワークロード処理: バッチ分析処理、金融サービス、ハイ パフォーマンス コンピューティングなどのワークロードは、フォルダとファイルの階層に基づいてパーティションに編成されます。階層型名前空間は、フォルダ管理専用の API を使用してこれらの環境を管理するのに有効です。また、階層型名前空間を使用すると、他のフォルダやオブジェクトを含むフォルダの管理を簡素化できます。1 つの API コマンドで、フォルダとそのすべてのコンテンツの名前をすばやく変更できるため、貴重な時間とリソースを節約できます。

  • AI と ML の処理: TensorFlow、Pandas、PyTorch などの AI ツールと ML ツールは、ファイル システムのようなアクセスとセマンティクスを想定しています。階層型名前空間は、特に Cloud Storage FUSE と組み合わせることで、スループットの向上と効率的なデータアクセスを実現します。その結果、階層型名前空間により、ML モデルの反復処理のパフォーマンスと信頼性が向上します。

バケットで階層型名前空間を有効にする前に、階層型名前空間の制限事項を考慮する必要があります。階層型名前空間の制限事項については、制限事項をご覧ください。

階層型名前空間のメリット

バケットで階層型名前空間を有効にすると、次のことができます。

  • 最適な整理を実現: データを階層的なフォルダ構造に整理して、ファイルやデータセットの管理と検索を容易にします。

  • ファイル システムのようなエコシステムを確立する: 階層型名前空間では、フォルダ、フォルダの名前変更、フォルダの一覧表示などのファイル システムのような機能が導入されます。これらの機能は、Hadoop エコシステムや AI / ML ワークロードなどのファイル指向のアプリケーションに対して有効です。

  • パフォーマンスの向上: データ集約型のワークロードをスケーリングしてスループットを向上させることで、アプリケーションの全体的なパフォーマンスを改善できます。

プラットフォーム サポート

階層型名前空間を持つバケットは、次の Cloud Storage プラットフォーム機能をサポートしています。

  • すべての Cloud Storage オブジェクト API と、広く使用されている Cloud Storage 機能。サポートされていない機能の詳細については、制限事項をご覧ください。

  • Storage Transfer Service を使用して、標準バケットから階層型名前空間を持つバケットにデータを転送します。

  • 次のサービスとのインテグレーション:

制限事項

階層型名前空間には次の制限事項があります。

  • 階層型名前空間を有効にできるのは、バケットの作成時のみです。階層型名前空間を含むように、フラットな名前空間のバケットを変更することはできません。

  • 階層型名前空間を使用するバケットでは、次のプレビュー版の Cloud Storage 機能がサポートされていません。

    • 削除(復元可能)
    • Autoclass
    • オブジェクトのバージョニング
    • オブジェクトの ACL
    • オブジェクト保持ロック
    • バケットロック
  • 階層型の名前空間で作成されたバケットは Google Cloud コンソールで表示できますが、Google Cloud コンソールを使用してバケットのフォルダを管理することはできません。フォルダの管理には、コマンドライン、REST API、またはクライアント ライブラリを使用することをおすすめします。

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Cloud Storage のパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

Cloud Storage を無料で試す