Можно создать и сохранить datastore на платформе, которая плавно загружается и работает на другой платформе, настраивая 'AlternateFileSystemRoots' свойство datastore. Используйте это свойство, когда:
Вы создаете datastore на локальной машине, и вам нужно получить доступ и обработать данные на другой машине (возможно, под управлением другой операционной системы).
Вы обрабатываете свой datastore с помощью параллельных и распределенных вычислений с участием других платформ, облачных или кластерных машин.
Этот пример демонстрирует использование 'AlternateFileSystemRoots' свойство для TabularTextDatastore. Однако можно использовать тот же синтаксис для любого из этих хранилищ данных: SpreadsheetDatastore, ImageDatastore, ParquetDatastore, FileDatastore, KeyValueDatastore, и TallDatastore. Как использовать 'AlternateFileSystemRoots' функциональность для пользовательских хранилищ данных смотрите matlab.io.datastore.DsFileSet и Разрабатывайте Пользовательские Datastore.
Создайте datastore в одной файловой системе, которая плавно загружается и работает на другой машине (возможно, другой операционной системы). Для примера создайте datastore в Windows® компьютер, сохраните его, а затем загрузите на Linux® машина.
Во-первых, перед созданием и сохранением datastore идентифицируйте корневые пути для данных на других платформах. Корневые пути будут отличаться в зависимости от компьютера или файловой системы. Например, если у вас есть данные на локальном компьютере и копия данных на кластере, получите корневые пути для доступа к данным:
"Z:\DataSet" для локального компьютера Windows.
"/nfs-bldg001/DataSet" для вашего кластера Linux.
Затем связайте эти корневые пути с помощью 'AlternateFileSystemRoots' параметр datastore.
altRoots = ["Z:\DataSet","/nfs-bldg001/DataSet"]; ds = tabularTextDatastore('Z:\DataSet','AlternateFileSystemRoots',altRoots);
Исследуйте Files свойство datastore. В данном случае Files свойство содержит расположение данных, доступных для компьютера с Windows.
ds.Files
ans =
5×1 cell array
{'Z:\DataSet\datafile01.csv'}
{'Z:\DataSet\datafile02.csv'}
{'Z:\DataSet\datafile03.csv'}
{'Z:\DataSet\datafile04.csv'}
{'Z:\DataSet\datafile05.csv'}save ds_saved_on_Windows.mat ds
Files свойство. Начиная с корневого пути 'Z:\DataSet' недоступен в кластере Linux, во время загрузки функция datastore автоматически обновляет корневые пути на основе значений, заданных в 'AlternateFileSystemRoots' параметр. The Files свойство datastore теперь содержит обновленные корневые пути для данных в кластере Linux.load ds_saved_on_Windows.mat
ds.Filesans =
5×1 cell array
{'/nfs-bldg001/DataSet/datafile01.csv'}
{'/nfs-bldg001/DataSet/datafile02.csv'}
{'/nfs-bldg001/DataSet/datafile03.csv'}
{'/nfs-bldg001/DataSet/datafile04.csv'}
{'/nfs-bldg001/DataSet/datafile05.csv'}Чтобы обработать свой datastore с помощью параллельных и распределенных вычислений, которые включают другие платформы, облачные или кластерные машины, вы должны предопределить 'AlternateFileSystemRoots' параметр. Этот пример демонстрирует, как создать datastore на локальной машине, проанализировать небольшой фрагмент данных, а затем использовать Parallel Computing Toolbox™ и MATLAB® Parallel Server™ для масштабирования анализа на набор данных в целом.
Создайте datastore и присвойте значение 'AlternateFileSystemRoots' свойство. Чтобы задать значение для 'AlternateFileSystemRoots' идентифицируйте корневые пути для данных на других платформах. Корневые пути различаются в зависимости от машины или файловой системы. Например, идентифицируйте корневые пути для доступа к данным с вашей машины и вашего кластера:
"Z:\DataSet" с локальной машины Windows.
"/nfs-bldg001/DataSet" из кластера MATLAB Parallel Server Linux.
Затем связайте эти корневые пути с помощью AlternateFileSystemRoots свойство.
altRoots = ["Z:\DataSet","/nfs-bldg001/DataSet"]; ds = tabularTextDatastore('Z:\DataSet','AlternateFileSystemRoots',altRoots);
Анализируйте небольшой фрагмент данных на локальной машине. Например, получите секционированный подмножество данных, очистите данные, удалив отсутствующие записи, и исследуйте график переменных.
tt = tall(partition(ds,100,1));
summary(tt);
% analyze your data
tt = rmmissing(tt);
plot(tt.MyVar1,tt.MyVar2)
Масштабируйте анализ на набор данных в целом с помощью кластера MATLAB Parallel Server (кластер Linux). Например, запустите пул рабочих процессов с помощью профиля кластера, а затем выполните анализ набора данных в целом с помощью возможностей параллельных и распределенных вычислений.
parpool('MyMjsProfile') tt = tall(ds); summary(tt); % analyze your data tt = rmmissing(tt); plot(tt.MyVar1,tt.MyVar2)
datastore | FileDatastore | ImageDatastore | KeyValueDatastore | SpreadsheetDatastore | TabularTextDatastore | TallDatastore