Azure Storage インベントリを使用してコンテナーあたりの BLOB の数と合計サイズを計算する

この記事では、Azure Blob Storage インベントリ機能と Azure Synapse を使用して、コンテナーあたりの BLOB の数と合計サイズを計算します。 これらの値は、コンテナーごとに BLOB の使用を最適化するときに役立ちます。

前提条件

なし

インベントリ レポートを有効にする

この方法の最初の手順は、ストレージ アカウントでインベントリ レポートを有効にすることです。 インベントリ レポートを有効にしてから、最初のレポートを生成するには、最大で 24 時間待機することが必要な場合があります。

分析するインベントリ レポートがあるときは、自分にストレージ BLOB データ閲覧者ロールを付与してレポート CSV ファイルが置かれているコンテナーに対する読み取りアクセス権を自分自身に付与します。 必ずレポートを実行するために使用しているアカウントの電子メール アドレスを使用してください。 Azure ロールベースのアクセス制御 (Azure RBAC) を持つユーザーに Azure ロールを割り当てる方法については、「Azure portal を使用して Azure ロールを割り当てる」の手順に従ってください。

注意

インベントリ レポートから BLOB サイズを計算するには、ルール定義に Content-Length スキーマ フィールドを含めるようにします。

Azure Synapse ワークスペースを作成する

次に SQL クエリを実行してインベントリ結果を報告するための Azure Synapse ワークスペースを作成します。

SQL クエリを作成する

Azure Synapse ワークスペースを作成したら、次の手順を行います。

  1. https://web.azuresynapse.net に移動します。

  2. 左端にある [開発] タブを選択します。

  3. 大きなプラス記号 (+) を選択して項目を追加します。

  4. SQL スクリプトをインポートします。

    新しいクエリを作成するために SQL スクリプトが選択されているスクリーンショット。

SQL クエリを実行する

次の手順に従います。

  1. 次の SQL クエリを Azure Synapse ワークスペースに追加してインベントリ CSV ファイルを読み取ります

    bulk パラメーターには、分析するインベントリ レポート CSV ファイルの URL を使用します。

    SELECT LEFT([Name], CHARINDEX('/', [Name]) - 1) AS Container,
            COUNT(*) As TotalBlobCount,
            SUM([Content-Length]) As TotalBlobSize
    FROM OPENROWSET(
        bulk '<URL to your inventory CSV file>',
        format='csv', parser_version='2.0', header_row=true
    ) AS Source
    GROUP BY LEFT([Name], CHARINDEX('/', [Name]) - 1)
    
  2. 右側の [プロパティ] ウィンドウで、SQL クエリに名前を付けます。

  3. Ctrl キーを押しながら S キーを押すか、 [すべて発行] ボタンを選択して、SQL クエリを発行します。

  4. [実行] ボタンを選択して SQL クエリを実行します。 コンテナーごとの BLOB の数と合計サイズが [結果] ウィンドウに報告されます。

    BLOB の数と合計サイズを計算するスクリプトを実行して得られた出力のスクリーンショット。