Kurz: Výpočet statistik kontejnerů pomocí Databricks
V tomto kurzu se dozvíte, jak shromažďovat statistiky o kontejnerech pomocí inventáře služby Azure Blob Storage spolu s Azure Databricks.
V tomto kurzu se naučíte:
- Generování sestavy inventáře
- Vytvoření pracovního prostoru a poznámkového bloku Azure Databricks
- Čtení souboru inventáře objektů blob
- Získání počtu a celkové velikosti objektů blob, snímků a verzí
- Získání počtu objektů blob podle typu objektu blob a typu obsahu
Požadavky
Předplatné Azure – vytvoření účtu zdarma
Účet úložiště Azure – vytvoření účtu úložiště
Ujistěte se, že má vaše identita uživatele přiřazenou roli Přispěvatel dat objektů blob služby Storage.
Generování sestavy inventáře
Povolte pro svůj účet úložiště sestavy inventáře objektů blob. Viz Povolení sestav inventáře objektů blob služby Azure Storage.
Použijte následující nastavení konfigurace:
Nastavení | Hodnota |
---|---|
Název pravidla | Objekt blobinventory |
Kontejner | <název kontejneru> |
Typ objektu pro inventarizaci | Objekt blob |
Typy objektů blob | Objekty blob bloku, objekty blob stránky a doplňovací objekty blob |
Podtypy | include blob versions, include snapshots, include deleted blobs |
Pole inventáře objektů blob | Všechny |
Četnost inventáře | Každý den |
Formát exportu | CSV |
Možná budete muset počkat až 24 hodin po povolení generování sestav inventáře pro první sestavu.
Konfigurace Azure Databricks
V této části vytvoříte pracovní prostor a poznámkový blok Azure Databricks. Později v tomto kurzu vložíte fragmenty kódu do buněk poznámkového bloku a pak je spustíte, aby se shromáždily statistiky kontejneru.
Vytvořte pracovní prostor Azure Databricks. Viz Vytvoření pracovního prostoru Azure Databricks.
Vytvořte nový poznámkový blok. Viz Vytvoření poznámkového bloku.
Jako výchozí jazyk poznámkového bloku zvolte Python.
Čtení souboru inventáře objektů blob
Zkopírujte a vložte následující blok kódu do první buňky, ale tento kód zatím nespustíte.
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')
V tomto bloku kódu nahraďte následující hodnoty:
<storage-account-name>
Nahraďte zástupnou hodnotu názvem vašeho účtu úložiště.<storage-account-key>
Nahraďte zástupnou hodnotu klíčem účtu vašeho účtu úložiště.<container-name>
Nahraďte zástupnou hodnotu kontejnerem, který obsahuje sestavy inventáře.<blob-inventory-file-name>
Zástupný text nahraďte plně kvalifikovaným názvem souboru inventáře (například:2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv
).Pokud má váš účet hierarchický obor názvů, nastavte proměnnou
hierarchical_namespace_enabled
naTrue
.
Stisknutím tlačítka Spustit spusťte kód v této buňce.
Získání počtu a velikosti objektů blob
Do nové buňky vložte následující kód:
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)'])
Buňku spustíte stisknutím tlačítka Spustit.
Poznámkový blok zobrazuje počet objektů blob v kontejneru a počet bajtů obsazených objekty blob v kontejneru.
Získání počtu a velikosti snímků
Do nové buňky vložte následující kód:
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)'])
Buňku spustíte stisknutím tlačítka Spustit.
Poznámkový blok zobrazuje počet snímků a celkový počet bajtů obsazených snímky objektů blob.
Získání počtu a velikosti verzí
Do nové buňky vložte následující kód:
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)'])
Stisknutím kombinace kláves SHIFT+ENTER buňku spusťte.
Poznámkový blok zobrazuje počet verzí objektů blob a celkový počet bajtů obsazených verzemi objektů blob.
Získání počtu objektů blob podle typu objektu blob
Do nové buňky vložte následující kód:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Stisknutím kombinace kláves SHIFT+ENTER buňku spusťte.
Poznámkový blok zobrazuje počet typů objektů blob podle typu.
Získání počtu objektů blob podle typu obsahu
Do nové buňky vložte následující kód:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Stisknutím kombinace kláves SHIFT+ENTER buňku spusťte.
V poznámkovém bloku se zobrazí počet objektů blob přidružených k jednotlivým typům obsahu.
Ukončení clusteru
Abyste se vyhnuli zbytečné fakturaci, ukončete výpočetní prostředek. Viz ukončení výpočetních prostředků.
Další kroky
Naučte se používat Azure Synapse k výpočtu počtu objektů blob a celkové velikosti objektů blob na kontejner. Zobrazení výpočtu počtu objektů blob a celkové velikosti jednotlivých kontejnerů s využitím inventáře služby Azure Storage
Naučte se generovat a vizualizovat statistiky popisované kontejnery a objekty blob. Viz kurz: Analýza sestav inventáře objektů blob
Zjistěte, jak optimalizovat náklady na základě analýzy objektů blob a kontejnerů. Podívejte se na tyto články:
Plánování a správa nákladů na službu Azure Blob Storage
Odhad nákladů na archivaci dat
Optimalizace nákladů automatickou správou životního cyklu dat