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 inventaris
  • Membuat ruang kerja dan buku catatan Azure Databricks
  • Membaca file inventori blob
  • Dapatkan jumlah dan ukuran total blob, cuplikan, dan versi
  • Mendapatkan jumlah blob berdasarkan jenis blob dan jenis konten

Prasyarat

Membuat laporan inventaris

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 untuk inventarisasi Blob
Jenis blob Blob blok, blob Halaman, dan blob Tambahkan
Subjenis sertakan versi blob, sertakan rekam jepret, sertakan blob yang dihapus
Bidang inventori Blob Semua
Frekuensi inventaris 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 dan buku catatan Azure Databricks. Kemudian dalam tutorial ini, Anda menempelkan cuplikan kode ke dalam sel notebook, lalu menjalankannya untuk mengumpulkan statistik kontainer.

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

  2. Buat notebook baru. Lihat Membuat buku catatan.

  3. Pilih Python sebagai bahasa default 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.

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

    • Ganti nilai placeholder dengan kontainer yang menyimpan laporan persediaan.

    • Ganti <blob-inventory-file-name> penampung dengan nama file inventori yang lengkap dan 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 tombol Jalankan untuk menjalankan kode dalam sel 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 tombol jalankan 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.

Dapatkan jumlah dan ukuran cuplikan

  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 tombol jalankan 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.

Dapatkan 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 ini menampilkan jumlah versi blob dan jumlah total byte yang digunakan oleh versi blob.

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

Dapatkan 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 tipe 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 tipe konten.

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

Menghentikan kluster

Untuk menghindari penagihan yang tidak perlu, hentikan sumber daya komputasi Anda. Lihat mengakhiri komputasi.

Langkah berikutnya