الوصول إلى البيانات من تخزين سحابة Azure أثناء التطوير التفاعلي
ينطبق على: Python SDK azure-ai-ml v2 (الحالي)
يبدأ مشروع التعلم الآلي عادة بتحليل البيانات الاستكشافية (EDA)، والمعالجة المسبقة للبيانات (التنظيف، وهندسة الميزات)، ويتضمن إنشاء نماذج أولية لنماذج التعلم الآلي للتحقق من صحة الفرضيات. مرحلة مشروع النماذج الأولية هذه تفاعلية للغاية في طبيعتها، وتفسح المجال للتطوير في دفتر ملاحظات Jupyter، أو IDE مع وحدة تحكم Python تفاعلية. في هذا المقال، ستتعلم كيفية إجراء ما يلي:
- الوصول إلى البيانات من Azure التعلم الآلي Datastores URI كما لو كان نظام ملفات.
- تجسيد البيانات في Pandas باستخدام
mltable
مكتبة Python. - تحقيق أصول بيانات Azure التعلم الآلي في Pandas باستخدام
mltable
مكتبة Python. - تحقيق البيانات من خلال تنزيل صريح باستخدام
azcopy
الأداة المساعدة.
المتطلبات الأساسية
- مساحة عمل للتعلم الآلي من Microsoft Azure. لمزيد من المعلومات، راجع إدارة مساحات عمل Azure التعلم الآلي في المدخل أو باستخدام Python SDK (v2).
- مخزن بيانات Azure التعلم الآلي. لمزيد من المعلومات، راجع إنشاء مخازن البيانات.
تلميح
توضح الإرشادات الواردة في هذه المقالة الوصول إلى البيانات أثناء التطوير التفاعلي. ينطبق على أي مضيف يمكنه تشغيل جلسة عمل Python. يمكن أن يشمل ذلك جهازك المحلي، وجهاز ظاهري سحابي، ومساحة تعليمة GitHub البرمجية، وما إلى ذلك. نوصي باستخدام مثيل حساب Azure التعلم الآلي - محطة عمل سحابية مدارة بالكامل ومكونة مسبقا. لمزيد من المعلومات، راجع إنشاء مثيل حساب Azure التعلم الآلي.
هام
تأكد من تثبيت أحدث azure-fsspec
مكتبات python في mltable
بيئة python الخاصة بك:
pip install -U azureml-fsspec mltable
الوصول إلى البيانات من URI لمخزن البيانات، مثل نظام الملفات
مخزن بيانات Azure التعلم الآلي هو مرجع إلى حساب تخزين Azure موجود. تشمل فوائد إنشاء مخزن البيانات واستخدامه ما يلي:
- واجهة برمجة تطبيقات شائعة وسهلة الاستخدام للتفاعل مع أنواع تخزين مختلفة (Blob/Files/ADLS).
- اكتشاف سهل لمخازن البيانات المفيدة في عمليات الفريق.
- دعم الوصول المستند إلى بيانات الاعتماد (على سبيل المثال، رمز SAS المميز) والهوية المستندة إلى (استخدام معرف Microsoft Entra أو هوية Manged)، للوصول إلى البيانات.
- للوصول المستند إلى بيانات الاعتماد، يتم تأمين معلومات الاتصال، لإبطال تعرض المفتاح في البرامج النصية.
- استعرض البيانات والصق معرفات URI لمخزن البيانات في واجهة مستخدم Studio.
URI مخزن البيانات هو معرف مورد موحد، وهو مرجع إلى موقع تخزين (مسار) على حساب تخزين Azure الخاص بك. يحتوي URI لمخزن البيانات على هذا التنسيق:
# Azure Machine Learning workspace details:
subscription = '<subscription_id>'
resource_group = '<resource_group>'
workspace = '<workspace>'
datastore_name = '<datastore>'
path_on_datastore = '<path>'
# long-form Datastore uri format:
uri = f'azureml://subscriptions/{subscription}/resourcegroups/{resource_group}/workspaces/{workspace}/datastores/{datastore_name}/paths/{path_on_datastore}'.
تعد معرفات URI لمخزن البيانات هذه تنفيذا معروفا لمواصفات نظام الملفات (fsspec
): واجهة pythonic موحدة لأنظمة الملفات المحلية والبايتات البعيدة والمضمنة.
يمكنك تثبيت الحزمة azureml-fsspec
وحزمة التبعية azureml-dataprep
الخاصة بها. بعد ذلك، يمكنك استخدام تنفيذ Azure التعلم الآلي Datastorefsspec
.
يعالج تنفيذ Azure التعلم الآلي Datastore fsspec
تلقائيا بيانات الاعتماد/الهوية التي يستخدمها مخزن بيانات Azure التعلم الآلي. يمكنك تجنب كل من التعرض لمفتاح الحساب في البرامج النصية الخاصة بك، وإجراءات تسجيل الدخول الإضافية، على مثيل حساب.
على سبيل المثال، يمكنك استخدام عناوين URL لمخزن البيانات مباشرة في Pandas. يوضح هذا المثال كيفية قراءة ملف CSV:
import pandas as pd
df = pd.read_csv("azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>/paths/<folder>/<filename>.csv")
df.head()
تلميح
بدلا من تذكر تنسيق URI لمخزن البيانات، يمكنك نسخ ولصق URI لمخزن البيانات من واجهة مستخدم Studio باستخدام الخطوات التالية:
- حدد Data من القائمة اليسرى، ثم حدد علامة التبويب Datastores .
- حدد اسم مخزن البيانات، ثم استعرض.
- ابحث عن الملف/المجلد الذي تريد قراءته في Pandas، وحدد علامة الحذف (...) بجواره. حدد نسخ URI من القائمة. يمكنك تحديد Datastore URI للنسخ إلى دفتر الملاحظات/البرنامج النصي.
يمكنك أيضا إنشاء مثيل لنظام ملفات Azure التعلم الآلي، لمعالجة الأوامر الشبيهة بنظام الملفات - على سبيل المثال ls
، glob
، ، exists
. open
- يسرد
ls()
الأسلوب الملفات في دليل معين. يمكنك استخدام ls()، ls(.)، ls (<<folder_level_1>/<folder_level_2>) لسرد الملفات. نحن ندعم كلا من '.' و'..'، في المسارات النسبية. glob()
يدعم الأسلوب globbing '*' و'**'.- يقوم
exists()
الأسلوب بإرجاع قيمة منطقية تشير إلى ما إذا كان ملف محدد موجودا في الدليل الجذر الحالي. - يقوم
open()
الأسلوب بإرجاع كائن يشبه الملف، والذي يمكن تمريره إلى أي مكتبة أخرى تتوقع العمل مع ملفات python. يمكن للتعليمات البرمجية أيضا استخدام هذا الكائن، كما لو كان كائن ملف python عاديا. تحترم هذه الكائنات التي تشبه الملف استخدامwith
السياقات، كما هو موضح في هذا المثال:
from azureml.fsspec import AzureMachineLearningFileSystem
# instantiate file system using following URI
fs = AzureMachineLearningFileSystem('azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastore*s*/datastorename')
fs.ls() # list folders/files in datastore 'datastorename'
# output example:
# folder1
# folder2
# file3.csv
# use an open context
with fs.open('./folder1/file1.csv') as f:
# do some process
process_file(f)
تحميل الملفات عبر AzureMachineLearningFileSystem
from azureml.fsspec import AzureMachineLearningFileSystem
# instantiate file system using following URI
fs = AzureMachineLearningFileSystem('azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastorename>/paths/')
# you can specify recursive as False to upload a file
fs.upload(lpath='data/upload_files/crime-spring.csv', rpath='data/fsspec', recursive=False, **{'overwrite': 'MERGE_WITH_OVERWRITE'})
# you need to specify recursive as True to upload a folder
fs.upload(lpath='data/upload_folder/', rpath='data/fsspec_folder', recursive=True, **{'overwrite': 'MERGE_WITH_OVERWRITE'})
lpath
هو المسار المحلي، وهو rpath
المسار البعيد.
إذا لم تكن المجلدات التي تحددها موجودة rpath
بعد، فسنقوم بإنشاء المجلدات لك.
نحن ندعم ثلاثة أوضاع "الكتابة فوق":
- APPEND: إذا كان هناك ملف بنفس الاسم في مسار الوجهة، فإن هذا يحافظ على الملف الأصلي
- FAIL_ON_FILE_CONFLICT: إذا كان هناك ملف يحمل نفس الاسم في مسار الوجهة، يؤدي هذا إلى حدوث خطأ
- MERGE_WITH_OVERWRITE: إذا كان هناك ملف بنفس الاسم في مسار الوجهة، فإن هذا يؤدي إلى الكتابة فوق هذا الملف الموجود بالملف الجديد
تنزيل الملفات عبر AzureMachineLearningFileSystem
# you can specify recursive as False to download a file
# downloading overwrite option is determined by local system, and it is MERGE_WITH_OVERWRITE
fs.download(rpath='data/fsspec/crime-spring.csv', lpath='data/download_files/, recursive=False)
# you need to specify recursive as True to download a folder
fs.download(rpath='data/fsspec_folder', lpath='data/download_folder/', recursive=True)
الأمثلة
توضح هذه الأمثلة استخدام مواصفات نظام الملفات في السيناريوهات الشائعة.
قراءة ملف CSV واحد في Pandas
يمكنك قراءة ملف CSV واحد في Pandas كما هو موضح:
import pandas as pd
df = pd.read_csv("azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>/paths/<folder>/<filename>.csv")
قراءة مجلد من ملفات CSV في Pandas
لا يدعم أسلوب Pandas read_csv()
قراءة مجلد من ملفات CSV. يجب عليك glob csv paths، وتسلسلها إلى إطار بيانات باستخدام أسلوب Pandas concat()
. يوضح نموذج التعليمات البرمجية التالي كيفية تحقيق هذا التسلسل باستخدام نظام ملفات Azure التعلم الآلي:
import pandas as pd
from azureml.fsspec import AzureMachineLearningFileSystem
# define the URI - update <> placeholders
uri = 'azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>'
# create the filesystem
fs = AzureMachineLearningFileSystem(uri)
# append csv files in folder to a list
dflist = []
for path in fs.glob('/<folder>/*.csv'):
with fs.open(path) as f:
dflist.append(pd.read_csv(f))
# concatenate data frames
df = pd.concat(dflist)
df.head()
قراءة ملفات CSV في Dask
يوضح هذا المثال كيفية قراءة ملف CSV في إطار بيانات Dask:
import dask.dd as dd
df = dd.read_csv("azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>/paths/<folder>/<filename>.csv")
df.head()
قراءة مجلد من ملفات parquet في Pandas
كجزء من عملية ETL، عادة ما تتم كتابة ملفات Parquet إلى مجلد، والذي يمكنه بعد ذلك إرسال ملفات ذات صلة ب ETL مثل التقدم والتثبيت وما إلى ذلك. يوضح هذا المثال الملفات التي تم إنشاؤها من عملية ETL (الملفات التي تبدأ ب _
) والتي تنتج بعد ذلك ملف parquet من البيانات.
في هذه السيناريوهات، ستقرأ فقط ملفات parquet في المجلد، وتتجاهل ملفات عملية ETL. يوضح نموذج التعليمات البرمجية هذا كيف يمكن لأنماط glob قراءة ملفات parquet فقط في مجلد:
import pandas as pd
from azureml.fsspec import AzureMachineLearningFileSystem
# define the URI - update <> placeholders
uri = 'azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>'
# create the filesystem
fs = AzureMachineLearningFileSystem(uri)
# append parquet files in folder to a list
dflist = []
for path in fs.glob('/<folder>/*.parquet'):
with fs.open(path) as f:
dflist.append(pd.read_parquet(f))
# concatenate data frames
df = pd.concat(dflist)
df.head()
الوصول إلى البيانات من نظام ملفات Azure Databricks (dbfs
)
تحتوي مواصفات نظام الملفات (fsspec
) على مجموعة من التطبيقات المعروفة، بما في ذلك نظام ملفات Databricks (dbfs
).
للوصول إلى البيانات التي dbfs
تحتاج إليها:
- اسم المثيل، في شكل
adb-<some-number>.<two digits>.azuredatabricks.net
. يمكنك العثور على هذه القيمة في عنوان URL لمساحة عمل Azure Databricks. - رمز الوصول الشخصي (PAT)؛ لمزيد من المعلومات حول إنشاء PAT، راجع المصادقة باستخدام رموز الوصول الشخصية ل Azure Databricks
باستخدام هذه القيم، يجب إنشاء متغير بيئة على مثيل الحساب الخاص بك للرمز المميز PAT:
export ADB_PAT=<pat_token>
يمكنك بعد ذلك الوصول إلى البيانات في Pandas كما هو موضح في هذا المثال:
import os
import pandas as pd
pat = os.getenv(ADB_PAT)
path_on_dbfs = '<absolute_path_on_dbfs>' # e.g. /folder/subfolder/file.csv
storage_options = {
'instance':'adb-<some-number>.<two digits>.azuredatabricks.net',
'token': pat
}
df = pd.read_csv(f'dbfs://{path_on_dbfs}', storage_options=storage_options)
قراءة الصور باستخدام pillow
from PIL import Image
from azureml.fsspec import AzureMachineLearningFileSystem
# define the URI - update <> placeholders
uri = 'azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>'
# create the filesystem
fs = AzureMachineLearningFileSystem(uri)
with fs.open('/<folder>/<image.jpeg>') as f:
img = Image.open(f)
img.show()
مثال على مجموعة البيانات المخصصة PyTorch
في هذا المثال، يمكنك إنشاء مجموعة بيانات مخصصة PyTorch لمعالجة الصور. نفترض وجود ملف تعليقات توضيحية (بتنسيق CSV)، مع هذه البنية الإجمالية:
image_path, label
0/image0.png, label0
0/image1.png, label0
1/image2.png, label1
1/image3.png, label1
2/image4.png, label2
2/image5.png, label2
تخزن المجلدات الفرعية هذه الصور، وفقا لتسمياتها:
/
└── 📁images
├── 📁0
│ ├── 📷image0.png
│ └── 📷image1.png
├── 📁1
│ ├── 📷image2.png
│ └── 📷image3.png
└── 📁2
├── 📷image4.png
└── 📷image5.png
يجب أن تنفذ فئة مجموعة بيانات PyTorch المخصصة ثلاث وظائف: __init__
و __len__
و __getitem__
، كما هو موضح هنا:
import os
import pandas as pd
from PIL import Image
from torch.utils.data import Dataset
class CustomImageDataset(Dataset):
def __init__(self, filesystem, annotations_file, img_dir, transform=None, target_transform=None):
self.fs = filesystem
f = filesystem.open(annotations_file)
self.img_labels = pd.read_csv(f)
f.close()
self.img_dir = img_dir
self.transform = transform
self.target_transform = target_transform
def __len__(self):
return len(self.img_labels)
def __getitem__(self, idx):
img_path = os.path.join(self.img_dir, self.img_labels.iloc[idx, 0])
f = self.fs.open(img_path)
image = Image.open(f)
f.close()
label = self.img_labels.iloc[idx, 1]
if self.transform:
image = self.transform(image)
if self.target_transform:
label = self.target_transform(label)
return image, label
يمكنك بعد ذلك إنشاء مثيل لمجموعة البيانات كما هو موضح هنا:
from azureml.fsspec import AzureMachineLearningFileSystem
from torch.utils.data import DataLoader
# define the URI - update <> placeholders
uri = 'azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>'
# create the filesystem
fs = AzureMachineLearningFileSystem(uri)
# create the dataset
training_data = CustomImageDataset(
filesystem=fs,
annotations_file='/annotations.csv',
img_dir='/<path_to_images>/'
)
# Prepare your data for training with DataLoaders
train_dataloader = DataLoader(training_data, batch_size=64, shuffle=True)
تجسيد البيانات في Pandas باستخدام mltable
المكتبة
mltable
يمكن أن تساعد المكتبة أيضا في الوصول إلى البيانات في التخزين السحابي. قراءة البيانات في Pandas مع mltable
هذا التنسيق العام:
import mltable
# define a path or folder or pattern
path = {
'file': '<supported_path>'
# alternatives
# 'folder': '<supported_path>'
# 'pattern': '<supported_path>'
}
# create an mltable from paths
tbl = mltable.from_delimited_files(paths=[path])
# alternatives
# tbl = mltable.from_parquet_files(paths=[path])
# tbl = mltable.from_json_lines_files(paths=[path])
# tbl = mltable.from_delta_lake(paths=[path])
# materialize to Pandas
df = tbl.to_pandas_dataframe()
df.head()
المسارات المدعومة
mltable
تدعم المكتبة قراءة البيانات الجدولية من أنواع مسارات مختلفة:
Location | الأمثلة |
---|---|
مسار على الكمبيوتر المحلي | ./home/username/data/my_data |
مسار على خادم http(s) عام | https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv |
مسار على Azure Storage | wasbs://<container_name>@<account_name>.blob.core.windows.net/<path> abfss://<file_system>@<account_name>.dfs.core.windows.net/<path> |
مخزن بيانات Azure التعلم الآلي طويل النماذج | azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<wsname>/datastores/<name>/paths/<path> |
إشعار
mltable
يقوم بتمرير بيانات اعتماد المستخدم للمسارات على Azure Storage ومخازن بيانات Azure التعلم الآلي. إذا لم يكن لديك إذن للوصول إلى البيانات على التخزين الأساسي، فلا يمكنك الوصول إلى البيانات.
الملفات والمجلدات والقوالب
mltable
يدعم القراءة من:
- ملف (ملفات) - على سبيل المثال:
abfss://<file_system>@<account_name>.dfs.core.windows.net/my-csv.csv
- folder(s) - على سبيل المثال
abfss://<file_system>@<account_name>.dfs.core.windows.net/my-folder/
- نمط (أنماط) glob - على سبيل المثال
abfss://<file_system>@<account_name>.dfs.core.windows.net/my-folder/*.csv
- مجموعة من الملفات والمجلدات و/أو أنماط الكآبة
mltable
تسمح المرونة بتجسيد البيانات، في إطار بيانات واحد، من مجموعة من موارد التخزين المحلية والسحابات، ومجموعات من الملفات/المجلد/globs. على سبيل المثال:
path1 = {
'file': 'abfss://filesystem@account1.dfs.core.windows.net/my-csv.csv'
}
path2 = {
'folder': './home/username/data/my_data'
}
path3 = {
'pattern': 'abfss://filesystem@account2.dfs.core.windows.net/folder/*.csv'
}
tbl = mltable.from_delimited_files(paths=[path1, path2, path3])
تنسيقات الملفات المعتمدة
mltable
يدعم تنسيقات الملفات التالية:
- نص محدد (على سبيل المثال: ملفات CSV):
mltable.from_delimited_files(paths=[path])
- Parquet:
mltable.from_parquet_files(paths=[path])
- دلتا:
mltable.from_delta_lake(paths=[path])
- تنسيق خطوط JSON:
mltable.from_json_lines_files(paths=[path])
الأمثلة
قراءة ملف CSV
قم بتحديث العناصر النائبة (<>
) في مقتطف التعليمات البرمجية هذا بتفاصيلك المحددة:
import mltable
path = {
'file': 'abfss://<filesystem>@<account>.dfs.core.windows.net/<folder>/<file_name>.csv'
}
tbl = mltable.from_delimited_files(paths=[path])
df = tbl.to_pandas_dataframe()
df.head()
قراءة ملفات parquet في مجلد
يوضح هذا المثال كيفية mltable
استخدام أنماط glob - مثل أحرف البدل - للتأكد من قراءة ملفات parquet فقط.
قم بتحديث العناصر النائبة (<>
) في مقتطف التعليمات البرمجية هذا بتفاصيلك المحددة:
import mltable
path = {
'pattern': 'abfss://<filesystem>@<account>.dfs.core.windows.net/<folder>/*.parquet'
}
tbl = mltable.from_parquet_files(paths=[path])
df = tbl.to_pandas_dataframe()
df.head()
قراءة أصول البيانات
يوضح هذا القسم كيفية الوصول إلى أصول بيانات Azure التعلم الآلي في Pandas.
أصل الجدول
إذا قمت مسبقا بإنشاء أصل جدول في Azure التعلم الآلي (أو mltable
V1TabularDataset
)، يمكنك تحميل أصل الجدول هذا في Pandas باستخدام هذه التعليمة البرمجية:
import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_asset = ml_client.data.get(name="<name_of_asset>", version="<version>")
tbl = mltable.load(f'azureml:/{data_asset.id}')
df = tbl.to_pandas_dataframe()
df.head()
أصل الملف
إذا قمت بتسجيل أصل ملف (ملف CSV، على سبيل المثال)، يمكنك قراءة هذا الأصل في إطار بيانات Pandas باستخدام هذه التعليمة البرمجية:
import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_asset = ml_client.data.get(name="<name_of_asset>", version="<version>")
path = {
'file': data_asset.path
}
tbl = mltable.from_delimited_files(paths=[path])
df = tbl.to_pandas_dataframe()
df.head()
أصل المجلد
إذا قمت بتسجيل أصل مجلد (uri_folder
أو V1 FileDataset
) - على سبيل المثال، مجلد يحتوي على ملف CSV - يمكنك قراءة هذا الأصل في إطار بيانات Pandas باستخدام هذه التعليمة البرمجية:
import mltable
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_asset = ml_client.data.get(name="<name_of_asset>", version="<version>")
path = {
'folder': data_asset.path
}
tbl = mltable.from_delimited_files(paths=[path])
df = tbl.to_pandas_dataframe()
df.head()
ملاحظة حول قراءة ومعالجة وحدات تخزين البيانات الكبيرة باستخدام Pandas
تلميح
لم يتم تصميم Pandas للتعامل مع مجموعات البيانات الكبيرة - يمكن ل Pandas معالجة البيانات التي يمكن أن تتناسب مع ذاكرة مثيل الحساب فقط.
بالنسبة لمجموعات البيانات الكبيرة، نوصي باستخدام Azure التعلم الآلي Spark المدار. يوفر هذا واجهة برمجة تطبيقات PySpark Pandas.
قد تحتاج إلى التكرار بسرعة على مجموعة فرعية أصغر من مجموعة بيانات كبيرة قبل التوسع إلى مهمة بعيدة غير متزامنة. mltable
يوفر وظائف مدمجة للحصول على عينات من البيانات الكبيرة باستخدام أسلوب take_random_sample :
import mltable
path = {
'file': 'https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv'
}
tbl = mltable.from_delimited_files(paths=[path])
# take a random 30% sample of the data
tbl = tbl.take_random_sample(probability=.3)
df = tbl.to_pandas_dataframe()
df.head()
يمكنك أيضا أخذ مجموعات فرعية من البيانات الكبيرة باستخدام هذه العمليات:
تنزيل البيانات باستخدام azcopy
الأداة المساعدة
azcopy
استخدم الأداة المساعدة لتنزيل البيانات إلى SSD المحلي لمضيفك (الجهاز المحلي، الجهاز الظاهري السحابي، Azure التعلم الآلي Compute Instance)، في نظام الملفات المحلي. azcopy
الأداة المساعدة، المثبتة مسبقا على مثيل حساب Azure التعلم الآلي، ستتعامل مع ذلك. إذا لم تستخدم مثيل حساب Azure التعلم الآلي أو Data Science Virtual Machine (DSVM)، فقد تحتاج إلى تثبيت azcopy
. راجع azcopy لمزيد من المعلومات.
تنبيه
لا نوصي بتنزيل البيانات في /home/azureuser/cloudfiles/code
الموقع على مثيل حساب. تم تصميم هذا الموقع لتخزين البيانات الاصطناعية لدفتر الملاحظات والرمز، وليس البيانات. ستتحمل قراءة البيانات من هذا الموقع حملا كبيرا في الأداء عند التدريب. بدلا من ذلك، نوصي بتخزين home/azureuser
البيانات في ، وهو SSD المحلي لعقدة الحساب.
افتح محطة طرفية وأنشئ دليلا جديدا، على سبيل المثال:
mkdir /home/azureuser/data
تسجيل الدخول إلى azcopy باستخدام:
azcopy login
بعد ذلك، يمكنك نسخ البيانات باستخدام عنوان URI للتخزين
SOURCE=https://<account_name>.blob.core.windows.net/<container>/<path>
DEST=/home/azureuser/data
azcopy cp $SOURCE $DEST