Main Content

datastore

대규모의 데이터 모음을 저장할 데이터저장소 만들기

설명

예제

ds = datastore(location)location으로 지정된 데이터의 모음으로부터 데이터저장소를 만듭니다. 데이터저장소는 너무 커서 메모리에 담을 수 없는 데이터를 모아놓은 저장 공간입니다. ds를 만든 후에는 데이터를 읽고 처리할 수 있습니다.

예제

ds = datastore(location,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 ds에 대한 추가 파라미터를 지정합니다. 예를 들면, 'Type','image'를 지정하여 이미지 파일을 저장할 데이터저장소를 만들 수 있습니다.

예제

모두 축소

샘플 파일 airlinesmall.csv에 대한 데이터저장소를 만듭니다. 이 파일에는 1987년부터 2008년까지의 항공사 데이터가 들어 있습니다.

숫자형 열에서 누락된 데이터를 가져오는 작업을 관리하려면 "TreatAsMissing""MissingValue" 이름-값 인수를 사용하십시오. "TreatAsMissing"의 값을 "NA"로 지정하고 "MissingValue"의 값을 0으로 지정하여 가져온 데이터에서 모든 경우의 "NA"를 0으로 바꿉니다.

ds = datastore("airlinesmall.csv","TreatAsMissing","NA",...
               "MissingValue",0)
ds = 
  TabularTextDatastore with properties:

                      Files: {
                             'B:\matlab\toolbox\matlab\demos\airlinesmall.csv'
                             }
                    Folders: {
                             'B:\matlab\toolbox\matlab\demos'
                             }
               FileEncoding: 'UTF-8'
   AlternateFileSystemRoots: {}
         VariableNamingRule: 'modify'
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
             DatetimeLocale: en_US

  Text Format Properties:
             NumHeaderLines: 0
                  Delimiter: ','
               RowDelimiter: '\r\n'
             TreatAsMissing: 'NA'
               MissingValue: 0

  Advanced Text Format Properties:
            TextscanFormats: {'%f', '%f', '%f' ... and 26 more}
                   TextType: 'char'
         ExponentCharacters: 'eEdD'
               CommentStyle: ''
                 Whitespace: ' \b\t'
    MultipleDelimitersAsOne: false

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
            SelectedFormats: {'%f', '%f', '%f' ... and 26 more}
                   ReadSize: 20000 rows
                 OutputType: 'table'
                   RowTimes: []

  Write-specific Properties:
     SupportedOutputFormats: ["txt"    "csv"    "xlsx"    "xls"    "parquet"    "parq"]
        DefaultOutputFormat: "txt"

datastoreTabularTextDatastore를 만듭니다.

MATLAB® 경로와 그 하위 폴더에 있는 모든 .tif 파일을 포함하는 데이터저장소를 만듭니다.

ds = datastore(fullfile(matlabroot,"toolbox","matlab"),...
"IncludeSubfolders",true,"FileExtensions",".tif","Type","image")
ds = ImageDatastore with properties:
                       Files: {
                              'H:\matlab\toolbox\matlab\demos\example.tif';
                              'H:\matlab\toolbox\matlab\imagesci\corn.tif'
                              }
                     Folders: {
                              'H:\matlab\toolbox\matlab'
                              }
    AlternateFileSystemRoots: {}
                    ReadSize: 1
                      Labels: {}
      SupportedOutputFormats: ["png"    "jpg"    "jpeg"    "tif"    "tiff"]
         DefaultOutputFormat: "png"
                     ReadFcn: @readDatastoreImage

입력 인수

모두 축소

데이터저장소에 포함할 파일 또는 폴더로, FileSet 객체, 파일 경로 또는 DsFileSet 객체로 지정됩니다.

  • FileSet 객체 — locationFileSet 객체로 지정할 수 있습니다. 위치를 FileSet 객체로 지정하면 경로나 DsFileSet 객체로 지정하는 경우보다 데이터저장소 생성 시간이 빨라집니다. 자세한 내용은 matlab.io.datastore.FileSet 항목을 참조하십시오.

  • 파일 경로 — 문자형 벡터나 string형 스칼라로 하나의 파일 경로를 지정할 수 있습니다. 여러 개의 파일 경로는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정하면 됩니다.

  • DsFileSet 객체 — DsFileSet 객체를 지정할 수 있습니다. 자세한 내용은 matlab.io.datastore.DsFileSet을 참조하십시오.

파일이나 폴더는 로컬 또는 원격이 될 수 있습니다.

  • 로컬 파일 또는 폴더 — 파일 또는 폴더의 로컬 경로를 지정합니다. 파일이 현재 폴더에 없는 경우 전체 경로나 상대 경로를 지정합니다. 지정된 폴더의 하위 폴더 내에 있는 파일은 데이터저장소에 자동으로 포함되지 않습니다. 로컬 경로를 지정할 때에는 와일드카드 문자(*)를 사용할 수 있습니다. 이 문자는 모든 일치하는 파일 또는 일치하는 폴더의 모든 파일을 데이터저장소에 포함하도록 지정합니다.

  • 원격 파일 또는 폴더 — hdfs:///path_to_file 형식의 URL(Uniform Resource Locator)을 사용하여 원격 파일 또는 폴더의 전체 경로로 지정합니다. 자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

폴더를 지정하면 데이터저장소는 지원되는 파일 형식의 파일만 포함하며 그 외 다른 형식의 파일은 무시합니다. 데이터저장소에 포함할 파일 확장자 목록을 사용자 지정하려면 FileExtensions 속성을 참조하십시오.

KeyValueDatastore의 경우, 이 파일은 mapreduce 함수에 의해 생성된 MAT 파일 또는 시퀀스 파일이어야 합니다. MAT 파일은 로컬 파일 시스템이나 네트워크 파일 시스템에 있어야 합니다. 시퀀스 파일은 로컬 파일 시스템, 네트워크 파일 시스템, HDFS™ 파일 시스템 중 하나에 있을 수 있습니다. DatabaseDatastore의 위치 인수는 파일일 필요가 없습니다. 자세한 내용은 DatabaseDatastore (Database Toolbox)를 참조하십시오.

예: 'file1.csv'

예: '../dir/data/file1.jpg'

예: {'C:\dir\data\file1.xls','C:\dir\data\file2.xlsx'}

예: 'C:\dir\data\*.mat'

예: 'hdfs:///data/file1.txt'

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'FileExtensions',{'.jpg','.tif'}ImageDatastore 객체에 대한 .jpg 또는 .tif 확장자를 갖는 모든 확장자를 포함합니다.

데이터저장소 유형으로, 'Type'과 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

'Type'의 값설명
'tabulartext'테이블 형식 데이터를 포함하는 텍스트 파일입니다. 데이터의 인코딩은 ASCII 또는 UTF-8이어야 합니다.
'image'JPEG나 PNG와 같은 형식의 이미지 파일입니다. 허용되는 파일에는 imformats 형식이 포함됩니다.
'spreadsheet'하나 이상의 시트를 포함하는 스프레드시트 파일입니다.
'keyvalue'mapreduce에서 생성된 데이터와 함께 MAT 파일이나 시퀀스 파일에 포함된 키-값 쌍 데이터입니다.
'file'사용자 지정 형식 파일로, 데이터를 읽기 위해서는 읽기 함수가 지정되어야 합니다. 자세한 내용은 FileDatastore를 참조하십시오.
'tall'tall 데이터형의 write 함수에 의해 생성된 MAT 파일 또는 시퀀스 파일입니다. 자세한 내용은 TallDatastore를 참조하십시오.
'parquet'열 방향 데이터를 포함하는 Parquet 파일. 자세한 내용은 ParquetDatastore를 참조하십시오.
'database'데이터베이스에 저장된 데이터입니다. Database Toolbox™가 필요합니다. type 파라미터를 사용할 경우 추가 입력 인수의 사양이 필요합니다. 자세한 내용은 DatabaseDatastore (Database Toolbox)를 참조하십시오.
  • 파일 여러 개의 형식을 지원하기 위하여 데이터저장소 유형을 여러 개 지정해야 할 경우에는 'Type' 인수를 사용하여 데이터저장소 유형을 지정해야 합니다.

  • 'Type'의 값을 지정하지 않으면 datastore가 파일의 확장자를 기반으로, 생성할 데이터저장소의 적합한 유형을 자동으로 지정합니다.

데이터형: char | string

폴더 내에 있는 하위 폴더 포함 여부로, 'IncludeSubfolders'와 함께 true(1)나 false(0)가 쉼표로 구분되어 지정됩니다. 각 폴더 내에 있는 모든 파일과 하위 폴더를 포함하려면 true를 지정하고, 각 폴더 내에 있는 파일만 포함하려면 false를 지정하십시오.

'IncludeSubfolders'를 지정하지 않으면 디폴트 값 false로 지정됩니다.

'IncludeSubfolders' 이름-값 쌍은 다음 객체를 생성하는 경우에만 유효합니다.

  • TabularTextDatastore

  • ImageDatastore

  • SpreadsheetDatastore

  • FileDatastore

  • KeyValueDatastore

  • ParquetDatastore

예: 'IncludeSubfolders',true

데이터형: logical | double

파일의 확장자로, 'FileExtensions'와 함께 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 스칼라 또는 string형 배열이 쉼표로 구분되어 지정됩니다. 'FileExtensions'를 지정할 때에는 'Type'도 지정해야 합니다. 빈 따옴표 ''를 사용하면 확장자 없이 파일을 나타낼 수 있습니다.

'FileExtensions'가 지정되지 않으면 datastore가 데이터저장소 유형에 따라 모든 지원되는 파일 확장자를 자동으로 포함시킵니다. 지원되지 않는 확장자를 포함시키려면 포함시킬 확장자를 개별적으로 지정해야 합니다.

  • TabularTextDatastore 객체에 대해 지원되는 확장자에는 .txt, .csv, .dat, .dlm, .asc, .text가 포함되며, 확장자가 없는 경우도 지원됩니다.

  • ImageDatastore 객체에 대해 지원되는 확장자에는 모든 imformats 확장자가 포함됩니다.

  • SpreadsheetDatastore 객체에 대해 지원되는 확장자에는 .xls, .xlsx, .xlsm, .xltx, .xltm이 포함됩니다.

  • TallDatastore 객체에 대해 지원되는 확장자에는 .mat.seq가 포함됩니다.

  • ParquetDatastore 객체에 대해 지원되는 확장자에는 .parquet.parq가 포함됩니다.

'FileExtensions' 이름-값 쌍은 다음 객체를 생성하는 경우에만 유효합니다.

  • TabularTextDatastore

  • ImageDatastore

  • SpreadsheetDatastore

  • FileDatastore

  • KeyValueDatastore

  • ParquetDatastore

예: 'FileExtensions','.jpg'

예: 'FileExtensions',{'.txt','.text'}

데이터형: char | cell | string

파일 시스템 루트 경로의 대체 경로로, "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

텍스트 변수의 출력 데이터형으로, 'TextType'과 함께 'char'이나 'string'이 쉼표로 구분되어 지정됩니다. read, readall, preview 함수 중 하나의 출력 테이블에 텍스트 변수가 포함된 경우 'TextType'TabularTextDatastore 객체와 SpreadsheetDatastore 객체에 대해서만 이러한 변수의 데이터형을 지정합니다. 'TextType''char'인 경우 출력값은 문자형 벡터로 구성된 셀형 배열입니다. 'TextType''string'인 경우 출력값은 string형입니다.

데이터형: char | string

가져오는 날짜/시간 데이터의 유형으로, 'DatetimeType'과 함께 'datetime'이나 'text' 값 중 하나가 쉼표로 구분되어 지정됩니다. 'DatetimeType' 인수는 TabularTextDatastore 객체를 만들 때에만 적용됩니다.

가져오는 날짜/시간 데이터의 유형
'datetime'

MATLAB datetime 데이터형

자세한 내용은 datetime을 참조하십시오.

'text'

'DatetimeType''text'로 지정된 경우, 가져오는 날짜/시간 데이터의 유형은 'TextType' 파라미터에 지정된 값에 따라 달라집니다.

  • 'TextType''char'인 경우 datastore는 날짜를 문자형 벡터로 구성된 셀형 배열로 반환합니다.

  • 'TextType''string'인 경우 datastore는 날짜를 string형 배열로 반환합니다.

예: 'DatetimeType','datetime'

데이터형: char | string

텍스트 파일의 지속 시간 데이터의 출력 데이터형으로, 'DurationType'과 함께 'duration'이나 'text'가 쉼표로 구분되어 지정됩니다.

가져온 지속 시간 데이터의 유형
'duration'

MATLAB duration 데이터형

자세한 내용은 duration을 참조하십시오.

'text'

'DurationType''text'로 지정된 경우, 가져온 지속 시간 데이터의 유형은 'TextType' 파라미터에 지정된 값에 따라 달라집니다.

  • 'TextType''char'인 경우 가져오기 함수는 지속 시간 데이터를 문자형 벡터로 구성된 셀형 배열로 반환합니다.

  • 'TextType''string'인 경우 가져오기 함수는 duration형 데이터를 string형 배열로 반환합니다.

데이터형: char | string | datetime

변수 이름을 유지할지 지정하는 플래그로, "modify" 또는 "preserve" 중 하나로 지정됩니다.

  • "modify" — 유효하지 않은 변수 이름(유효 여부는 isvarname 함수의 판정에 따름)을 유효한 MATLAB 식별자로 변환합니다.

  • "preserve" — 공백과 비ASCII 문자가 포함된 변수 이름과 같이 MATLAB 식별자로 유효하지 않은 변수 이름을 그대로 유지합니다.

R2019b부터 변수 이름과 행 이름에 공백, 비ASCII 문자 등 모든 문자를 사용할 수 있습니다. 또한 영문자뿐만 아니라 어떤 문자로도 시작할 수 있습니다. 변수 이름과 행 이름은 유효한 MATLAB 식별자(유효 여부는 isvarname 함수의 판정에 따름)가 아니어도 됩니다. 변수 이름과 행 이름을 그대로 유지하려면 VariableNamingRule의 값을 "preserve"로 설정하십시오. VariableNamingRule의 값이 "modify"에서 "preserve"로 변경될 때 변수 이름은 새로 고쳐지지 않습니다.

데이터형: char | string

이 이름-값 쌍 외에도, 다음 객체의 모든 속성(단, Files 속성은 제외)을 이름-값 쌍으로 지정할 수 있습니다.

출력 인수

모두 축소

데이터 모음에 대한 데이터저장소로, TabularTextDatastore, ImageDatastore, SpreadsheetDatastore, KeyValueDatastore, FileDatastore, TallDatastore, ParquetDatastore, DatabaseDatastore 객체 중 하나로 반환됩니다. 데이터저장소의 유형은 파일 형식이나 location 인수에 따라 달라집니다. 자세한 내용을 보려면 다음 표에서 데이터저장소 이름을 클릭하십시오.

유형 출력값
텍스트 파일TabularTextDatastore
이미지 파일ImageDatastore
스프레드시트 파일SpreadsheetDatastore
mapreduce에 의해 생성된 MAT 파일 또는 시퀀스 파일KeyValueDatastore
사용자 지정 형식 파일FileDatastore
tall 데이터형의 write 함수에 의해 생성된 MAT 파일 또는 시퀀스 파일입니다. TallDatastore
Parquet 파일ParquetDatastore
데이터베이스DatabaseDatastore (Database Toolbox)

이러한 데이터저장소 유형 각각에 대한 Files 속성은 문자형 벡터로 구성된 셀형 배열입니다. 각각의 문자형 벡터는 location 인수로 확인된 파일의 절대 경로입니다.

버전 내역

R2014b에 개발됨