Tutorial: Berechnen von Containerstatistiken mithilfe von Databricks
In diesem Tutorial erfahren Sie, wie Sie Statistiken zu Ihren Containern sammeln, indem Sie Azure Blob Storage-Bestand zusammen mit Azure Databricks verwenden.
In diesem Tutorial lernen Sie, wie die folgenden Aufgaben ausgeführt werden:
- Generieren eines Inventurberichts
- Erstellen eines Azure Databricks-Arbeitsbereichs, Clusters und Notebooks
- Lesen der Blobbestandsdatei
- Abrufen der Anzahl und Gesamtgröße von Blobs, Momentaufnahmen und Versionen
- Abrufen der Anzahl von Blobs nach Blobtyp und Inhaltstyp
Voraussetzungen
Ein Azure-Abonnement: Erstellen eines kostenlosen Kontos
Ein Azure-Speicherkonto: Erstellen eines Speicherkontos
Vergewissern Sie sich, dass Ihrer Benutzeridentität die Rolle Mitwirkender an Storage-Blobdaten zugewiesen ist.
Generieren eines Inventurberichts
Aktivieren Sie Blobinventurberichte für Ihr Speicherkonto. Weitere Informationen finden Sie unter Aktivieren von Azure Storage-Blobinventurberichten.
Verwenden Sie die folgenden Konfigurationseinstellungen:
Einstellung | Wert |
---|---|
Regelname | blobinventory |
Container | <Name Ihres Containers> |
Objekttyp des Bestands | Blob |
Blobtypen | Blockblobs, Seitenblobs und Anfügeblobs |
Untertypen | Einschließen von Blobversionen, Momentaufnahmen und gelöschten Blobs |
Blobinventurfelder | Alle |
Inventurhäufigkeit | Täglich |
Exportformat | CSV |
Möglicherweise müssen Sie nach dem Aktivieren von Inventurberichten bis zu 24 Stunden warten, bis der erste Bericht generiert werden kann.
Konfigurieren von Azure Databricks
In diesem Abschnitt erstellen Sie einen Azure Databricks-Arbeitsbereich, einen Cluster und ein Notebook. Später in diesem Tutorial fügen Sie Codeschnipsel in Notebookzellen ein und führen sie dann aus, um Containerstatistiken zu sammeln.
Erstellen eines Azure Databricks-Arbeitsbereichs Weitere Informationen finden Sie unter Erstellen eines Azure Databricks-Arbeitsbereichs.
Erstellen eines Clusters Weitere Informationen finden Sie unter Erstellen eines Clusters.
Erstellen Sie ein Notebook, und wählen Sie Python als Standardsprache für das Notebook aus. Weitere Informationen finden Sie unter Erstellen eines Notebooks.
Lesen der Blobbestandsdatei
Kopieren Sie den folgenden Codeblock, und fügen Sie ihn in die erste Zelle ein, führen Sie den Code jedoch noch nicht aus.
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')
Ersetzen Sie in diesem Codeblock die folgenden Werte:
Ersetzen Sie den Platzhalterwert
<storage-account-name>
durch den Namen Ihres Speicherkontos.Ersetzen Sie den Platzhalterwert
<storage-account-key>
durch den Kontoschlüssel Ihres Speicherkontos.Ersetzen Sie den Platzhalterwert
<container-name>
durch den Container, der die Inventurberichte enthält.Ersetzen Sie den Platzhalter
<blob-inventory-file-name>
durch den vollqualifizierten Namen der Bestandsdatei (Beispiel:2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv
).Wenn Ihr Konto über einen hierarchischen Namespace verfügt, legen Sie die Variable
hierarchical_namespace_enabled
aufTrue
fest.
Drücken Sie UMSCHALT+EINGABE, um den Code in diesem Block auszuführen.
Abrufen von Blobanzahl und -größe
Fügen Sie in einer neuen Zelle den folgenden Code ein:
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)'])
Drücken Sie zum Ausführen der Zelle UMSCHALT+EINGABETASTE.
Das Notebook zeigt die Anzahl der Blobs in einem Container sowie die Anzahl der Bytes an, die von Blobs im Container belegt werden.
Abrufen der Anzahl und Größe von Momentaufnahmen
Fügen Sie in einer neuen Zelle den folgenden Code ein:
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)'])
Drücken Sie zum Ausführen der Zelle UMSCHALT+EINGABETASTE.
Das Notebook zeigt die Anzahl der Momentaufnahmen und die Gesamtanzahl an Bytes an, die von Blobmomentaufnahmen belegt werden.
Abrufen der Versionsanzahl und -größe
Fügen Sie in einer neuen Zelle den folgenden Code ein:
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)'])
Drücken Sie zum Ausführen der Zelle UMSCHALT+EINGABETASTE.
Das Notebook zeigt die Anzahl der Blobversionen und die Gesamtanzahl der Bytes, die von Blobversionen belegt werden.
Abrufen der Blobanzahl nach Blobtyp
Fügen Sie in einer neuen Zelle den folgenden Code ein:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Drücken Sie zum Ausführen der Zelle UMSCHALT+EINGABETASTE.
Das Notebook zeigt die Anzahl der Blobtypen nach Typ an.
Abrufen der Blobanzahl nach Inhaltstyp
Fügen Sie in einer neuen Zelle den folgenden Code ein:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Drücken Sie zum Ausführen der Zelle UMSCHALT+EINGABETASTE.
Das Notebook zeigt die Anzahl der Blobs an, die jedem Inhaltstyp zugeordnet sind.
Beenden des Clusters
Um eine unnötige Abrechnung zu vermeiden, stellen Sie sicher, dass Sie den Cluster beenden. Weitere Informationen finden Sie unter Beenden eines Clusters.
Nächste Schritte
Erfahren Sie, wie Sie mit Azure Synapse die Anzahl und Gesamtgröße von Blobs pro Container berechnen. Weitere Informationen finden Sie unter Berechnen der Anzahl und Gesamtgröße von Blobs pro Container mit dem Azure Storage-Bestand.
Erfahren Sie, wie Sie Statistiken generieren und visualisieren, die Container und Blobs beschreiben. Weitere Informationen finden Sie im Tutorial: Analysieren von Blobinventurberichten.
Erfahren Sie mehr über Möglichkeiten, Ihre Kosten auf Basis der Analyse Ihrer Blobs und Container zu optimieren. Informationen hierzu finden Sie in diesen Artikeln:
Planen und Verwalten von Kosten für Azure Blob Storage
Schätzen der Kosten für die Archivierung von Daten
Optimieren von Kosten durch automatisches Verwalten des Datenlebenszyklus