본문 바로가기

MATLAB/ㄴ 기타

32. 데이터저장소 시작하기

 

1) 데이터저장소란?

데이터저장소는 하나의 파일, 또는 여러 파일이나 데이터의 모음을 읽기 위한 객체입니다.

데이터저장소는 구조와 형식이 같은 데이터에 대한 저장 공간 역할을 합니다.

예를 들어, 데이터저장소의 각 파일에는 같은 유형(예: 숫자형 또는 텍스트)의 데이터가 있어야 하며,

이러한 데이터는 동일한 순서로 나타나고 동일한 구분 기호로 구분됩니다.

 

 

데이터저장소는 다음과 같은 경우에 유용합니다.
    * 데이터 모음에 있는 각 파일의 크기가 너무 커서 메모리에 담을 수 없는 경우.

       데이터저장소에서는 각 파일의 데이터를 메모리에 맞는 더 작은 크기로 읽고 분석할 수 있습니다.
    * 데이터 모음에 있는 파일의 이름이 무작위인 경우.

       데이터저장소는 하나 이상의 폴더에 있는 파일에 대한 저장 공간 역할을 합니다.

       파일 이름은 순차적일 필요가 없습니다.
     * 데이터 또는 응용 프로그램의 유형을 기반으로 데이터저장소를 만들 수 있습니다.

       각 데이터저장소 유형에는 지원되는 데이터 유형에 맞는 속성이 들어 있습니다.

       MATLAB 데이터저장소 목록에 대한 일례는 다음 표를 참조하십시오. 

 


 

2) 데이터저장소를 만들고 데이터저장소에서 읽어오기

tabularTextDatastore 함수를 사용하여

각 항공편의 출발/도착 정보가 들어 있는 파일 airlinesmall.csv에서 데이터저장소를 만듭니다. 

TabularTextDatastore 객체가 반환됩니다.

 

데이터저장소를 만든 후에는 데이터를 전부 메모리에 불러오지 않고도 데이터를 미리 볼 수 있습니다. 

SelectedVariableNames 속성으로 원하는 변수(열)를 지정하여 해당 변수만 미리 보거나 읽어올 수 있습니다.

 

 

TreatAsMissing 속성을 지정해서 데이터에서 누락된 값을 나타내는 값을 지정할 수 있습니다. 

airlinesmall.csv에서 누락된 값은 NA로 표시됩니다.

 

원하는 변수에 대한 데이터저장소의 모든 데이터가 메모리에 담기면 

readall 함수를 사용하여 데이터를 읽어올 수 있습니다.

 

그렇지 않으면, read 함수를 사용하여 메모리에 담을 수 있는 더 작은 부분을 데이터를 읽으십시오.

기본적으로, read 함수는 TabularTextDatastore에서 한 번에 20,000개 행을 읽어옵니다.

그러나, 이 값은 새 값을 ReadSize 속성에 할당하여 변경할 수 있습니다.

 

다시 읽어오려면 먼저 reset 함수를 사용하여 데이터저장소를 초기 상태로 재설정하십시오. 

while 루프 내에서 read 함수를 호출하여, 데이터의 각 부분에 대해 중간 계산을 수행한 후

이 중간 결과를 마지막에 집계할 수 있습니다.

다음 코드는 DepDelay 변수의 최댓값을 계산합니다.

 

각 개별 파일의 데이터가 메모리에 담겨진다면 

read 함수를 호출할 때마다 특정 개수의 행이 아니라 한 파일 전체를 읽어오도록 지정할 수 있습니다.

데이터저장소의 데이터 중 일부를 읽어오는 것 외에도, 

mapreduce 함수를 사용하여 데이터저장소에 map 함수와 reduce 함수를 적용하거나 tall을 사용하여

tall형 배열을 생성할 수 있습니다.

 


 

https://kr.mathworks.com/help/matlab/import_export/what-is-a-datastore.html

 

데이터저장소 시작하기 - MATLAB & Simulink - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com