الوحدة 3 — أصول البيانات ومخازن البيانات
بيانات سلسلة متاجرنا موجودة في حساب تخزين مشترك: ملفّ CSV أسبوعي بمبيعات كلّ متجر ومنتج. الوحدة السابقة أعطتنا الحوسبة. تبقى المسألة: كيف تصل هذه الحوسبة إلى تلك البيانات بطريقة قابلة للتكرار ومُصدَّرة وآمنة؟ الجواب في مفهومين: مخزن البيانات وأصل البيانات.
مخزن البيانات (Datastore)
مخزن البيانات مرجع محفوظ في مساحة العمل يشير إلى حاوية خارجية: Blob Storage، أو ADLS Gen2، أو ملفّ Azure Files. يحمل معلومات الاتّصال (اسم الحساب، اسم الحاوية) وطريقة التصريح (هُويّة مُدارة، مفتاح، SAS).
لسلسلة متاجرنا:
az ml datastore create --file datastore.yml
مع محتوى datastore.yml:
$schema: https://azuremlschemas.azureedge.net/latest/azureBlob.schema.json
name: sales_blob
type: azure_blob
account_name: salesdatasa
container_name: raw-sales
credentials:
# لا مفاتيح: تستعمل مساحة العمل هُويّتها المُدارة
بترك credentials فارغة، تستعمل مساحة الع مل هُويّتها المُدارة التي أعطينا لها في الوحدة 1 دور Storage Blob Data Reader. لا سرّ يمرّ عبر ملفّ، ولا تنتهي صلاحيّته فجأة يوم أحد.
أصل البيانات (Data Asset)
مخزن البيانات يُخبر Azure ML أين تُوجد البيانات، لكنّه لا يُشير إلى ملفّ أو مجلّد بعينه ولا إلى نسخة معيّنة. أصل البيانات يفعل ذلك، وهو مُصدَّر: كلّ رفع جديد ينتج إصدارًا جديدًا يُحتفَظ بالسابق.
ثلاثة أنواع مدعومة:
| النوع | متى | مثال |
|---|---|---|
uri_file | ملفّ واحد | ملفّ CSV، نموذج ONNX |
uri_folder | مجلّد كامل | مجموعة صور، مجلّد Parquet |
mltable | جدول مُصرَّح عنه | بيانات مُهيكلة تُقرأ بعمود معلوم |
uri_file وuri_folder: الأبسط
az ml data create \
--name sales_weekly \
--version 2026.36 \
--path azureml://datastores/sales_blob/paths/2026/week-36/sales.csv \
--type uri_file
يستعمل الإصدار تسمية إنسانية معنوية (2026.36 للأسبوع 36 من 2026). في مهمّة التدريب، تُشير إلى هذا الإصدار بالضبط:
inputs={"sales": Input(type="uri_file", path="azureml:sales_weekly:2026.36")}
خمس أسابيع لاحقًا يستطيع أيّ عضو من الفريق إعادة إنتاج التدريب على نفس البيانات، لا على أحدث ملفّ في الحاوية.