--- 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) 상위 디렉토리를 선택하면, 하위 디렉토리 구조가 왼쪽 창에 나타납니다. 파일을 업로드 하고자 하는 위치로 마우스를 클릭하여 이동한 후, File Upload 버튼을 클릭하여 파일을 업로드 합니다. 이 때 입력파일의 이름(Name)과 설명(Description)을 함께 입력할 수 있습니다 (입력을 생략해도 됨). 이 정보는 입력 파일의 메타정보로 DB에 저장됩니다. 또한 파일 단위로 업로드 하거나 폴더 단위로 업로드 할 수 있습니다. 모델의 경우 주로 폴더 단위로 업로드 합니다. 구조가 복잡한 파일 및 디렉토리는 ZIP 파일로 압축한 다음, 파일 입력에서 폴더(압축파일)을 선택하여 업로드 할 수도 있습니다. ![파일 등록](./images/2.3.1_FileUpload.png) 새로운 폴더를 생성하고자 할 경우 New Directory 버튼을 클릭하여 폴더명, *메타정보 [(이름(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) 워크플로우 생성 및 실행은 배치방식으로 데이터 처리하기 (KMeansExample) 를 참조합니다. ### 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)