Samouczek: obliczanie statystyk kontenera przy użyciu usługi Databricks
W tym samouczku pokazano, jak zbierać statystyki dotyczące kontenerów przy użyciu spisu usługi Azure Blob Storage wraz z usługą Azure Databricks.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Generowanie raportu spisu
- Tworzenie obszaru roboczego i notesu usługi Azure Databricks
- Odczytywanie pliku spisu obiektów blob
- Pobieranie liczby i całkowitego rozmiaru obiektów blob, migawek i wersji
- Pobieranie liczby obiektów blob według typu obiektu blob i typu zawartości
Wymagania wstępne
Subskrypcja platformy Azure — bezpłatne tworzenie konta
Konto usługi Azure Storage — tworzenie konta magazynu
Upewnij się, że tożsamość użytkownika ma przypisaną rolę Współautor danych obiektu blob usługi Storage.
Generowanie raportu spisu
Włącz raporty spisu obiektów blob dla konta magazynu. Zobacz Włączanie raportów spisu obiektów blob usługi Azure Storage.
Użyj następujących ustawień konfiguracji:
Ustawienie | Wartość |
---|---|
Nazwa reguły | blobinventory |
Kontener | <nazwa kontenera> |
Typ obiektu do spisu | Obiekt blob |
Typy obiektów blob | Blokowe obiekty blob, stronicowe obiekty blob i uzupełnialne obiekty blob |
Podtypów | dołączanie wersji obiektów blob, dołączanie migawek, dołączanie usuniętych obiektów blob |
Pola spisu obiektów blob | wszystkie |
Częstotliwość spisu | Codziennie |
Format eksportu | CSV |
Po włączeniu raportów spisu do wygenerowania pierwszego raportu może być konieczne odczekanie do 24 godzin.
Konfigurowanie usługi Azure Databricks
W tej sekcji utworzysz obszar roboczy i notes usługi Azure Databricks. W dalszej części tego samouczka wklejasz fragmenty kodu do komórek notesu, a następnie uruchamiasz je w celu zebrania statystyk kontenera.
Tworzenie obszaru roboczego usługi Azure Databricks. Zobacz Tworzenie obszaru roboczego usługi Azure Databricks.
Utwórz nowy notes. Zobacz Tworzenie notesu.
Wybierz język Python jako domyślny język notesu.
Odczytywanie pliku spisu obiektów blob
Skopiuj i wklej następujący blok kodu do pierwszej komórki, ale jeszcze nie uruchamiaj kodu.
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')
W tym bloku kodu zastąp następujące wartości:
Zastąp wartość symbolu zastępczego
<storage-account-name>
nazwą konta magazynu.Zastąp wartość symbolu
<storage-account-key>
zastępczego kluczem konta magazynu.Zastąp wartość symbolu
<container-name>
zastępczego kontenerem, który przechowuje raporty spisu.<blob-inventory-file-name>
Zastąp symbol zastępczy w pełni kwalifikowaną nazwą pliku spisu (na przykład:2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv
).Jeśli konto ma hierarchiczną przestrzeń nazw, ustaw zmienną
hierarchical_namespace_enabled
naTrue
.
Naciśnij przycisk Uruchom, aby uruchomić kod w tej komórce.
Pobieranie liczby obiektów blob i rozmiaru
W nowej komórce wklej następujący 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)'])
Naciśnij przycisk uruchamiania, aby uruchomić komórkę.
W notesie jest wyświetlana liczba obiektów blob w kontenerze oraz liczba bajtów zajmowanych przez obiekty blob w kontenerze.
Pobieranie liczby i rozmiaru migawek
W nowej komórce wklej następujący 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)'])
Naciśnij przycisk uruchamiania, aby uruchomić komórkę.
W notesie jest wyświetlana liczba migawek i łączna liczba bajtów zajmowanych przez migawki obiektów blob.
Pobieranie liczby wersji i rozmiaru
W nowej komórce wklej następujący 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)'])
Naciśnij SHIFT + ENTER, aby uruchomić komórkę.
W notesie jest wyświetlana liczba wersji obiektów blob i łączna liczba bajtów zajmowanych przez wersje obiektów blob.
Pobieranie liczby obiektów blob według typu obiektu blob
W nowej komórce wklej następujący kod:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Naciśnij SHIFT + ENTER, aby uruchomić komórkę.
W notesie jest wyświetlana liczba typów obiektów blob według typu.
Pobieranie liczby obiektów blob według typu zawartości
W nowej komórce wklej następujący kod:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Naciśnij SHIFT + ENTER, aby uruchomić komórkę.
W notesie jest wyświetlana liczba obiektów blob skojarzonych z każdym typem zawartości.
Kończenie działania klastra
Aby uniknąć niepotrzebnych rozliczeń, zakończ zasób obliczeniowy. Zobacz Kończenie obliczeń.
Następne kroki
Dowiedz się, jak użyć usługi Azure Synapse do obliczenia liczby obiektów blob i całkowitego rozmiaru obiektów blob na kontener. Zobacz Obliczanie liczby obiektów blob i łącznego rozmiaru na kontener przy użyciu spisu usługi Azure Storage
Dowiedz się, jak generować i wizualizować statystyki opisujące kontenery i obiekty blob. Zobacz Samouczek: analizowanie raportów spisu obiektów blob
Dowiedz się więcej o sposobach optymalizacji kosztów na podstawie analizy obiektów blob i kontenerów. Zobacz następujące artykuły:
Planowanie kosztów usługi Azure Blob Storage i zarządzanie nimi
Szacowanie kosztów archiwizacji danych
Optymalizowanie kosztów przez automatyczne zarządzanie cyklem życia danych