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 Azure Blob Storage wraz z usługą Azure Databricks.
Ten samouczek zawiera informacje na temat wykonywania następujących czynności:
- Generowanie raportu spisu
- Tworzenie obszaru roboczego, klastra 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 | Wszystko |
Częstotliwość spisu | Codziennie |
Format eksportu | CSV |
Może być konieczne odczekanie do 24 godzin po włączeniu raportów spisu do wygenerowania pierwszego raportu.
Konfigurowanie usługi Azure Databricks
W tej sekcji utworzysz obszar roboczy, klaster 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.
Tworzenie klastra. Zobacz Tworzenie klastra.
Utwórz notes i wybierz język Python jako domyślny język notesu. Zobacz Tworzenie 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 klawisze SHIFT+ENTER, aby uruchomić kod w tym bloku.
Pobieranie liczby i rozmiaru obiektów blob
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 klawisze SHIFT + ENTER, 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 klawisze SHIFT + ENTER, aby uruchomić komórkę.
W notesie jest wyświetlana liczba migawek i całkowita 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 klawisze 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 klawisze 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 klawisze SHIFT + ENTER, aby uruchomić komórkę.
W notesie jest wyświetlana liczba obiektów blob skojarzonych z każdym typem zawartości.
Kończenie klastra
Aby uniknąć niepotrzebnych rozliczeń, pamiętaj o zakończeniu działania klastra. Zobacz Kończenie klastra.
Następne kroki
Dowiedz się, jak używać Azure Synapse do obliczania 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