ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

異なるマシンまたはクラスターで処理するためのデータ ストアの設定

データ ストアの 'AlternateFileSystemRoots' プロパティを設定することで、別のプラットフォーム上に読み込まれ、シームレスに動作するデータ ストアを作成および保存できます。このプロパティは次の場合に使用します。

  • データ ストアをローカル マシン上で作成し、そのデータに対し別のマシン上 (異なるオペレーティング システムが実行されている可能性あり) でアクセスし処理を行う必要がある。

  • 異なるプラットフォーム、クラウド、またはクラスター マシンを伴う並列および分散計算を使用してデータ ストアを処理する。

この例では、TabularTextDatastore'AlternateFileSystemRoots' プロパティを使用する方法を示します。ただし、SpreadsheetDatastoreImageDatastoreParquetDatastoreFileDatastoreKeyValueDatastore、および TallDatastore のいずれのデータ ストアでも同じ構文を使用できます。カスタム データ ストアの 'AlternateFileSystemRoots' 機能を使用するには、matlab.io.datastore.DsFileSet およびカスタム データ ストアの開発を参照してください。

データ ストアの保存および異なるファイル システム プラットフォームへの読み込み

別のマシン (オペレーティング システムが異なる可能性あり) に読み込まれ、シームレスに動作するデータ ストアを 1 つのファイル システム上に作成します。たとえば、Windows® マシン上でデータ ストアを作成し、それを保存して、次に Linux® マシン上に読み込みます。

データ ストアを作成および保存する前に、まず別のプラットフォーム上でのデータのルート パスを特定します。ルート パスはマシンまたはファイル システムによって異なります。たとえば、ローカル マシン上にデータがあり、クラスター上にそのデータのコピーがある場合、データにアクセスするためのルート パスを取得します。

  • ローカル Windows マシンの場合、"Z:\DataSet"

  • Linux クラスターの場合、"/nfs-bldg001/DataSet"

次に、データ ストアの 'AlternateFileSystemRoots' パラメーターを使用してこれらのルート パスを関連付けます。

altRoots = ["Z:\DataSet","/nfs-bldg001/DataSet"];
ds = tabularTextDatastore('Z:\DataSet','AlternateFileSystemRoots',altRoots);

データ ストアの Files プロパティを確認します。この場合、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
データ ストアを Linux プラットフォームに読み込み、Files プロパティを確認します。ルート パス 'Z:\DataSet' は Linux クラスター上でアクセスできないため、読み込みに際して、データ ストア関数は 'AlternateFileSystemRoots' パラメーターで指定された値に基づいてルート パスを自動的に更新します。これにより、データ ストアの Files プロパティには Linux クラスター上のデータの更新されたルート パスが含まれるようになります。
load ds_saved_on_Windows.mat
ds.Files
ans =

  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'}
これで、Linux マシン上でこのデータ ストアを処理および解析できます。

並列および分散計算を使用したデータ ストアの処理

異なるプラットフォーム、クラウド、またはクラスター マシンを伴う並列および分散計算を使用してデータ ストアを処理するには、'AlternateFileSystemRoots' パラメーターを事前定義しなければなりません。この例では、ローカル マシン上にデータ ストアを作成し、データのごく一部を解析し、そのうえで Parallel Computing Toolbox™ および MATLAB® Parallel Server™ を使用して解析をデータセット全体にスケールアップする方法を示します。

データ ストアを作成し、値を 'AlternateFileSystemRoots' プロパティに代入します。'AlternateFileSystemRoots' プロパティの値を設定するには、異なるプラットフォーム上でのデータのルート パスを特定します。ルート パスはマシンまたはファイル システムによって異なります。たとえば、使用しているマシンおよびクラスターからデータ アクセスするためのルート パスを特定します。

  • ローカル Windows マシンからの場合、"Z:\DataSet"

  • MATLAB Parallel Server Linux クラスターからの "/nfs-bldg001/DataSet"

次に、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)

参考

| | | | | |

関連するトピック