Kurz: Výpočet statistik kontejnerů pomocí Databricks
V tomto kurzu se dozvíte, jak shromažďovat statistiky o kontejnerech pomocí Azure Blob Storage inventáře společně s Azure Databricks.
V tomto kurzu se naučíte:
- Vygenerování sestavy inventáře
- Vytvoření pracovního prostoru, clusteru 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 vaše identita uživatele má přiřazenou roli Přispěvatel dat v objektech blob služby Storage .
Vygenerová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 do inventáře | Objekt blob |
Typy objektů blob | Objekty blob bloku, objekty blob stránky a doplňovací objekty blob |
Podtypy | zahrnout verze objektů blob, zahrnout snímky, zahrnout odstraněné objekty blob |
Pole inventáře objektů blob | Vše |
Četnost zásob | Každý den |
Formát exportu | CSV |
Po povolení sestav inventáře možná budete muset počkat až 24 hodin, než se vygeneruje první sestava.
Konfigurace Azure Databricks
V této části vytvoříte pracovní prostor, cluster 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, abyste shromáždili statistiky kontejneru.
Vytvořte pracovní prostor Azure Databricks. Viz Vytvoření pracovního prostoru Azure Databricks.
Vytvořte cluster. Viz Vytvoření clusteru.
Vytvořte poznámkový blok a jako výchozí jazyk poznámkového bloku zvolte Python. Viz Vytvoření poznámkového bloku.
Č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 ještě nespusouč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>
Zástupnou hodnotu nahraďte názvem vašeho účtu úložiště.<storage-account-key>
Zástupnou hodnotu nahraďte klíčem účtu vašeho účtu úložiště.<container-name>
Zástupnou hodnotu nahraďte kontejnerem, který obsahuje sestavy inventáře.<blob-inventory-file-name>
Zástupný symbol 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 kláves SHIFT + ENTER spusťte kód v tomto bloku.
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)'])
Stisknutím kláves SHIFT + ENTER spusťte buňku.
Poznámkový blok zobrazí počet objektů blob v kontejneru a počet bajtů, které objekty blob v kontejneru zabírají.
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)'])
Stisknutím kláves SHIFT + ENTER spusťte buňku.
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 kláves SHIFT + ENTER spusťte buňku.
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 kláves SHIFT + ENTER spusťte buňku.
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 kláves SHIFT + ENTER spusťte buňku.
Poznámkový blok zobrazí počet objektů blob přidružených k jednotlivým typům obsahu.
Ukončení clusteru
Abyste se vyhnuli zbytečné fakturaci, nezapomeňte cluster ukončit. Viz Ukončení clusteru.
Další kroky
Zjistěte, jak pomocí Azure Synapse vypočítat počet objektů blob a celkovou velikost objektů blob na kontejner. Viz Výpočet počtu objektů blob a celkové velikosti na kontejner pomocí inventáře služby Azure Storage.
Naučte se generovat a vizualizovat statistiky, které popisují 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ů. Přečtěte si 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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro