Megosztás a következőn keresztül:


Oktatóanyag: Tárolóstatisztikák kiszámítása a Databricks használatával

Ez az oktatóanyag bemutatja, hogyan gyűjthet statisztikákat a tárolókról az Azure Blob Storage-leltár és az Azure Databricks használatával.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Leltárjelentés létrehozása
  • Azure Databricks-munkaterület és -jegyzetfüzet létrehozása
  • A blob leltárfájl olvasása
  • Blobok, pillanatképek és verziók számának és teljes méretének lekérése
  • Blobok számának lekérése blobtípus és tartalomtípus szerint

Előfeltételek

Leltárjelentés létrehozása

Blobleltár-jelentések engedélyezése a tárfiókhoz. Lásd: Azure Storage-blobleltár-jelentések engedélyezése.

Használja a következő konfigurációs beállításokat:

Beállítás Érték
Szabály neve blobinventory
Tároló <a tároló neve>
Objektumtípus a leltárba Blob
Blobtípusok Blobok, lapblobok és hozzáfűző blobok blokkolása
Altípusa blobverziók belefoglalása, pillanatképek belefoglalása, törölt blobok belefoglalása
Blobleltár mezői Mind
Leltár gyakorisága Napi
Formátum exportálása CSV

Előfordulhat, hogy akár 24 órát is várnia kell, miután engedélyezte a leltárjelentések készítését az első jelentéshez.

Az Azure Databricks konfigurálása

Ebben a szakaszban létrehoz egy Azure Databricks-munkaterületet és -jegyzetfüzetet. Az oktatóanyag későbbi részében kódrészleteket illeszthet be a jegyzetfüzetcellákba, majd futtathatja őket tárolóstatisztikák gyűjtéséhez.

  1. Azure Databricks-munkaterület létrehozása. Lásd: Azure Databricks-munkaterület létrehozása.

  2. Hozzon létre új notebookot. Lásd: Jegyzetfüzet létrehozása.

  3. Válassza a Pythont a jegyzetfüzet alapértelmezett nyelveként.

A blob leltárfájl olvasása

  1. Másolja és illessze be a következő kódblokkot az első cellába, de még ne futtassa ezt a kódot.

    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. Ebben a kódblokkban cserélje le a következő értékeket:

    • Cserélje le a <storage-account-name> helyőrző értékét a tárfiók nevére.

    • Cserélje le a <storage-account-key> helyőrző értékét a tárfiók fiókkulcsára.

    • Cserélje le a <container-name> helyőrző értéket a leltárjelentéseket tartalmazó tárolóra.

    • Cserélje le a <blob-inventory-file-name> helyőrzőt a leltárfájl teljes nevére (például: 2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv).

    • Ha a fiókja hierarchikus névtérrel rendelkezik, állítsa a hierarchical_namespace_enabled változót a következőre: True.

  3. A kód ebben a cellában való futtatásához nyomja le a Futtatás gombot.

Blobok számának és méretének lekérése

  1. Egy új cellába illessze be a következő kódot:

    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. A cella futtatásához nyomja le a Futtatás gombot.

    A jegyzetfüzet megjeleníti a tárolóban lévő blobok számát és a tárolóban lévő blobok által elfoglalt bájtok számát.

    A cella futtatásakor megjelenő eredmények képernyőképe, amelyen a blobok száma és a tárolóban lévő blobok mérete látható.

Pillanatképek számának és méretének lekérése

  1. Egy új cellába illessze be a következő kódot:

    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. A cella futtatásához nyomja le a Futtatás gombot.

    A jegyzetfüzet megjeleníti a pillanatképek számát és a blob-pillanatképek által elfoglalt bájtok teljes számát.

    Képernyőkép a cella futtatásakor megjelenő eredményekről, amelyek a pillanatképek számát és a pillanatképek összesített méretét jelenítik meg.

Verziószám és -méret lekérése

  1. Egy új cellába illessze be a következő kódot:

    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. A cella futtatásához nyomja le a SHIFT+ENTER billentyűkombinációt.

    A jegyzetfüzet megjeleníti a blobverziók számát és a blobverziók által elfoglalt bájtok teljes számát.

    Képernyőkép a cella futtatásakor megjelenő eredményekről, amelyek a verziók számát és a verziók összesített méretét jelenítik meg.

Blobok számának lekérése blobtípus szerint

  1. Egy új cellába illessze be a következő kódot:

    display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
    
  2. A cella futtatásához nyomja le a SHIFT+ENTER billentyűkombinációt.

    A jegyzetfüzet típus szerint jeleníti meg a blobtípusok számát.

    Képernyőkép a cella futtatásakor megjelenő eredményekről, amelyek típus szerint jelenítik meg a blobtípusok számát.

Blobok számának lekérése tartalomtípus szerint

  1. Egy új cellába illessze be a következő kódot:

    display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
    
  2. A cella futtatásához nyomja le a SHIFT+ENTER billentyűkombinációt.

    A jegyzetfüzet megjeleníti az egyes tartalomtípusokhoz társított blobok számát.

    Képernyőkép a cella futtatásakor megjelenő eredményekről, amelyek a blobok számát jelenítik meg tartalomtípus szerint.

A fürt leállítása

A szükségtelen számlázás elkerülése érdekében állítsa le a számítási erőforrást. Lásd egy számítási folyamat leállítása.

Következő lépések