Öğretici: Databricks kullanarak kapsayıcı istatistiklerini hesaplama
Bu öğreticide, Azure Databricks ile birlikte Azure Blob Depolama envanteri kullanarak kapsayıcılarınızla ilgili istatistikleri toplama adımları gösterilmektedir.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Stok raporu oluşturma
- Azure Databricks çalışma alanı, kümesi ve not defteri oluşturma
- Blob envanter dosyasını okuma
- Blobların, anlık görüntülerin ve sürümlerin sayısını ve toplam boyutunu alma
- Blob türüne ve içerik türüne göre blob sayısını alma
Önkoşullar
Azure aboneliği - ücretsiz hesap oluşturma
Azure depolama hesabı - depolama hesabı oluşturma
Kullanıcı kimliğinize Depolama Blobu Veri Katkıda Bulunanı rolünün atandığından emin olun.
Stok raporu oluşturma
Depolama hesabınız için blob envanter raporlarını etkinleştirin. Bkz. Azure Depolama blob envanter raporlarını etkinleştirme.
Aşağıdaki yapılandırma ayarlarını kullanın:
Ayar | Değer |
---|---|
Kural adı | blobinventory |
Kapsayıcı | <kapsayıcınızın adı> |
Envantere nesne türü | Blob |
Blob türleri | Blok blobları, Sayfa blobları ve Ekleme blobları |
Alt | blob sürümlerini dahil edin, anlık görüntüleri dahil edin, silinen blobları dahil edin |
Blob envanter alanları | Tümü |
Stok sıklığı | Günlük |
Dışarı aktarma biçimi | CSV |
İlk raporunuzun oluşturulması için envanter raporlarını etkinleştirdikten sonra 24 saate kadar beklemeniz gerekebilir.
Azure Databricks'i yapılandırma
Bu bölümde bir Azure Databricks çalışma alanı, kümesi ve not defteri oluşturacaksınız. Bu öğreticinin ilerleyen bölümlerinde kod parçacıklarını not defteri hücrelerine yapıştıracak ve sonra bunları çalıştırarak kapsayıcı istatistiklerini toplayacaksınız.
Azure Databricks çalışma alanı oluşturun. Bkz. Azure Databricks çalışma alanı oluşturma.
Küme oluşturma. Bkz. Küme oluşturma.
Not defteri oluşturun ve not defterinin varsayılan dili olarak Python'ı seçin. Bkz. Not defteri oluşturma.
Blob envanter dosyasını okuma
Aşağıdaki kod bloğunu kopyalayıp ilk hücreye yapıştırın, ancak bu kodu henüz çalıştırmayın.
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')
Bu kod bloğunda aşağıdaki değerleri değiştirin:
<storage-account-name>
Yer tutucu değerini depolama hesabınızın adıyla değiştirin.<storage-account-key>
Yer tutucu değerini depolama hesabınızın hesap anahtarıyla değiştirin.<container-name>
Yer tutucu değerini envanter raporlarını tutan kapsayıcıyla değiştirin.Yer tutucuyu
<blob-inventory-file-name>
stok dosyasının tam adıyla değiştirin (Örneğin:2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv
).Hesabınızın hiyerarşik ad alanı varsa değişkenini
hierarchical_namespace_enabled
olarakTrue
ayarlayın.
Kodu bu blokta çalıştırmak için SHIFT + ENTER tuşlarına basın.
Blob sayısını ve boyutunu alma
Yeni bir hücreye aşağıdaki kodu yapıştırın:
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)'])
Hücreyi çalıştırmak için SHIFT + ENTER tuşlarına basın.
Not defteri bir kapsayıcıdaki blob sayısını ve kapsayıcıdaki blobların kapladığı bayt sayısını görüntüler.
Anlık görüntü sayısını ve boyutunu alma
Yeni bir hücreye aşağıdaki kodu yapıştırın:
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)'])
Hücreyi çalıştırmak için SHIFT + ENTER tuşlarına basın.
Not defteri, anlık görüntü sayısını ve blob anlık görüntüleri tarafından kaplanan toplam bayt sayısını görüntüler.
Sürüm sayısını ve boyutunu alma
Yeni bir hücreye aşağıdaki kodu yapıştırın:
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)'])
Hücreyi çalıştırmak için SHIFT + ENTER tuşlarına basın.
Not defteri blob sürümlerinin sayısını ve blob sürümlerinin kapladığı toplam bayt sayısını görüntüler.
Blob türüne göre blob sayısını alma
Yeni bir hücreye aşağıdaki kodu yapıştırın:
display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
Hücreyi çalıştırmak için SHIFT + ENTER tuşlarına basın.
Not defteri, türe göre blob türlerinin sayısını görüntüler.
İçerik türüne göre blob sayısını alma
Yeni bir hücreye aşağıdaki kodu yapıştırın:
display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
Hücreyi çalıştırmak için SHIFT + ENTER tuşlarına basın.
Not defteri, her içerik türüyle ilişkili blob sayısını görüntüler.
Kümeyi sonlandırma
Gereksiz faturalamayı önlemek için kümeyi sonlandırdığından emin olun. Bkz . Kümeyi sonlandırma.
Sonraki adımlar
Kapsayıcı başına blob sayısını ve toplam blob boyutunu hesaplamak için Azure Synapse kullanmayı öğrenin. Bkz . Azure Depolama envanteri kullanarak kapsayıcı başına blob sayısını ve toplam boyutu hesaplama
Kapsayıcıları ve blobları açıklayan istatistikler oluşturmayı ve görselleştirmeyi öğrenin. Bkz . Öğretici: Blob envanter raporlarını analiz etme
Bloblarınızın ve kapsayıcılarınızın analizine göre maliyetlerinizi iyileştirmenin yolları hakkında bilgi edinin. Şu makalelere bakın:
Azure Blob Depolama maliyetlerini planlama ve yönetme
Verileri arşivleme maliyetini tahmin etme
Veri yaşam döngüsünü otomatik olarak yöneterek maliyetleri iyileştirme