Main Content

TallDatastore

用于存放 tall 数组的检查点的数据存储

说明

TallDatastore 对象用于根据由 write 函数写入磁盘的二进制文件重新创建 tall 数组。您可以使用该对象重新创建原始 tall 数组,也可以通过指定 TallDataStore 属性和使用对象函数访问和管理数据。

创建对象

使用 datastore 函数创建 TallDatastore 对象。例如,tds = datastore(location,"Type","tall") 根据 location 指定的文件集合创建一个数据存储。

属性

全部展开

包含在数据存储中的文件,解析为字符向量、字符向量元胞数组、字符串标量或字符串数组,其中每个字符向量或字符串表示文件的一个完整路径。

datastore 函数的 location 参数定义创建数据存储时的 Files 属性。location 参数包含本地文件系统、网络文件系统或支持的远程位置(例如 Amazon S3™、Windows Azure® Blob 存储和 HDFS™)上文件的完整路径。有关详细信息,请参阅处理远程数据

这些文件必须是 write 函数生成的 MAT 文件或序列文件。

示例: ["C:\dir\data\file1.ext";"C:\dir\data\file2.ext"]

示例: ["s3://bucketname/path_to_files/your_file01.ext";"s3://bucketname/path_to_files/your_file02.ext"]

数据类型: char | cell | string

文件类型,指定为 "mat"(对于 MAT 文件)或 "seq"(对于序列文件)。默认情况下,给定位置中的文件的类型决定 FileType

数据类型: char | string

调用 readpreview 函数时要读取的数据行的最大数量,指定为正整数。当 datastore 函数创建 TallDatastore 时,它会为 ReadSize 确定并分配尽可能最佳的值。

备用文件系统根路径,以名称-值参数形式指定,其中包含 "AlternateFileSystemRoots" 和一个字符串向量或元胞数组。当您在本地计算机上创建数据存储,但需要访问和处理另一台计算机(可能是不同操作系统)上的数据时,请使用 "AlternateFileSystemRoots"。此外,如果您使用 Parallel Computing Toolbox™ 和 MATLAB® Parallel Server™ 处理数据,而数据存储在本地计算机上并且在不同平台云或集群计算机上存储数据副本,则必须使用 "AlternateFileSystemRoots" 关联根路径。

  • 要关联一组等效的根路径,请将 "AlternateFileSystemRoots" 指定为字符串向量。例如,

    ["Z:\datasets","/mynetwork/datasets"]

  • 要将在数据存储方面等效的多组根路径关联起来,请将 "AlternateFileSystemRoots" 指定为包含多个行的元胞数组,其中每一行代表一组等效的根路径。将元胞数组中的每一行指定为一个字符串向量或字符向量元胞数组。例如:

    • "AlternateFileSystemRoots" 指定为字符串向量元胞数组。

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • 也可以将 "AlternateFileSystemRoots" 指定为字符向量元胞数组。

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

"AlternateFileSystemRoots" 的值必须满足以下条件:

  • 包含一行或多行,每一行指定一组等效的根路径。

  • 每一行指定多个根路径,每个根路径必须至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关详细信息,请参阅Set Up Datastore for Processing on Different Machines or Clusters

示例: ["Z:\datasets","/mynetwork/datasets"]

数据类型: string | cell

对象函数

hasdata确定是否有数据可读取
numpartitions数据存储分区数
partition划分数据存储
preview预览数据存储中的数据子集
read读取数据存储中的数据
readall读取数据存储中的所有数据
reset将数据存储重置为初始状态
transform变换数据存储
combine合并来自多个数据存储的数据
isPartitionable确定数据存储是否可分区
isSubsettableDetermine whether datastore is subsettable
isShuffleable确定数据存储是否可乱序

示例

全部折叠

使用 TallDatastore 对象直接根据磁盘上的文件重新构造 tall 数组,而不是重新执行生成 tall 数组的所有命令。创建 tall 数组,并使用 write 函数将其保存到磁盘。使用 datastore 检索 tall 数组,然后将其重新转换为 tall

创建简单的 tall 双精度值。

t = tall(rand(500,1))
t =

  500×1 tall double column vector

    0.8147
    0.9058
    0.1270
    0.9134
    0.6324
    0.0975
    0.2785
    0.5469
      :
      :

将结果保存到名为 Example_Folder 的新文件夹。

location = fullfile(matlabroot,"toolbox","matlab","demos","Folder1");
write(location, t);
Writing tall data to folder H:\matlab\toolbox\matlab\demos\Folder1
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.063 sec
Evaluation completed in 0.16 sec

要恢复写入磁盘的 tall 数组,请首先创建引用同一目录的新数据存储。然后将数据存储转换为 tall 数组。

tds = datastore(location);
t1 = tall(tds)
t1 =

  M×1 tall double column vector

    0.8147
    0.9058
    0.1270
    0.9134
    0.6324
    0.0975
    0.2785
    0.5469
      :
      :

版本历史记录

在 R2016b 中推出