Sdílet prostřednictvím


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 návodu se naučíte, jak:

  • Vytvořte sestavu inventarizace
  • Vytvoření pracovního prostoru a poznámkového bloku Azure Databricks
  • Přečtěte inventární soubor blobů
  • Získejte počet a celkovou velikost objektů blob, snímků a verzí.
  • Získání počtu blobů podle typu blobu a typu obsahu

Prerequisites

Vytvořte sestavu inventarizace

Povolte pro svůj účet úložiště sestavy inventáře blobů. Viz Povolení sestav inventáře objektů blob služby Azure Storage.

Použijte následující nastavení konfigurace:

Setting Value
Název pravidla blobinventory
Container <název kontejneru>
Typ objektu pro inventarizaci Blob
Typy objektů blob Blokové bloby, stránkové bloby a přidávací bloby
Subtypes zahrnout verze blobu, zahrnout snímky, zahrnout smazané bloby
Pole inventáře Blob All
Četnost inventáře Daily
Formát exportu formát CSV

Možná budete muset počkat až 24 hodin po aktivaci inventurních zpráv, než bude vaše první zpráva vygenerována.

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.

  1. Vytvořte pracovní prostor Azure Databricks. Viz Vytvoření pracovního prostoru Azure Databricks.

  2. Vytvořte nový poznámkový blok. Viz Vytvoření poznámkového bloku.

  3. Jako výchozí jazyk poznámkového bloku zvolte Python.

Přečtěte inventární soubor blobů

  1. 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')     
    
  2. 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ě.

    • Nahraďte hodnotu zástupného symbolu <storage-account-key> klíčem vašeho účtu úložiště.

    • Nahraďte hodnotu zástupného symbolu kontejnerem, který obsahuje zprávy 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 na True.

  3. Stisknutím tlačítka Spustit spusťte kód v této buňce.

Získání počtu a velikosti blobů

  1. 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)'])
    
  2. Buňku spustíte stisknutím tlačítka Spustit.

    Notebook zobrazuje počet blobů v kontejneru a počet bajtů, které zabírají v tomto kontejneru.

    Snímek obrazovky s výsledky, které se zobrazí při spuštění buňky zobrazující počet objektů blob a velikost objektů blob v kontejneru

Získání počtu a velikosti snímků

  1. 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)'])
    
  2. Buňku spustíte stisknutím tlačítka Spustit.

    Sešit zobrazuje počet snímků a celkový počet bajtů obsazených snímky blob.

    Snímek obrazovky s výsledky, které se zobrazí při spuštění buňky zobrazující počet snímků a celkovou kombinovanou velikost snímků

Získání počtu a velikosti verzí

  1. 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)'])
    
  2. 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.

    Snímek obrazovky s výsledky, které se zobrazí při spuštění buňky zobrazující počet verzí a celkovou kombinovanou velikost verzí

Získání počtu objektů podle typu blobu

  1. 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"))
    
  2. Stisknutím kombinace kláves SHIFT+ENTER buňku spusťte.

    Notebook zobrazuje počet typů blobů podle typu.

    Snímek obrazovky s výsledky, které se zobrazí při spuštění buňky zobrazující počet typů objektů blob podle typu

Získání počtu objektů blob podle typu obsahu

  1. 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"))
    
  2. Stisknutím kombinace kláves SHIFT+ENTER buňku spusťte.

    Poznámkový blok zobrazuje počet blobů přidružených k každému typu obsahu.

    Snímek obrazovky s výsledky, které se zobrazí při spuštění buňky, která zobrazuje počet blobů podle typu obsahu.

Ukončení clusteru

Abyste se vyhnuli zbytečné fakturaci, ukončete výpočetní prostředek. Viz ukončení výpočetní instance.

Další kroky