Dela via


Självstudie: Beräkna containerstatistik med hjälp av Databricks

Den här självstudien visar hur du samlar in statistik om dina containrar med hjälp av Azure Blob Storage inventering tillsammans med Azure Databricks.

I den här guiden får du lära dig att:

  • Generera en inventeringsrapport
  • Skapa en Azure Databricks-arbetsyta, ett kluster och en notebook-fil
  • Läsa blobinventeringsfilen
  • Hämta antalet och den totala storleken på blobar, ögonblicksbilder och versioner
  • Hämta antalet blobar efter blobtyp och innehållstyp

Förutsättningar

Generera en inventeringsrapport

Aktivera blobinventeringsrapporter för ditt lagringskonto. Se Aktivera Azure Storage-bloblagerrapporter.

Använd följande konfigurationsinställningar:

Inställning Värde
Regelnamn blobinventory
Container <namnet på containern>
Objekttyp att inventera Blob
Blobbtyper Blockblobar, sidblobar och tilläggsblobar
Undertyper inkludera blobversioner, inkludera ögonblicksbilder, inkludera borttagna blobar
Blobinventeringsfält Alla
Inventeringsfrekvens Varje dag
Exportformat CSV

Du kan behöva vänta upp till 24 timmar efter att du har aktiverat inventeringsrapporter för att din första rapport ska genereras.

Konfigurera Azure Databricks

I det här avsnittet skapar du en Azure Databricks-arbetsyta, ett kluster och en notebook-fil. Senare i den här självstudien klistrar du in kodfragment i notebook-celler och kör dem sedan för att samla in containerstatistik.

  1. Skapa en Azure Databricks-arbetsyta. Se Skapa en Azure Databricks-arbetsyta.

  2. Skapa ett kluster. Se Skapa ett kluster.

  3. Skapa en notebook-fil och välj Python som standardspråk för notebook-filen. Se Skapa en notebook-fil.

Läsa blobinventeringsfilen

  1. Kopiera och klistra in följande kodblock i den första cellen, men kör inte den här koden än.

    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. Ersätt följande värden i det här kodblocket:

    • Ersätt platshållarvärdet <storage-account-name> med namnet på ditt lagringskonto.

    • <storage-account-key> Ersätt platshållarvärdet med kontonyckeln för ditt lagringskonto.

    • <container-name> Ersätt platshållarvärdet med containern som innehåller inventeringsrapporterna.

    • <blob-inventory-file-name> Ersätt platshållaren med det fullständigt kvalificerade namnet på inventeringsfilen (till exempel: 2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv).

    • Om ditt konto har ett hierarkiskt namnområde anger du variabeln hierarchical_namespace_enabled till True.

  3. Tryck på SKIFT + RETUR för att köra koden i det här blocket.

Hämta antal blobar och storlek

  1. Klistra in följande kod i en ny cell:

    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. Tryck på SKIFT + RETUR för att köra cellen.

    Notebook-filen visar antalet blobar i en container och antalet byte som används av blobar i containern.

    Skärmbild av resultat som visas när du kör cellen som visar antalet blobar och storleken på blobar i containern.

Hämta antal ögonblicksbilder och storlek

  1. Klistra in följande kod i en ny cell:

    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. Tryck på SKIFT + RETUR för att köra cellen.

    Notebook-filen visar antalet ögonblicksbilder och det totala antalet byte som används av blobögonblicksbilder.

    Skärmbild av resultat som visas när du kör cellen som visar antalet ögonblicksbilder och den totala kombinerade storleken på ögonblicksbilder.

Hämta versionsantal och storlek

  1. Klistra in följande kod i en ny cell:

    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. Tryck på SKIFT + RETUR för att köra cellen.

    Notebook-filen visar antalet blobversioner och det totala antalet byte som används av blobversioner.

    Skärmbild av resultat som visas när du kör cellen som visar antalet versioner och den totala kombinerade storleken på versioner.

Hämta blobantal per blobtyp

  1. Klistra in följande kod i en ny cell:

    display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
    
  2. Tryck på SKIFT + RETUR för att köra cellen.

    Notebook-filen visar antalet blobtyper efter typ.

    Skärmbild av resultat som visas när du kör cellen som visar antalet blobtyper efter typ.

Hämta antal blobar efter innehållstyp

  1. Klistra in följande kod i en ny cell:

    display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
    
  2. Tryck på SKIFT + RETUR för att köra cellen.

    Notebook-filen visar antalet blobar som är associerade med varje innehållstyp.

    Skärmbild av resultat som visas när du kör cellen som visar antalet blobar efter innehållstyp.

Avsluta klustret

Se till att avsluta klustret för att undvika onödig fakturering. Se Avsluta ett kluster.

Nästa steg