Share via


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 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.

  1. Een Azure Databricks-werkruimte maken. Zie Een Azure Databricks-werkruimte maken.

  2. Een cluster maken. Zie Een cluster maken.

  3. Maak een notebook en kies Python als de standaardtaal van het notebook. Zie Een notitieblok maken.

Het blob-inventarisbestand lezen

  1. 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')     
    
  2. 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 op True.

  3. Druk op de toetsen Shift + Enter om de code in dit blok uit te voeren.

Aantal en grootte van blobs ophalen

  1. 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)'])
    
  2. 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.

    Schermopname van resultaten die worden weergegeven wanneer u de cel uitvoert met het aantal blobs en de grootte van blobs in de container.

Aantal momentopnamen en grootte ophalen

  1. 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)'])
    
  2. 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.

    Schermopname van resultaten die worden weergegeven wanneer u de cel uitvoert met het aantal momentopnamen en de totale gecombineerde grootte van momentopnamen.

Aantal en grootte van versie ophalen

  1. 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)'])
    
  2. 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.

    Schermopname van de resultaten die worden weergegeven wanneer u de cel uitvoert met het aantal versies en de totale gecombineerde grootte van de versies.

Aantal blob's ophalen op blobtype

  1. Plak de volgende code in een nieuwe cel:

    display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
    
  2. Druk op Shift+Enter om de cel uit te voeren.

    In het notebook wordt het aantal blobtypen per type weergegeven.

    Schermopname van resultaten die worden weergegeven wanneer u de cel uitvoert met het aantal blobtypen per type.

Aantal blobs ophalen per inhoudstype

  1. 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"))
    
  2. Druk op Shift+Enter om de cel uit te voeren.

    In het notebook wordt het aantal blobs weergegeven dat aan elk inhoudstype is gekoppeld.

    Schermopname van resultaten die worden weergegeven wanneer u de cel uitvoert met het aantal blobs per inhoudstype.

Het cluster beëindigen

Om onnodige facturering te voorkomen, moet u het cluster beëindigen. Zie Een cluster beëindigen.

Volgende stappen