2.3.1.WebToolkit_Repository.md 7.07 KB
Newer Older
HooYoungAhn's avatar
HooYoungAhn committed
---
html:
  toc: true
  offline: true
export_on_save:
  html: true
---
# 데이터 저장소 관리
---
KSB 인공지능 프레임워크는 **하둡파일시스템(HDFS)** 을 기본적으로 사용합니다. KSB 웹툴킷에서는 **Repository** 메뉴를 통해 HDFS에 파일을 업로드 하거나 다운로드 하기 위한 인터페이스를 제공합니다.    

## 사용자 기본 파일경로
파일 시스템에 대한 설정은 ksb.conf (KSB 인공지능 프레임워크 설정파일) 에 설정된 **hdfs.Activated** 값에 따라 결정됩니다. **hdfs.Activated***true* 일 경우 HDFS의 상대경로로 설정합니다. **hdfs.Activated***false* 일 경우 로컬파일 시스템의 상대경로로 설정합니다. 기본 값은 HDFS의 상대경로로 설정이 되어 있습니다 (**hdfs.Activated***true*).

- 하둡파일시스템 기본경로: hdfs://{host}:{port}/user/{user_id}/선택한 경로
  - Writer 일 경우: hdfs://{host}:{port}/user/{user_id}/applications/{workflow_instance_id}_{engine_id}/output/선택한 경로
- 로컬파일시스템 상의 기본경로: file://{KSB_HOME}/선택한 경로

KSB 웹툴킷의 Repository에서 사용하는 경로는 **사용자 기본 파일경로** 를 생략하여 보여줍니다. 따라서 *'dataset/...'* 을 입력한 경우, *'hdfs://{host}:{port}/user/{user_id}/dataset/...'* 로 변경되어 KSB 인공지능 프레임워크 상에서 처리됩니다.

## 데이터 업로드

KSB 인공지능 프레임워크는 HDFS에 업로드 할 데이터 타입을 크게 세 가지로 분류하도록 권장합니다.
- dataset : 입력 데이터 파일 및 사용자 파이썬 코드 파일
- model : 학습된 기계학습 모델의 파라미터가 저장된 파일
- applications : 엔진의 Writer 가 생성한 결과 파일

따라서 KSB 인공지능 프레임워크를 설치하면 HDFS에 기본적으로 "dataset" 폴더와 "model" 폴더가 생성되어 있습니다. "applications" 폴더는 엔진 실행 시 생성됩니다. 업로드할 파일의 타입에 따라 상위 디렉토리를 먼저 선택한 후 하위 디렉토리를 선택하고 해당 위치에 파일을 업로드 합니다. "Filename", "FileSize", "Last Modified" 을 클릭하면 해당 속성을 기준으로 오름차순 또는 내림차순으로 정렬할 수 있습니다.

![Repository](./images/2.3.1_repository.png)

상위 디렉토리를 선택하면, 하위 디렉토리 구조가 왼쪽 창에 나타납니다. 파일을 업로드 하고자 하는 위치로 마우스를 클릭하여 이동한 후, <span style="color:#6698FF">File Upload</span> 버튼을 클릭하여 파일을 업로드 합니다.
이 때 입력파일의 이름(Name)과 설명(Description)을 함께 입력할 수 있습니다 (입력을 생략해도 됨). 이 정보는 입력 파일의 메타정보로 DB에 저장됩니다.
또한 파일 단위로 업로드 하거나 폴더 단위로 업로드 할 수 있습니다. 모델의 경우 주로 폴더 단위로 업로드 합니다.
구조가 복잡한 파일 및 디렉토리는 ZIP 파일로 압축한 다음, 파일 입력에서 폴더(압축파일)을 선택하여 업로드 할 수도 있습니다.

![파일 등록](./images/2.3.1_FileUpload.png)

새로운 폴더를 생성하고자 할 경우 <span style="color:#6698FF">New Directory</span> 버튼을 클릭하여 폴더명, *메타정보 [(이름(Name), 설명(Description)]* 를 입력한 후 생성 버튼을 클릭합니다.

![폴더 생성](./images/2.3.1_NewDirectory.png)

*메타정보 [이름(Name), 설명(Description)]***워크플로우 편집기****속성창** 에서 파일 경로를 선택할 경우 이용됩니다. 즉 파일탐색기 버튼 (filePath, pyEntryPath 등과 같이 Path로 끝나는 필드 이름을 가지는 속성의 입력창 옆에 있는 `File` 버튼) 을 클릭했을 때 사용할 파일을 검색하기 위해 이용되며, 입력이 필수 사항은 아닙니다.


## 파일 삭제 및 다운로드
파일 또는 폴더를 클릭한 후 마우스 오른쪽 버튼을 클릭하면 다음과 같은 메뉴가 나타납니다. 메타정보는 dataset, model 의 하위 경로에 포함된 파일에 대해서만 설정 및 이용할 수 있습니다.

- 삭제
- 복사
- 잘라내기
- 붙여넣기 (복사 또는 잘라내기 한 경우에만 활성화 됨)
- 이름 변경
- 다운로드
- 메타정보

![Repository](./images/2.3.1_FileSelect.png)

폴더를 선택하고 다운로드 메뉴를 클릭할 경우, 폴더를 압축하여 다운로드 합니다.

메타정보 메뉴를 클릭할 경우, 이름, 설명 등의 메타정보를 입력할 수 있는 팝업창이 나타납니다.

![Repository](./images/2.3.1_meta.png)


## 결과 파일 확인

사용자가 작성한 워크플로우에 상대경로로 파일을 저장하는 **FileWriter** 를 사용한 엔진이 있을 경우, 워크플로우 실행이 종료된 후 Repository 메뉴에서 결과 파일을 확인할 수 있습니다. 결과 파일은 기본적으로 아래 위치에 저장이 됩니다.

- hdfs://{host}:{port}/user/{user_id}/applications/{workflow_instance_id}_{engine_id}/ouput/

![Repository](./images/2.3.1_Output.png)

워크플로우 생성 및 실행은 <a href="./2.5.2.KMeansExample.html">배치방식으로 데이터 처리하기 (KMeansExample)</a> 를 참조합니다.

### CSV 결과 파일 보기 (차트)
CSV 파일 형식일 경우, 파일이름 옆에 나타나는 차트 보기 버튼을 클릭하면 다음과 같은 팝업창이 나타납니다. 오른쪽 "File list" 창에서 파일명을 클릭한 후 구분자 등을 입력하고 "OK" 버튼을 클릭하면 데이터를 확인할 수 있습니다.

![Repository](./images/2.3.1_chart.png)

"Statistics" 버튼을 클릭하여 통계 정보를 볼 수 있습니다.

![Repository](./images/2.3.1_chart2.png)

"Charts" 버튼을 클릭하여 그래프를 그려볼 수 있습니다.

![Repository](./images/2.3.1_chart3.png)

### TEXT 결과 파일 보기
파일이름 옆에 나타나는 텍스트 보기 버튼을 클릭하면 파일의 내용을 보여주는 창이 팝업됩니다. 화면 우측에서 파일명을 선택하고 최대로 보고자 하는 사이즈 (Max Length) 를 바이트 단위로 입력합니다. 디폴트로 1000 바이트가 설정되어 있습니다.

![Repository](images/2.3.1_text.png)

### 파일 비교
두 개의 파일을 동시에 띄워서 비교할 때 사용합니다.
파일이름 옆에 나타나는 파일 비교 버튼을 클릭합니다. 화면 아래쪽에 선택된 파일명이 나타납니다. 잘못 선택한 경우 x 버튼을 클릭하여 삭제합니다.

![Repository](./images/2.3.1_Compare1.png)

두 번째 파일이 있는 곳으로 디렉토리를 옮긴 후, 파일이름 옆에 나타나는 파일 비교 버튼을 클릭합니다. 잘못 선택한 경우 x 버튼을 클릭하여 삭제합니다. 두 개의 파일이 모두 선택된 경우 "Compare" 버튼이 나타납니다.

![Repository](./images/2.3.1_Compare2.png)

"Compare" 버튼을 클릭하면 아래와 같은 팝업창이 나타나며, **파일 보기** 와 동일하게 사용합니다.

![Repository](./images/2.3.1_Compare3.png)