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 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

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.

  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.

Čtení souboru inventáře objektů 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ě.

    • <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 na True.

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

Získání počtu a velikosti objektů 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.

    Poznámkový blok zobrazuje počet objektů blob v kontejneru a počet bajtů obsazených objekty blob v 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.

    Poznámkový blok zobrazuje počet snímků a celkový počet bajtů obsazených snímky objektů 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ů blob podle typu objektu blob

  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.

    Poznámkový blok zobrazuje počet typů objektů 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.

    V poznámkovém bloku se zobrazí počet objektů blob přidružených k jednotlivým typům obsahu.

    Snímek obrazovky s výsledky, které se zobrazí při spuštění buňky zobrazující počet objektů 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ích prostředků.

Další kroky