Main Content

KeyValueDatastore

mapreduce에 사용할 키-값 쌍 데이터의 데이터저장소

설명

KeyValueDatastore 객체는 mapreduce의 출력값이거나 입력값인 키-값 쌍 데이터가 포함된 파일과 연결됩니다. KeyValueDatastore 속성을 사용하여 데이터에 액세스하는 방법을 지정할 수 있습니다. 다음과 같이 점 표기법을 사용하여 KeyValueDatastore 객체의 특정 속성을 보거나 수정할 수 있습니다.

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

datastore 함수를 사용하여 데이터저장소를 만들 때 이름-값 인수의 인수를 사용하여 KeyValueDatastore 속성의 값을 지정할 수도 있습니다.

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

생성

datastore 함수를 사용하여 KeyValueDatastore 객체를 만듭니다.

속성

모두 확장

데이터저장소에 포함된 파일로, 문자형 벡터로 구성된 n×1 셀형 배열 또는 string형 배열로 지정됩니다. 여기서 각 문자형 벡터 또는 string형은 파일의 전체 경로입니다. 이러한 파일은 datastore 함수에 대한 location 인수에 의해 정의된 파일입니다. location 인수는 로컬 파일 시스템, 네트워크 파일 시스템 또는 지원되는 원격 위치(예: Amazon S3™, Windows Azure® Blob Storage, HDFS™ 등)에 있는 파일에 대한 전체 경로를 포함합니다. 자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

이 파일은 mapreduce 함수에 의해 생성된 MAT 파일 또는 시퀀스 파일이어야 합니다.

예: ["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"로 지정됩니다. 기본적으로 Hadoop®에 대해 실행되는 mapreduce의 출력값은 시퀀스 파일이 포함된 데이터저장소입니다. 기본적으로 다른 모든 mapreduce 연산의 출력값은 MAT 파일이 포함된 데이터저장소입니다.

데이터형: cell | string

read 함수 또는 preview 함수의 호출에서 읽을 키-값 쌍의 최대 개수로, 양의 정수로 지정됩니다.

파일 시스템 루트 경로의 대체 경로로, "AlternateFileSystemRoots"와 함께 string형 벡터 또는 셀형 배열로 구성된 이름-값 인수로 지정됩니다. 로컬 컴퓨터에 데이터저장소를 만들지만 다른 컴퓨터(다른 운영 체제의 컴퓨터일 수 있음)의 데이터에 액세스하고 이를 처리해야 하는 경우 "AlternateFileSystemRoots"를 사용합니다. 또한 Parallel Computing Toolbox™와 MATLAB® Parallel Server™를 사용하여 데이터를 처리하고, 처리한 데이터를 다른 플랫폼 클라우드 또는 다른 클러스터 컴퓨터에 있는 데이터의 복사본과 함께 로컬 컴퓨터에 저장할 경우 "AlternateFileSystemRoots"를 사용하여 루트 경로를 연결해야 합니다.

  • 실질적으로 서로 동일한 루트 경로들의 집합을 연결하려면 "AlternateFileSystemRoots"를 string형 벡터로 지정하십시오. 예를 들면 다음과 같습니다.

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

  • 데이터저장소에 대한 실질적으로 동일한 여러 루트 경로의 집합을 여러 개 연결하려면 "AlternateFileSystemRoots"를 여러 행이 포함된 셀형 배열로 지정하십시오. 여기서 각 행은 실질적으로 동일한 루트 경로들의 집합 하나를 나타냅니다. 셀형 배열의 각 행을 string형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정합니다. 예를 들면 다음과 같습니다.

    • "AlternateFileSystemRoots"를 string형 벡터로 구성된 셀형 배열로 지정합니다.

      {["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여러 데이터저장소의 데이터 결합
isPartitionableDetermine whether datastore is partitionable
isSubsettableDetermine whether datastore is subsettable
isShuffleableDetermine whether datastore is shuffleable

예제

모두 축소

샘플 파일 mapredout.mat에서 데이터저장소를 만듭니다. 이 파일은 mapreduce 함수의 출력 파일입니다.

fs = matlab.io.datastore.FileSet("mapredout.mat");
ds = datastore(fs,"type","keyvalue")
ds = KeyValueDatastore with properties:
                       Files: {
                              '...\matlab\toolbox\matlab\demos\mapredout.mat'
                              }
                    ReadSize: 1 key-value pairs
                    FileType: 'mat'
    AlternateFileSystemRoots: {}

ReadSize 속성을 8로 설정하여 read를 호출할 때마다 최대 8개의 키-값 쌍을 읽도록 합니다.

ds.ReadSize = 8
ds = KeyValueDatastore with properties:
                       Files: {
                              '...\matlab\toolbox\matlab\demos\mapredout.mat'
                              }
                    ReadSize: 8 key-value pairs
                    FileType: 'mat'
    AlternateFileSystemRoots: {}

while 루프에서 read 함수를 사용하여 한 번에 8개의 키-값 쌍을 읽어 들입니다. 이 루프는 더 이상 읽어 들일 데이터가 없고 hasdata(ds)false를 반환할 때까지 실행됩니다.

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

마지막으로 읽어 들인 키-값 쌍의 세트를 표시합니다.

T
T=5×2 table
     Key       Value  
    ______    ________

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

제한 사항

  • KeyValueDatastore는 R2013b에서 작성된 시퀀스 파일을 지원하지 않습니다. R2014a와 R2018a 사이의 MATLAB 버전을 사용하여 시퀀스 파일을 다시 작성하십시오.

버전 내역

R2014b에 개발됨