Bagikan melalui


Tutorial: Menghitung statistik kontainer dengan menggunakan Databricks

Tutorial ini menunjukkan kepada Anda cara mengumpulkan statistik tentang kontainer Anda dengan menggunakan inventori Azure Blob Storage bersama dengan Azure Databricks.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat laporan inventarit
  • Membuat ruang kerja, kluster, dan buku catatan Azure Databricks
  • Membaca file inventori blob
  • Mendapatkan jumlah dan ukuran total blob, rekam jepret, dan versi
  • Mendapatkan jumlah blob berdasarkan jenis blob dan jenis konten

Prasyarat

Membuat laporan inventarit

Aktifkan laporan inventori blob untuk akun penyimpanan Anda. Lihat Mengaktifkan laporan inventori blob Azure Storage.

Gunakan pengaturan konfigurasi berikut:

Pengaturan Nilai
Nama aturan blobinventory
Kontainer <nama kontainer Anda>
Jenis objek ke inventarsi Blob
Jenis kontainer Blob blok, Blob halaman, dan Blob Penambahan
Subjenis sertakan versi blob, sertakan rekam jepret, sertakan blob yang dihapus
Bidang inventori blob Semua
Frekuensi inventori Harian
Format ekspor CSV

Anda mungkin harus menunggu hingga 24 jam setelah mengaktifkan laporan inventori agar laporan pertama Anda dibuat.

Mengonfigurasi Azure Databricks

Di bagian ini, Anda membuat ruang kerja, kluster, dan buku catatan Azure Databricks. Kemudian dalam tutorial ini, Anda menempelkan cuplikan kode ke dalam sel notebook, lalu menjalankannya untuk mengumpulkan statistik kontainer.

  1. Buat ruang kerja Azure Databricks. Lihat Membuat ruang kerja Azure Databricks.

  2. Buat kluster. Lihat Buat kluster.

  3. Buat buku catatan dan pilih Python sebagai bahasa default buku catatan. Lihat Membuat buku catatan.

Membaca file inventori blob

  1. Salin dan tempel blok kode berikut ke dalam sel pertama, tetapi jangan menjalankan kode ini dulu.

    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. Dalam blok kode ini, ganti nilai berikut:

    • Ganti nilai placeholder <storage-account-name> dengan nama akun penyimpanan.

    • <storage-account-key> Ganti nilai tempat penampung dengan kunci akun akun penyimpanan Anda.

    • <container-name> Ganti nilai tempat penampung dengan kontainer yang menyimpan laporan inventori.

    • <blob-inventory-file-name> Ganti tempat penampung dengan nama file inventori yang sepenuhnya memenuhi syarat (Misalnya: 2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv).

    • Jika akun Anda memiliki namespace hierarkis, atur variabel ke hierarchical_namespace_enabledTrue.

  3. Tekan kunci SHIFT + ENTER untuk menjalankan kode di blok ini.

Mendapatkan jumlah dan ukuran blob

  1. Di sel baru, tempelkan kode berikut:

    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. Tekan SHIFT + ENTER untuk menjalankan sel.

    Notebook menampilkan jumlah blob dalam kontainer dan jumlah byte yang ditempati oleh blob dalam kontainer.

    Cuplikan layar hasil yang muncul saat Anda menjalankan sel yang memperlihatkan jumlah blob dan ukuran blob dalam kontainer.

Mendapatkan jumlah dan ukuran rekam jepret

  1. Di sel baru, tempelkan kode berikut:

    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. Tekan SHIFT + ENTER untuk menjalankan sel.

    Notebook menampilkan jumlah rekam jepret dan jumlah total byte yang ditempati oleh rekam jepret blob.

    Cuplikan layar hasil yang muncul saat Anda menjalankan sel yang memperlihatkan jumlah rekam jepret dan ukuran total gabungan rekam jepret.

Mendapatkan jumlah dan ukuran versi

  1. Di sel baru, tempelkan kode berikut:

    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. Tekan SHIFT + ENTER untuk menjalankan sel.

    Notebook menampilkan jumlah versi blob dan jumlah total byte yang ditempati oleh versi blob.

    Cuplikan layar hasil yang muncul saat Anda menjalankan sel yang memperlihatkan jumlah versi dan ukuran gabungan total versi.

Mendapatkan jumlah blob menurut jenis blob

  1. Di sel baru, tempelkan kode berikut:

    display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
    
  2. Tekan SHIFT + ENTER untuk menjalankan sel.

    Buku catatan menampilkan jumlah jenis blob menurut jenis.

    Cuplikan layar hasil yang muncul saat Anda menjalankan sel yang memperlihatkan jumlah jenis blob menurut jenis.

Mendapatkan jumlah blob menurut jenis konten

  1. Di sel baru, tempelkan kode berikut:

    display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
    
  2. Tekan SHIFT + ENTER untuk menjalankan sel.

    Buku catatan menampilkan jumlah blob yang terkait dengan setiap jenis konten.

    Cuplikan layar hasil yang muncul saat Anda menjalankan sel yang memperlihatkan jumlah blob menurut jenis konten.

Menghentikan kluster

Untuk menghindari penagihan yang tidak perlu, pastikan untuk mengakhiri kluster. Lihat Mengakhiri kluster.

Langkah berikutnya