Tutorial: Calcular estatísticas de contêiner usando Databricks
Este tutorial mostra como coletar estatísticas sobre seus contêineres usando o inventário do Armazenamento de Blobs do Azure junto com o Azure Databricks.
Neste tutorial, irá aprender a:
- Gerar um relatório de inventário
- Criar um espaço de trabalho e um bloco de anotações do Azure Databricks
- Leia o arquivo de inventário de blob
- Obtenha o número e o tamanho total de blobs, instantâneos e versões
- Obter o número de blobs por tipo de blob e tipo de conteúdo
Pré-requisitos
Uma subscrição do Azure - crie uma conta gratuitamente
Uma conta de armazenamento do Azure - criar uma conta de armazenamento
Certifique-se de que sua identidade de usuário tenha a função de Colaborador de Dados de Blob de Armazenamento atribuída a ela.
Gerar um relatório de inventário
Habilite relatórios de inventário de blob para sua conta de armazenamento. Consulte Habilitar relatórios de inventário de blob de armazenamento do Azure.
Use as seguintes definições de configuração:
Definição | Value |
---|---|
Nome da regra | blobinventory |
Contentor | <Nome do seu contentor> |
Tipo de objeto para inventário | Blob |
Tipos de blobs | Blobs de bloco, blobs de página e blobs de acréscimo |
Subtipos | incluir versões de blob, incluir instantâneos, incluir blobs excluídos |
Campos de inventário de Blob | Todos |
Frequência do inventário | Diárias |
Formato de exportação | CSV |
Talvez seja necessário aguardar até 24 horas após habilitar os relatórios de inventário para que seu primeiro relatório seja gerado.
Configurar o Azure Databricks
Nesta seção, você cria um espaço de trabalho e um bloco de anotações do Azure Databricks. Mais adiante neste tutorial, você cola trechos de código em células do bloco de anotações e os executa para coletar estatísticas de contêiner.
Crie um espaço de trabalho do Azure Databricks. Consulte Criar um espaço de trabalho do Azure Databricks.
Crie um novo bloco de notas. Consulte Criar um bloco de notas.
Escolha Python como o idioma padrão do bloco de anotações.
Leia o arquivo de inventário de blob
Copie e cole o seguinte bloco de código na primeira célula, mas ainda não execute esse código.
from pyspark.sql.types import StructType, StructField, IntegerType, StringType import pyspark.sql.functions as F storage_account_name = "<storage-account-name>" storage_account_key = "<storage-account-key>" container = "<container-name>" blob_inventory_file = "<blob-inventory-file-name>" hierarchial_namespace_enabled = False if hierarchial_namespace_enabled == False: spark.conf.set("fs.azure.account.key.{0}.blob.core.windows.net".format(storage_account_name), storage_account_key) df = spark.read.csv("wasbs://{0}@{1}.blob.core.windows.net/{2}".format(container, storage_account_name, blob_inventory_file), header='true', inferSchema='true') else: spark.conf.set("fs.azure.account.key.{0}.dfs.core.windows.net".format(storage_account_name), storage_account_key) df = spark.read.csv("abfss://{0}@{1}.dfs.core.windows.net/{2}".format(container, storage_account_name, blob_inventory_file), header='true', inferSchema='true')
Neste bloco de código, substitua os seguintes valores:
Substitua o valor de espaço reservado
<storage-account-name>
pelo nome da sua conta de armazenamento.Substitua o valor do
<storage-account-key>
espaço reservado pela chave da conta da sua conta de armazenamento.Substitua o valor do
<container-name>
espaço reservado pelo contêiner que contém os relatórios de inventário.Substitua o espaço reservado
<blob-inventory-file-name>
pelo nome totalmente qualificado do arquivo de inventário (por exemplo:2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv
).Se sua conta tiver um namespace hierárquico, defina a
hierarchical_namespace_enabled
variável comoTrue
.
Pressione o botão Executar para executar o código nesta célula.
Obter contagem e tamanho de blob
Em uma nova célula, cole o seguinte código:
print("Number of blobs in the container:", df.count()) print("Number of bytes occupied by blobs in the container:", df.agg({'Content-Length': 'sum'}).first()['sum(Content-Length)'])
Pressione o botão Executar para executar a célula.
O bloco de anotações exibe o número de blobs em um contêiner e o número de bytes ocupados por blobs no contêiner.
Obter contagem e tamanho de instantâneos
Em uma nova célula, cole o seguinte código:
from pyspark.sql.functions import * print("Number of snapshots in the container:", df.where(~(col("Snapshot")).like("Null")).count()) dfT = df.where(~(col("Snapshot")).like("Null")) print("Number of bytes occupied by snapshots in the container:", dfT.agg({'Content-Length': 'sum'}).first()['sum(Content-Length)'])
Pressione o botão Executar para executar a célula.
O bloco de anotações exibe o número de instantâneos e o número total de bytes ocupados por instantâneos de blob.
Obter contagem de versões e tamanho
Em uma nova célula, cole o seguinte código:
from pyspark.sql.functions import * print("Number of versions in the container:", df.where(~(col("VersionId")).like("Null")).count()) dfT = df.where(~(col("VersionId")).like("Null")) print("Number of bytes occupied by versions in the container:", dfT.agg({'Content-Length': 'sum'}).first()['sum(Content-Length)'])
Pressione SHIFT + ENTER para executar a célula.
O bloco de anotações exibe o número de versões de blob e o número total de bytes ocupados por versões de blob.
Obter contagem de blob por tipo de blob
Em uma nova célula, cole o seguinte código:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Pressione SHIFT + ENTER para executar a célula.
O bloco de anotações exibe o número de tipos de blob por tipo.
Obter contagem de blob por tipo de conteúdo
Em uma nova célula, cole o seguinte código:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Pressione SHIFT + ENTER para executar a célula.
O bloco de anotações exibe o número de blobs associados a cada tipo de conteúdo.
Encerrar o cluster
Para evitar cobranças desnecessárias, encerre seu recurso de computação. Consulte encerrar uma computação.
Próximos passos
Saiba como usar o Azure Synapse para calcular a contagem de blob e o tamanho total de blobs por contêiner. Consulte Calcular a contagem de blob e o tamanho total por contêiner usando o inventário do Armazenamento do Azure
Saiba como gerar e visualizar estatísticas que descrevem contêineres e blobs. Consulte Tutorial: Analisar relatórios de inventário de blob
Saiba mais sobre maneiras de otimizar seus custos com base na análise de seus blobs e contêineres. Veja estes artigos:
Planear e gerir os custos do Armazenamento de Blobs do Azure
Estimar o custo de arquivamento de dados
Otimize os custos gerenciando automaticamente o ciclo de vida dos dados