1. 설치 준비
다운로드 ODBC Driver manager
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에 저장된 데이터 확인