BLOB とは
BLOB は "クラウド用のファイル" です。 アプリは、ディスク上のファイルを操作するときとほとんど同じ方法で、BLOB を操作します。 アプリは BLOB に対してデータの読み取りと書き込みを行います。 ただし、ローカル ファイルとは異なり、BLOB にはインターネットに接続できればどこからでもアクセスできます。
Azure Blob Storage は "構造化されていません"。 保持できるデータの種類に制限はありません。 たとえば、BLOB には PDF ドキュメント、JPG イメージ、JSON ファイル、動画コンテンツなどを保持できます。
BLOB は一般的なファイル形式に限定されません。 BLOB には、科学機器からストリーミングされたギガバイト単位のバイナリ データ、別のアプリケーションに対する暗号化されたメッセージ、開発中のアプリ向けのカスタム形式のデータなどを格納できます。
頻繁にクエリを行う必要がある構造化データには、BLOB は効率的ではありません。 メモリとローカル ディスクよりも待機時間が長くなります。 クエリ実行時のデータベースを効率化するインデックス作成機能はありません。 ただし、BLOB はクエリ不可能なデータを保存するために、データベースと "組み合わせて" 頻繁に使用されます。 たとえば、ユーザー プロファイルのデータベースを持つアプリでは、BLOB にプロファイル画像を格納できます。 データベース内の各ユーザー レコードには、ユーザーの画像を含んでいる BLOB の名前または URL が含まれることになります。
あらゆる種類のアプリやアーキテクチャで、データ ストレージのために多くの方法で BLOB が使用されます。
- 小さいメッセージのみをサポートするメッセージング システムを使用して大量のデータを送信する必要があるアプリ。 このようなアプリでは、BLOB にデータを保存し、メッセージで BLOB の URL を送信できます。
- Blob Storage をファイル システムのように使用して、ドキュメントや他の個人データを格納したり共有したりできます。
- 画像のような静的な Web アセットを BLOB に格納し、Web サーバー上のファイルと同じようにパブリックにダウンロードできるようにすることができます。
- 多くの Azure コンポーネントでは、見えないところで BLOB が使用されています。 たとえば、Azure Cloud Shell ではファイルと構成を BLOB に格納し、Azure Virtual Machines ではハード ディスク ストレージに BLOB を使用しています。
アプリの中には、機能の一部として絶えず BLOB の作成、更新、削除を行っているものがあります。 BLOB の小さいセットを使用し、それらをめったに変更しないものもあります。
ストレージ アカウント、コンテナー、タグ、メタデータ
Blob Storage では、すべての BLOB が "BLOB コンテナー" 内に存在します。 コンテナー内に格納できる BLOB の数、およびストレージ アカウント内のコンテナーの数には、制限はありません。 コンテナーは "フラット" です。 これらが格納できるのは BLOB のみであり、他のコンテナーは格納できません。
BLOB とコンテナーでは、名前と値の文字列ペアの形式でタグとメタデータがサポートされています。 表示する BLOB の内容についての人が理解できる説明や、アプリがデータの処理方法を決定するために使用する文字列など、アプリはタグとメタデータを任意の目的に使用できます。
ヒント
Blob Storage では、メタデータで BLOB の検索や並べ替えを行うためのメカニズムは提供されていません。 BLOB インデックス タグを使用することで、BLOB の検索と並べ替えを行えます。 Azure Cognitive Search の使用の詳細については、このモジュールの最後の「参考資料」セクションをご覧ください。
Blob Storage API とクライアント ライブラリ
Blob Storage API は REST ベースです。 多くの一般的な言語のクライアント ライブラリはこれをサポートしています。 この API によって、BLOB やコンテナーの作成と削除、BLOB データのアップロードとダウンロード、コンテナー内の BLOB の一覧表示を行うアプリを記述できます。