- Embulk에 대한 자세한 내용은 링크를 참고해주세요
- embulk를 설치합니다.
-
# JRE 설치 sudo apt install default-jre # embulk 최신버전 다운로드 curl --create-dirs -o ~/.embulk/bin/embulk -L "https://dl.embulk.org/embulk-latest.jar" # embulk 실행 권한 추가 chmod +x ~/.embulk/bin/embulk # PATH 에 embulk 등록 echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc # 변경된 PATH에 적용 source ~/.bashrc # 확인 embulk -version

- [WARN] Unrecognized Java version: openjdk full version "17.0.6+10-Debian-1deb11u1", Unrecognized VM option 'AggressiveOpts', Error: Could not create the Java Virtual Machine. 해당 에러가 발생하였습니다.
- Embulk가 Java 버전을 인식하지 못하여 발생하는 문제로 Java 가상 머신(VM) 옵션 중 인식하지 못하는 것으로, Java 9 이후 버전에서는 삭제되었습니다. 따라서 Java 9 이후 버전을 사용하면 해당 오류가 발생할 수 있습니다.
- https://plugins.embulk.org/
- 기본적인 embulk에 plugin을 설치해서 postgres, bigquery, mysql, hdfs, oracle, redshift, s3, dynamodb, elasticsearch등등 다양한 저장소에서 데이터를 가져오고나 넣거나 할 수 있습니다
-
embulk gem list # 설치된 플러그인 리스트 embulk gem install embulk-input-mysql # MySQL embulk gem install embulk-input-postgresql # PostgreSQL embulk gem install embulk-output-bigquery # Bigquery
- embulk gem install embulk-output-gcs를 실행할때 ERROR: Error installing embulk-output-bigquery:jwt requires Ruby version >= 2.5. 에러가 발생하여서 해결했습니다.
-
# Java 8 설치하기 sudo apt-get update sudo apt-get install openjdk-8-jre-headless -y # Embulk 설치하기 curl --create-dirs -o ~/.embulk/bin/embulk -L "https://dl.embulk.org/embulk-latest.jar" chmod +x ~/.embulk/bin/embulk echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc source ~/.bashrc # 필요한 플러그인 설치하기 embulk gem install embulk-input-gcs embulk gem install embulk-output-gcs

-
- embulk gem install embulk-output-gcs를 실행할때 ERROR: Error installing embulk-output-bigquery:jwt requires Ruby version >= 2.5. 에러가 발생하여서 해결했습니다.
-
embulk example ./test # 샘플데이터 생성 embulk guess ~/test/seed.yml -o config.yml # 입력 플러그인, 출력 플러그인 및 필드 매핑 구성을 포함하는 config.yml 파일을 추측하며 생성 embulk preview config.yml # Embulk를 사용하여 config.yml 처리 결과를 미리보기 embulk run config.yml # # 실행
- BigQuery Admin : 기존에 없는 테이블을 생성하기위한 권한으로 이하의 BigQuery Admin 권한을 갖게 되면, 기존의 테이블을 수정, 읽기, 쓰기는 가능하지만, 없는 테이블 생성에 대한 권한은 없습니다.
- Embulk 설정시 service_account_email을 넣어줘야합니다.
- 서비스 계정의 키를 넣어줍니다.
- gcs로 test할 yaml파일을 만든 뒤에 embulk run을 실행해줍니다.
-
in: type: file path_prefix: /home/{유저}/./test/csv/sample_ decoders: - {type: gzip} parser: charset: UTF-8 newline: LF type: csv delimiter: ',' quote: '"' escape: '"' null_string: 'NULL' trim_if_not_quoted: false skip_header_lines: 1 allow_extra_columns: false allow_optional_columns: false columns: - {name: id, type: long} - {name: account, type: long} - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'} - {name: purchase, type: timestamp, format: '%Y%m%d'} - {name: comment, type: string} out: type: bigquery mode: append auth_method: json_key json_keyfile: /home/{유저}/test/{프로젝트 키}.json service_account_email: zoom-de-service-acct@{프로젝트}.iam.gserviceaccount.com dataset: test_dataset auto_create_table: true table: embulk_table_%Y_%m





