exponenta event banner

KeyValueDatastore

Хранилище данных для данных пары ключ-значение для использования с mapreduce

Описание

KeyValueDatastore объекты связаны с файлами, содержащими данные пары ключ-значение, которые являются выходами или входами mapreduce. Используйте KeyValueDatastore для указания способа доступа к данным. Использование точечной нотации для просмотра или изменения определенного свойства KeyValueDatastore объект:

ds = datastore('mapredout.mat');
ds.ReadSize = 20;

Также можно указать значение KeyValueDatastore свойства с использованием аргументов пары имя-значение при создании хранилища данных с помощью datastore функция:

ds = datastore('mapredout.mat','ReadSize',20);

Создание

Создать KeyValueDatastore с использованием datastore функция.

Свойства

развернуть все

Файлы, включенные в хранилище данных, указанные как n-by-1 - массив ячеек символьных векторов или строкового массива, где каждый символьный вектор или строка является полным путем к файлу. Это файлы, определенные location аргумент для datastore функция. location аргумент содержит полные пути к файлам в локальной файловой системе, сетевой файловой системе или поддерживаемом удаленном расположении, например Amazon S3™, Windows Azure ® Blob Storage и HDFS™. Дополнительные сведения см. в разделе Работа с удаленными данными.

Файлы должны быть MAT-файлами или файлами последовательности, созданными mapreduce функция.

Пример: {'C:\dir\data\file1.mat';'C:\dir\data\file2.mat'}

Пример: {'s3://bucketname/path_to_files/your_file01.mat';'s3://bucketname/path_to_files/your_file02.mat'}

Типы данных: cell | string

Тип файла, указанный как 'mat' для файлов MAT или 'seq' для файлов последовательности. По умолчанию выходные данные mapreduce работает с Hadoop ® является хранилищем данных, содержащим файлы последовательности. По умолчанию выходные данные всех остальныхmapreduce операции - это хранилище данных, содержащее MAT-файлы.

Типы данных: cell | string

Максимальное количество пар ключ-значение для чтения при вызове read или preview функции, указанные как положительное целое число.

Альтернативные корневые пути файловой системы, указанные как разделенная запятыми пара, состоящая из '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' должны удовлетворять следующим условиям:

  • Содержит одну или несколько строк, где каждая строка указывает набор эквивалентных корневых путей.

  • Каждая строка указывает несколько корневых путей, и каждый корневой путь должен содержать не менее двух символов.

  • Корневые пути уникальны и не являются подпапками друг друга.

  • Содержит по крайней мере одну запись корневого пути, указывающую на расположение файлов.

Дополнительные сведения см. в разделе Настройка хранилища данных для обработки на различных машинах или кластерах.

Пример: ["Z:\datasets","/mynetwork/datasets"]

Типы данных: string | cell

Функции объекта

hasdataОпределение доступности данных для чтения
numpartitionsКоличество разделов хранилища данных
partitionРазделение хранилища данных
previewПредварительный просмотр подмножества данных в хранилище данных
readСчитывание данных в хранилище данных
readallСчитывание всех данных в хранилище данных
resetСброс хранилища данных в исходное состояние
transformПреобразовать хранилище данных
combineОбъединение данных из нескольких хранилищ данных
isPartitionableОпределение возможности разделения хранилища данных
isShuffleableОпределение возможности тасования хранилища данных

Примеры

свернуть все

Создайте хранилище данных из файла образца, mapredout.mat, который является выходным файлом mapreduce функция.

ds = datastore('mapredout.mat')
ds = 

  KeyValueDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\demos\mapredout.mat'
              }
    ReadSize: 1 key-value pairs
    FileType: 'mat'

Установите ReadSize свойство для 8 чтобы каждый звонок для чтения считывался максимум 8 пары ключ-значение.

ds.ReadSize = 8
ds = 

  KeyValueDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\demos\mapredout.mat'
              }
    ReadSize: 8 key-value pairs
    FileType: 'mat'

Считывайте 8 пар ключ-значение одновременно с помощью read функция в while цикл. Цикл выполняется до тех пор, пока нет данных, доступных для чтения и hasdata(ds) прибыль false.

while hasdata(ds)
    T = read(ds);
end

Показать последний набор прочитанных пар ключ-значение.

T
T = 

    Key     Value 
    ____    ______

    'OO'    [3090]
    'TZ'    [ 216]
    'XE'    [2357]
    '9E'    [ 521]
    'YV'    [ 849]

Ограничения

  • KeyValueDatastore не поддерживает файлы последовательности, написанные в R2013b. Перепишите файлы последовательности с использованием версии MATLAB между R2014a и R2018a.

Представлен в R2014b