Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 tutorialen lär du dig följande:
- Generera en inventeringsrapport
- Skapa en Azure Databricks-arbetsyta och notebook-fil
- Läs blobinventeringsfilen
- Hämta antalet och den totala storleken på blobar, ögonblicksbilder och versioner
- Hämta antalet blobar efter blobtyp och innehållstyp
Prerequisites
En Azure-prenumeration – skapa ett konto kostnadsfritt
Ett Azure Storage-konto – skapa ett lagringskonto
Se till att din användaridentitet har rollen Storage Blob Data Contributor tilldelad.
Generera en inventeringsrapport
Aktivera blobinventeringsrapporter för ditt lagringskonto. Se Aktivera Azure Storage-blob-lagerredovisningsrapporter.
Använd följande konfigurationsinställningar:
| Setting | Value |
|---|---|
| Regelnamn | blobinventory |
| Container | <namnet på containern> |
| Objekttyp för inventering | Blob |
| Blobtyper | Blockblobar, sidblobar och tilläggsblobar |
| Subtypes | inkludera blobversioner, inkludera ögonblicksbilder, inkludera borttagna blobar |
| Blobinventeringsfält | All |
| Inventeringsfrekvens | Daily |
| 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 och notebook-fil. Senare i denna handledning klistrar du in kodfragment i notebook-celler och sedan kör dem för att samla in containerstatistik.
Skapa en Azure Databricks-arbetsyta. Se Skapa en Azure Databricks-arbetsyta.
Skapa en ny notebook-fil. Se Skapa en notebook.
Välj Python som standardspråk för notebook-filen.
Läs blobinventeringsfilen
Kopiera och klistra in följande kodblock i den första cellen, men kör inte den här koden ännu.
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_enabledtillTrue.
Tryck på knappen Kör för att köra koden i den här cellen.
Hämta antal blobar och storlek
I en ny cell klistrar du in följande kod:
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å kör-knappen 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
I en ny cell klistrar du in följande kod:
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å kör-knappen för att köra cellen.
Notebook-filen visar antalet blobögonblicksbilder och det totala antalet byte som upptas av dessa.
Hämta versionsantal och storlek
I en ny cell klistrar du in följande kod:
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)'])Kör cellen genom att trycka på SKIFT + RETUR.
Notebooken visar antalet blobversionerna och det totala antalet byte som upptas av blobversionerna.
Hämta antal blobar efter blobtyp
I en ny cell klistrar du in följande kod:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))Kör cellen genom att trycka på SKIFT + RETUR.
Anteckningsboken visar antalet blobtyper sorterade efter typ.
Hämta antal blobar efter innehållstyp
I en ny cell klistrar du in följande kod:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))Kör cellen genom att trycka på SKIFT + RETUR.
Notebook-filen visar antalet blobar som är associerade med varje innehållstyp.
Avsluta klustret
Avsluta beräkningsresursen för att undvika onödig fakturering. Se Avsluta en beräkning.
Nästa steg
Lär dig hur du använder Azure Synapse för att beräkna blobantalet 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. Se 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