본문 바로가기
BackEnd/Database

[ArangoDB] ArangoDB 데이터베이스 import 및 export

by 푸고배 2021. 6. 5.

ArangoDB는 데이터를 문서나 그래프 데이터베이스로 저장할 수 있다.

 

 export(내보내기) 

arangoexport --collection [collection_name] --output-directory "[directory_name]"

위의 명령어를 실행하면 [directory_name]의 폴더가 생성되며, [collection_name] 컬렉션이 해당 폴더 내부에 [collection_name] 이름의 json 배열로 저장된다. 한 번에 둘 이상의 컬렉션을 export하려면 여러 --collection 옵션을 지정한다.

기본 출력 디렉토리는 export이다.

arangoexport는 기본적으로 기본 엔드 포인트를 사용하여 _system 데이터베이스에 연결한다.

즉 옵션을 통해서 데이터베이스를 명시해주지 않으면 _system 데이터베이스에서 해당 컬렉션을 찾게된다.

다른 데이터베이스 또는 다른 엔드 포인트를 연결하거나 인증을 사용하려는 경우 다음 명령 줄 옵션을 사용할 수 있다.

  • --server.database [database_name] : [database_name] 데이터 베이스 연결
  • --server.endpoint [endpoint_name] : [endpoint_name] 엔드포인트
  • --server.username [user_name] : 사용자 이름
  • --server.password [password] : 사용할 비밀번호(이 옵션을 생략하면 비밀번호를 입력하라는 메시지가 표시된다)
  • --server.authentication <bool> : 인증 사용 여부

 

위는 TL_SCCO_EMD 폴더를 생성하여 GEO_DATA라는 데이터베이스의 TL_SCCO_EMD 컬렉션을 json(기본) 파일로 저장한다. 

출력 파일의 타입을 변경하기 위해서는 아래의 옵션을 사용한다.

  • --type [json/josnl/csv/xml/xgmml]

TL_SCCO_EMD 폴더 내부에는 ENCRYPTION와 TL_SCCO_EMD.json이라는 파일이 있는데, ENCRYPTION은 데이터 암호화 관련 파일이다. 해당 데이터는 암호화 적용을 하지 않았기 때문에 cat 명령어를 사용하면 none이라는 문구가 출력된다.

 

 import(가져오기) 

arangoimport --file [file_name] --type [data_type] --collection [collection_name]

 

export와 동일하게 데이터베이스를 명시해주지 않으면 기본값으로 _system 데이터베이스에 연결되니, 다른 데이터베이스에 있는 collection에 데이터를 넣으려면, server.database 옵션을 이용해 연결하고자하는 데이터베이스를 명시해주어야한다.

 

 

ERROR import file is too big. please increase the value of --batch-size (currently 1048576)

만약 import 시 위와 같은 에러 메시지가 발생했다면, 파일이 너무 크기 때문에 발생하는 에러로, 한 번에 가져올 수 있는 배치 사이즈를 증가시키라는면 된다.

--batch-size 옵션을 이용해 100000000000000이라는 대략의 큰 숫자를 입력해주었다.

숫자가 너무 크면 알아서 최대치로 바뀐다.

 

 

아래와 같이 create 개수와 warnings/errors, updated/replaced, ignored의 수치로 데이터 import 성공 여부를 확인할 수있다.

 

 

:8529 포트로 접속해보면 비어있던 collection에 데이터가 제대로 들어간 것을 확인할 수 있다.

반응형

댓글