Zelfstudie: Containerstatistieken berekenen met databricks
In deze zelfstudie ziet u hoe u statistieken over uw containers verzamelt met behulp van Azure Blob Storage inventaris in combinatie met Azure Databricks.
In deze zelfstudie leert u het volgende:
- Een inventarisrapport genereren
- Een Azure Databricks-werkruimte, -cluster en -notebook maken
- Het blob-inventarisbestand lezen
- Het aantal en de totale grootte van blobs, momentopnamen en versies ophalen
- Het aantal blobs per blobtype en inhoudstype ophalen
Vereisten
Een Azure-abonnement - gratis een account maken
Een Azure-opslagaccount : een opslagaccount maken
Zorg ervoor dat aan uw gebruikersidentiteit de rol Inzender voor opslagblobgegevens is toegewezen.
Een inventarisrapport genereren
Schakel blob-inventarisrapporten in voor uw opslagaccount. Zie Azure Storage-blobinventarisatierapporten inschakelen.
Gebruik de volgende configuratie-instellingen:
Instelling | Waarde |
---|---|
Regelnaam | blobinventory |
Container | <naam van uw container> |
Objecttype om te inventariseren | Blob |
Blob-typen | Blok-blobs, pagina-blobs en toevoeg-blobs |
Subtypen | blobversies opnemen, momentopnamen opnemen, verwijderde blobs opnemen |
Blob-inventarisvelden | Alles |
Inventarisfrequentie | Dagelijks |
Exportindeling | CSV |
Mogelijk moet u tot 24 uur wachten nadat u inventarisrapporten hebt ingeschakeld voordat uw eerste rapport wordt gegenereerd.
Azure Databricks configureren
In deze sectie maakt u een Azure Databricks-werkruimte, -cluster en -notebook. Verderop in deze zelfstudie plakt u codefragmenten in notebookcellen en voert u deze vervolgens uit om containerstatistieken te verzamelen.
Een Azure Databricks-werkruimte maken. Zie Een Azure Databricks-werkruimte maken.
Een cluster maken. Zie Een cluster maken.
Maak een notebook en kies Python als de standaardtaal van het notebook. Zie Een notitieblok maken.
Het blob-inventarisbestand lezen
Kopieer en plak het volgende codeblok in de eerste cel, maar voer deze code nog niet uit.
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')
Vervang in dit codeblok de volgende waarden:
Vervang de waarde van de tijdelijke plaatsaanduiding
<storage-account-name>
door de naam van uw opslagaccount.Vervang de waarde van de
<storage-account-key>
tijdelijke aanduiding door de accountsleutel van uw opslagaccount.Vervang de waarde van de
<container-name>
tijdelijke aanduiding door de container die de inventarisrapporten bevat.Vervang de
<blob-inventory-file-name>
tijdelijke aanduiding door de volledig gekwalificeerde naam van het inventarisbestand (bijvoorbeeld:2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv
).Als uw account een hiërarchische naamruimte heeft, stelt u de
hierarchical_namespace_enabled
variabele in opTrue
.
Druk op de toetsen Shift + Enter om de code in dit blok uit te voeren.
Aantal en grootte van blobs ophalen
Plak de volgende code in een nieuwe cel:
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)'])
Druk op Shift+Enter om de cel uit te voeren.
In het notebook wordt het aantal blobs in een container weergegeven en het aantal bytes dat door blobs in de container wordt ingenomen.
Aantal momentopnamen en grootte ophalen
Plak de volgende code in een nieuwe cel:
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)'])
Druk op Shift+Enter om de cel uit te voeren.
In het notebook wordt het aantal momentopnamen en het totale aantal bytes weergegeven dat wordt ingenomen door blob-momentopnamen.
Aantal en grootte van versie ophalen
Plak de volgende code in een nieuwe cel:
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)'])
Druk op Shift+Enter om de cel uit te voeren.
In het notebook wordt het aantal blobversies en het totale aantal bytes weergegeven dat wordt ingenomen door blobversies.
Aantal blob's ophalen op blobtype
Plak de volgende code in een nieuwe cel:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Druk op Shift+Enter om de cel uit te voeren.
In het notebook wordt het aantal blobtypen per type weergegeven.
Aantal blobs ophalen per inhoudstype
Plak de volgende code in een nieuwe cel:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Druk op Shift+Enter om de cel uit te voeren.
In het notebook wordt het aantal blobs weergegeven dat aan elk inhoudstype is gekoppeld.
Het cluster beëindigen
Om onnodige facturering te voorkomen, moet u het cluster beëindigen. Zie Een cluster beëindigen.
Volgende stappen
Meer informatie over het gebruik van Azure Synapse om het aantal blob's en de totale grootte van blobs per container te berekenen. Zie Het aantal blob's en de totale grootte per container berekenen met behulp van Azure Storage-inventaris
Meer informatie over het genereren en visualiseren van statistieken die containers en blobs beschrijven. Zie Zelfstudie: Blob-inventarisrapporten analyseren
Meer informatie over manieren om uw kosten te optimaliseren op basis van de analyse van uw blobs en containers. Zie deze artikelen:
Kosten plannen en beheren voor Azure Blob-opslag
De kosten van het archiveren van gegevens schatten
Kosten optimaliseren door de levenscyclus van gegevens automatisch te beheren