مشاركة عبر


البرنامج التعليمي: حساب إحصائيات الحاوية باستخدام Databricks

يوضح لك هذا البرنامج التعليمي كيفية جمع الإحصائيات حول حاوياتك باستخدام مخزون Azure Blob Storage جنبا إلى جنب مع Azure Databricks.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء تقرير مخزون
  • إنشاء مساحة عمل ودفتر ملاحظات Azure Databricks
  • قراءة ملف مخزون الكائن الثنائي كبير الحجم
  • الحصول على العدد والحجم الإجمالي للكائنات الثنائية كبيرة الحجم واللقطات والإصدارات
  • الحصول على عدد الكائنات الثنائية كبيرة الحجم حسب نوع الكائن الثنائي كبير الحجم ونوع المحتوى

المتطلبات الأساسية

إنشاء تقرير مخزون

تمكين تقارير مخزون الكائن الثنائي كبير الحجم لحساب التخزين الخاص بك. راجع تمكين تقارير مخزون كائن ثنائي كبير الحجم ل Azure Storage.

استخدم إعدادات التكوين التالية:

الإعداد القيمة‬
اسم القاعدة مزايدة
الحاوية <اسم الحاوية>
نوع الكائن للمخزون كائن ثنائي كبير الحجم
أنواع الكائنات الثنائية كبيرة الحجم الكائنات الثنائية كبيرة الحجم للكتلة، والكائنات الثنائية كبيرة الحجم للصفحة، والكائنات الثنائية كبيرة الحجم للإلحاق
الأنواع الفرعية تضمين إصدارات الكائن الثنائي كبير الحجم، وتضمين اللقطات، وتضمين الكائنات الثنائية كبيرة الحجم المحذوفة
حقول مخزون Blob الكل
تكرار المخزون يوميًا
تصدير التنسيق CSV

قد تضطر إلى الانتظار لمدة تصل إلى 24 ساعة بعد تمكين تقارير المخزون لإنشاء تقريرك الأول.

تكوين Azure Databricks

في هذا القسم، يمكنك إنشاء مساحة عمل ودفتر ملاحظات Azure Databricks. لاحقا في هذا البرنامج التعليمي، يمكنك لصق قصاصات التعليمات البرمجية في خلايا دفتر الملاحظات، ثم تشغيلها لجمع إحصائيات الحاوية.

  1. أنشئ مساحة عمل Azure Databricks. راجع إنشاء مساحة عمل Azure Databricks.

  2. قم بإنشاء دفتر ملاحظات جديد. راجع إنشاء دفتر ملاحظات.

  3. اختر Python كلغة افتراضية لدفتر الملاحظات.

قراءة ملف مخزون الكائن الثنائي كبير الحجم

  1. انسخ كتلة التعليمات البرمجية الآتية وألصقها في أول خلية، لكن دون تشغيل هذه التعليمة البرمجية بعد.

    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. في كتلة التعليمات البرمجية هذه، استبدل القيم التالية:

    • استبدل <storage-account-name> قيمة العنصر النائب باسم حساب التخزين الخاص بك.

    • <storage-account-key> استبدل قيمة العنصر النائب بمفتاح الحساب لحساب التخزين الخاص بك.

    • <container-name> استبدل قيمة العنصر النائب بالحاوية التي تحتوي على تقارير المخزون.

    • <blob-inventory-file-name> استبدل العنصر النائب بالاسم المؤهل بالكامل لملف المخزون (على سبيل المثال: 2023/02/02/02-16-17/blobinventory/blobinventory_1000000_0.csv).

    • إذا كان حسابك يحتوي على مساحة اسم هرمية، فقم بتعيين hierarchical_namespace_enabled المتغير إلى True.

  3. اضغط على الزر تشغيل لتشغيل التعليمات البرمجية في هذه الخلية.

الحصول على عدد الكائنات الثنائية كبيرة الحجم وحجمها

  1. في خلية جديدة، الصق التعليمات البرمجية التالية:

    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. اضغط على زر التشغيل لتشغيل الخلية.

    يعرض دفتر الملاحظات عدد الكائنات الثنائية كبيرة الحجم في حاوية وعدد وحدات البايت التي تشغلها الكائنات الثنائية كبيرة الحجم في الحاوية.

    لقطة شاشة للنتائج التي تظهر عند تشغيل الخلية التي تعرض عدد الكائنات الثنائية كبيرة الحجم وحجم الكائنات الثنائية كبيرة الحجم في الحاوية.

الحصول على عدد اللقطات وحجمها

  1. في خلية جديدة، الصق التعليمات البرمجية التالية:

    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. اضغط على زر التشغيل لتشغيل الخلية.

    يعرض دفتر الملاحظات عدد اللقطات وإجمالي عدد وحدات البايت التي تشغلها لقطات الكائن الثنائي كبير الحجم.

    لقطة شاشة للنتائج التي تظهر عند تشغيل الخلية التي تعرض عدد اللقطات والحجم الإجمالي المجمع للقطات.

الحصول على عدد الإصدارات وحجمها

  1. في خلية جديدة، الصق التعليمات البرمجية التالية:

    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. اضغط على SHIFT + ENTER لتشغيل الخلية.

    يعرض دفتر الملاحظات عدد إصدارات الكائن الثنائي كبير الحجم وإجمالي عدد وحدات البايت التي تشغلها إصدارات الكائن الثنائي كبير الحجم.

    لقطة شاشة للنتائج التي تظهر عند تشغيل الخلية التي تعرض عدد الإصدارات والحجم الإجمالي المجمع للإصدارات.

الحصول على عدد الكائنات الثنائية كبيرة الحجم حسب نوع الكائن الثنائي كبير الحجم

  1. في خلية جديدة، الصق التعليمات البرمجية التالية:

    display(df.groupBy('BlobType').count().withColumnRenamed("count", "Total number of blobs in the container by BlobType"))
    
  2. اضغط على SHIFT + ENTER لتشغيل الخلية.

    يعرض دفتر الملاحظات عدد أنواع الكائنات الثنائية كبيرة الحجم حسب النوع.

    لقطة شاشة للنتائج التي تظهر عند تشغيل الخلية التي تعرض عدد أنواع الكائنات الثنائية كبيرة الحجم حسب النوع.

الحصول على عدد الكائنات الثنائية كبيرة الحجم حسب نوع المحتوى

  1. في خلية جديدة، الصق التعليمات البرمجية التالية:

    display(df.groupBy('Content-Type').count().withColumnRenamed("count", "Total number of blobs in the container by Content-Type"))
    
  2. اضغط على SHIFT + ENTER لتشغيل الخلية.

    يعرض دفتر الملاحظات عدد الكائنات الثنائية كبيرة الحجم المقترنة بكل نوع محتوى.

    لقطة شاشة للنتائج التي تظهر عند تشغيل الخلية التي تعرض عدد الكائنات الثنائية كبيرة الحجم حسب نوع المحتوى.

إنهاء نظام المجموعة

لتجنب الفوترة غير الضرورية، قم بإنهاء مورد الحساب الخاص بك. راجع إنهاء حساب.

الخطوات التالية