Tutorial: Cálculo de las estadísticas de contenedor mediante Databricks
Artículo
En este tutorial se muestra cómo recopilar estadísticas sobre los contenedores utilizando el inventario de Azure Blob Storage junto con Azure Databricks.
En este tutorial aprenderá a:
Generación de un informe de inventario
Creación de un área de trabajo y un cuaderno de Azure Databricks
Leer el archivo de inventario de blobs
Obtener el número y el tamaño total de blobs, instantáneas y versiones
Obtener el número de blobs por tipo de blob y tipo de contenido
incluir versiones de blob, incluir instantáneas, incluir blobs eliminados
Campos de inventario de blobs
Todo
Frecuencia de inventario
Diario
Formato de exportación
CSV
Es posible que tenga que esperar hasta 24 horas después de habilitar los informes de inventario para que se genere el primer informe.
Configuración de Azure Databricks
En esta sección, creará un área de trabajo y un cuaderno de Azure Databricks. Más adelante en este tutorial, pegará fragmentos de código en celdas de cuaderno y, a continuación, los ejecutará para recopilar estadísticas de contenedor.
En este bloque de código, reemplace los valores siguientes:
Reemplace el valor de marcador de posición <storage-account-name> por el nombre de la cuenta de almacenamiento.
Reemplace el valor de marcador de posición <storage-account-key> por la clave de cuenta de la cuenta de almacenamiento.
Reemplace el valor del marcador de posición <container-name> por el contenedor que contiene los informes de inventario.
Reemplace el marcador de posición <blob-inventory-file-name> por el nombre completo del archivo de inventario (por ejemplo: 2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv).
Si la cuenta tiene un espacio de nombres jerárquico, establezca la variable hierarchical_namespace_enabled en True.
Presione el botón Ejecutar para ejecutar el código de esta celda.
Obtención del recuento y tamaño de blobs
En una nueva celda, pegue el código siguiente:
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)'])
Presione el botón Ejecutar para ejecutar la celda.
El cuaderno muestra el número de blobs en un contenedor y el número de bytes ocupados por blobs en el contenedor.
Obtención del recuento y el tamaño de las instantáneas
En una nueva celda, pegue el código siguiente:
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)'])
Presione el botón Ejecutar para ejecutar la celda.
El cuaderno muestra el número de instantáneas y el número total de bytes ocupados por las instantáneas de blob.
Obtención del número de versiones y el tamaño
En una nueva celda, pegue el código siguiente:
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)'])
Presione MAYÚS + ENTRAR para ejecutar la celda.
El cuaderno muestra el número de versiones de blob y el número total de bytes ocupados por las versiones de blobs.
Obtención del recuento de blobs por tipo de blob
En una nueva celda, pegue el código siguiente:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Presione MAYÚS + ENTRAR para ejecutar la celda.
El cuaderno muestra el número de tipos de blobs por tipo.
Obtención del recuento de blobs por tipo de contenido
En una nueva celda, pegue el código siguiente:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Presione MAYÚS + ENTRAR para ejecutar la celda.
El cuaderno muestra el número de blobs asociados a cada tipo de contenido.
Finalización del clúster
Para evitar la facturación innecesaria, finalice el recurso de proceso. Consulte Finalización de un proceso.
Administre la ingesta y preparación de datos, el entrenamiento y la implementación de modelos, y la supervisión de soluciones de aprendizaje automático con Python, Azure Machine Learning y MLflow.