문제 발생
embulk 를 통해서 mysql input config 파일을 작성하여, preview 를 실행하는 중 다음과 같은 오류가 발생했다.
Emnulk MySQL Input, he server time zone value 'KST' is unrecognized or represents more than one time zone.
timezone 문제인데 크게 두가지 방법이 있다.
- mysql server timezone 변경
[myqld] ... ... default_time_zone='+09:00' ... ...
- jdbc url option 추가
jdbc:mysql://192.168.0.100:3306/test&serverTimezone=Asia/Seoul
서버측은 귀찮아서 테스트 안함.. 그리고 서버측은 설정을 바꿀 수 없는 경우가 많기 때문에
jdbc 설정만 변경하여 테스트 진행
emnulk 에 적용하기
embulk 에 input 으로 다음과 같이 적용한다.
in:
type: mysql
host: 192.168.0.100
user: test
password: test
database: test
options: {serverTimezone: Asia/Seoul}
query: |
some query
그럼 다음과 같이 옵션이 적용된다.
... ...
2020-06-11 14:19:24.953 +0900 [INFO] (0001:preview): Connecting to jdbc:mysql://192.168.0.100:3306/test options {useCompression=true, socketTimeout=1800000, useSSL=false, user=test, useLegacyDatetimeCode=false, tcpKeepAlive=true, serverTimezone=Asia/Seoul, useCursorFetch=true, connectTimeout=300000, password=***, zeroDateTimeBehavior=convertToNull}
... ...