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
Langganan Azure - buat akun secara gratis
Akun penyimpanan Azure - membuat akun penyimpanan
Pastikan identitas pengguna Anda memiliki peran Kontributor Data Blob Penyimpanan yang ditetapkan untuk identitas tersebut.
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.
Buat ruang kerja Azure Databricks. Lihat Membuat ruang kerja Azure Databricks.
Buat kluster. Lihat Buat kluster.
Buat buku catatan dan pilih Python sebagai bahasa default buku catatan. Lihat Membuat buku catatan.
Membaca file inventori blob
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')
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_enabled
True
.
Tekan kunci SHIFT + ENTER untuk menjalankan kode di blok ini.
Mendapatkan jumlah dan ukuran blob
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)'])
Tekan SHIFT + ENTER untuk menjalankan sel.
Notebook menampilkan jumlah blob dalam kontainer dan jumlah byte yang ditempati oleh blob dalam kontainer.
Mendapatkan jumlah dan ukuran rekam jepret
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)'])
Tekan SHIFT + ENTER untuk menjalankan sel.
Notebook menampilkan jumlah rekam jepret dan jumlah total byte yang ditempati oleh rekam jepret blob.
Mendapatkan jumlah dan ukuran versi
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)'])
Tekan SHIFT + ENTER untuk menjalankan sel.
Notebook menampilkan jumlah versi blob dan jumlah total byte yang ditempati oleh versi blob.
Mendapatkan jumlah blob menurut jenis blob
Di sel baru, tempelkan kode berikut:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Tekan SHIFT + ENTER untuk menjalankan sel.
Buku catatan menampilkan jumlah jenis blob menurut jenis.
Mendapatkan jumlah blob menurut jenis konten
Di sel baru, tempelkan kode berikut:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Tekan SHIFT + ENTER untuk menjalankan sel.
Buku catatan menampilkan jumlah blob yang terkait dengan setiap jenis konten.
Menghentikan kluster
Untuk menghindari penagihan yang tidak perlu, pastikan untuk mengakhiri kluster. Lihat Mengakhiri kluster.
Langkah berikutnya
Pelajari cara menggunakan Azure Synapse untuk menghitung jumlah blob dan ukuran total blob per kontainer. Lihat Menghitung jumlah blob dan ukuran total per kontainer menggunakan inventori Azure Storage
Pelajari cara menghasilkan dan memvisualisasikan statistik yang menjelaskan kontainer dan blob. Lihat Tutorial: Menganalisis laporan inventori blob
Pelajari tentang cara untuk mengoptimalkan biaya Anda berdasarkan analisis blob dan kontainer Anda. Lihat artikel ini:
Merencanakan dan mengelola biaya untuk Azure Blob Storage
Memperkirakan biaya pengarsipan data
Mengoptimalkan biaya dengan mengelola siklus hidup data secara otomatis
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk