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
En Azure-prenumeration – skapa ett konto kostnadsfritt
Ett Azure Storage-konto – skapa ett lagringskonto
Kontrollera att användaridentiteten har tilldelats rollen Storage Blob Data-deltagare .
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.
Skapa en Azure Databricks-arbetsyta. Se Skapa en Azure Databricks-arbetsyta.
Skapa ett kluster. Se Skapa ett kluster.
Skapa en notebook-fil och välj Python som standardspråk för notebook-filen. Se Skapa en notebook-fil.
Läsa blobinventeringsfilen
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')
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
tillTrue
.
Tryck på SKIFT + RETUR för att köra koden i det här blocket.
Hämta antal blobar och storlek
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)'])
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.
Hämta antal ögonblicksbilder och storlek
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)'])
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.
Hämta versionsantal och storlek
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)'])
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.
Hämta blobantal per blobtyp
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"))
Tryck på SKIFT + RETUR för att köra cellen.
Notebook-filen visar antalet blobtyper efter typ.
Hämta antal blobar efter innehållstyp
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"))
Tryck på SKIFT + RETUR för att köra cellen.
Notebook-filen visar antalet blobar som är associerade med varje innehållstyp.
Avsluta klustret
Se till att avsluta klustret för att undvika onödig fakturering. Se Avsluta ett kluster.
Nästa steg
Lär dig hur du använder Azure Synapse för att beräkna antalet blobar och den totala storleken på blobar per container. Se Beräkna antal blobar och total storlek per container med hjälp av Azure Storage-inventering
Lär dig hur du genererar och visualiserar statistik som beskriver containrar och blobar. Se Självstudie: Analysera blobinventeringsrapporter
Lär dig mer om hur du optimerar dina kostnader baserat på analysen av dina blobar och containrar. Läs följande artiklar:
Planera och hantera kostnader för Azure Blob Storage
Beräkna kostnaden för arkivering av data
Optimera kostnaderna genom att automatiskt hantera datalivscykeln