본문 바로가기
Tech/Cloud

[GCP] BigQuery의 데이터를 MSSQL로 옮기기(EMBULK)

by 타이호 2018. 8. 16.
반응형


1. 설치 준비

  • 다운로드 ODBC Driver manager

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-driver-manager?view=sql-server-2017

  • wget, gcc 설치 : sudo yum install wget gcc

  • ODBC Driver 파일 압축을 풀고 ./build_dm.sh 실행

  • 정상적으로 수행 되면 아래 명령어를 실행하라고 나옴

Run the command 'cd /tmp/unixODBC.21149.193.3799/unixODBC-2.3.0; make install' to install the driver manager.

  • 위의 디렉토리(/tmp/unixODBC.21149.193.3799/unixODBC-2.3.0)로 이동 후

sudo make install 수행

  • ODBC Driver 압축을 풀었던 디렉토리로 다시 이동 후 아래 확인

[kth@centos7 msodbcsql-11.0.2270.0]$ odbc_config --odbcinstini

/etc/odbcinst.ini

  • 위 명령어로 확인이 되면 아래 명령어로 인스톨 수행

./install.sh  install

  • 설치 확인은 아래와 같이 수행

[kth@centos7 msodbcsql-11.0.2270.0]$ ./install.sh verify

Microsoft ODBC Driver 11 for SQL Server Installation Script

Copyright Microsoft Corp.

Starting install for Microsoft ODBC Driver 11 for SQL Server

Checking for 64 bit Linux compatible OS ..................................... OK

Checking required libs are installed ........................................ OK

unixODBC utilities (odbc_config and odbcinst) installed ..................... OK

unixODBC Driver Manager version 2.3.0 installed ............................. OK

unixODBC Driver Manager configuration correct .............................. OK*

Microsoft ODBC Driver 11 for SQL Server already installed ............ INSTALLED

  • 만약 Install이 되지 않으면 ./install.sh  install --force 로 재 설치

  • SQLJDBC Driver 설치 (첨부된 압축 파일을 풀기만 하면 됨)

경로는 압축을 푼 디렉토리 안에 jar 파일이 존재 : sqljdbc_4.1/enu/jre7/sqljdbc41.jar

  • Service Account 생성

Credentials -> Create credentials -> Service account key 로 들어가서 Key를 생성한다.

New service account를 아래와 같이 생성한다. 권한은 서비스 목적에 따라 다르게 부여하지만 우선 Project Owner로 할당(BigQuery만 조회할 경우 BigQuery만 할당 가능)

생성하고 나면 JSON Credential이 생성되고 해당 Json 키를 저장 한 뒤 리눅스 머신에게 전송한다.

2. Embulk 설치

  • Java 설치

sudo yum install java-1.8.0-openjdk

  • 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 example ./try1
embulk guess   ./try1/seed.yml -o config.yml
embulk preview config.yml
embulk run     config.yml

3. Input

  • BigQuery Input Plugin 설치

embulk gem install embulk-input-bigquery


4. Output

  • MSSQL Output Plugin 설치

embulk gem install  embulk-output-sqlserver


5. Yaml 파일 생성

bq_to_mssql.yaml


in:

 type: bigquery

 project: 'myproject' #프로젝트 ID

 keyfile: '../myproject.json' #위에 생성한 Service Account json 파일

 sql: 'SELECT * FROM `myproject.DemoSample.sample` limit 10'

out:

 type: sqlserver

 port: 1433

 driver_path: /root/odbc/sqljdbc_4.1/enu/jre7/sqljdbc41.jar #위에서 다운 받은 jdbc driver 경로

 host: 192.168.76.50 #MSSQL IP address

 user: username

 password: "<Secret>"

 instance: MSSQLSERVER

 database: master

 table: mssql_sample2

 mode: insert



6. Run

embulk run bq_ms.yml 실행


BigQuery Table


MSSQL에 저장된 데이터 확인



반응형