Bluemix：クラウドDBへのデータ移行サービス「Lift」を触ってみた

また新しいサービスが増えていたので、試してみました。DBデータを移行するためのサービスとして「Lift」がリリース。Asperaの技術を使っているそうで。
ざっくり何をしてくれそうかというと、**オンプレ（ローカル）にあるデータをBluemixのクラウドDBに移行するときに使うサービス**　のようです。

![スクリーンショット 2016-10-03 21.35.04.png](https://qiita-image-store.s3.amazonaws.com/0/119378/1ae64d79-4926-19c8-4f35-0a9875ebb91e.png)

ちょっと色々設定が多岐にわたるので、長い記事になってしまいましたが、一通りの手順は紹介できているかと思います。詳細のログの見方とかは後日・・・。

## とりあえずサービスを自分の環境に作ってみる

いつも通り、数クリックでサービスをデプロイ。
![スクリーンショット 2016-10-03 21.35.23.png](https://qiita-image-store.s3.amazonaws.com/0/119378/e94b2627-01d2-c3f1-faaa-c183bca4e60a.png)

しばらくするとダッシュボードに追加されている「Lift」のアイコンをクリックすると、以下のような画面に飛ぶので、Launch。
![スクリーンショット 2016-10-03 21.41.25.png](https://qiita-image-store.s3.amazonaws.com/0/119378/33174e53-9d51-014f-868e-37016e92eafb.png)

これは・・・どっかで見たことあるデザインにそっくりですね。。
![スクリーンショット 2016-10-03 21.42.21.png](https://qiita-image-store.s3.amazonaws.com/0/119378/f60814fd-fd63-4752-848a-3748101b0704.png)

## 手順的には3つ
**1. データ元/格納先のデータソース（DB)定義**　を設定
**2. データ移行ジョブの定義** をする
**3.ジョブ実行！**

## 1. データソース（DB）定義
データ元：CSVか、DB2か、PureData for Analytics
格納先：dashDB か DB2 on Cloud

![スクリーンショット 2016-10-03 21.47.17.png](https://qiita-image-store.s3.amazonaws.com/0/119378/361f4576-b0c5-c4aa-dd7b-55f7e7427eec.png)

たぶんこれからどんどん増えていくのかな？

### データ元の定義
ツールをインストールするみたい。Slingshot、英語で「ゴムぱちんこ」の意味。ゼ●ダの伝説をやりたくなってしまう。。
![スクリーンショット 2016-10-03 21.56.42.png](https://qiita-image-store.s3.amazonaws.com/0/119378/d8fb815a-8ccd-74da-b896-4f3b7559af1f.png)

**本題はこちら。**
![スクリーンショット 2016-10-03 21.58.56.png](https://qiita-image-store.s3.amazonaws.com/0/119378/f2e6b47c-cb1a-ac40-b1ea-73db986675a3.png)

*Step1* 
●SecureGatewayをインストールします。
　bluemixからオンプレ環境にセキュアに接続するためのツールです
　（これはちょっと後日詳細を書きます・・・別のサービスでもよく使われているので結構便利）。
●SecureGatewayを設定したマシンIPを上記キャプチャのstep1のところの「Host or IP Address」に記載します。

*Step2*
●ツールのダウンロード
　ピンクの円形のアイコンで、自分の環境のOSを選択し、ダウンロードします。
　今回はMacでやってますので、Macをダウンロード＆解凍。普通にappが出てきます。
![スクリーンショット 2016-10-03 22.01.31.png](https://qiita-image-store.s3.amazonaws.com/0/119378/b19fffba-7213-54fd-a401-7d177d92af3d.png)

●インストーラが起動します。次に進める。
●途中、security tokenの入力を求められます。
　WEBの画面に書いてあったもの（キャプチャでは黒で塗りつぶしてます）を入力!
![スクリーンショット 2016-10-03 22.06.00.png](https://qiita-image-store.s3.amazonaws.com/0/119378/34097ee7-9578-8248-860c-bebe1dbec055.png)

で、完了です。

*Step3*
●Step2でインストールしたツールを起動。
**大文字小文字の区別がしっかりされますので注意です！ここでハマって、後から2時間くらいロスりました・・**

```console:
$ mkdir ~/lift_data/スキーマ名
$ cd /Applications/IBM\ Bluemix\ Lift\ Slingshot/bin
$ ./slingshot.sh newdiskfolder ~/lift_data/
$ ./slingshot.sh start
A running IBM Bluemix Lift Slingshot instance for installation "/Applications/IBM Bluemix Lift Slingshot" was found.
Please run "slingshot.sh stop" to stop the instance before attempting to start again.
```

●WEBブラウザに戻り、
　右上のCreate Sourceをクリックして、SecureGateway等設定してあげて、完了！
![スクリーンショット 2016-10-03 22.23.13.png](https://qiita-image-store.s3.amazonaws.com/0/119378/894c5ffd-cdec-5f9a-4b3b-d9f83a4dba79.png)

### データ格納先の定義
これはdataworksで見たこと有るUIそのままですね。というわけでそのまま記入。
![スクリーンショット 2016-10-03 21.52.29.png](https://qiita-image-store.s3.amazonaws.com/0/119378/44c9e534-dd25-323f-ee02-dc5fdbd47348.png)


## 2. データ移行ジョブの定義
ジョブの名前をつけてあげたら、右下のピンクの文字をクリックして次に進みます。
![スクリーンショット 2016-10-03 22.53.05.png](https://qiita-image-store.s3.amazonaws.com/0/119378/32d6f9c5-f085-b573-b32d-54f529302f81.png)

### CSVを読み込む
**前述のstep3がうまくできてないと、ここでコケます！**
ドリルダウンしていって、フォルダを指定していきます。できたら「Continue」をクリック。
![スクリーンショット 2016-10-03 23.07.51.png](https://qiita-image-store.s3.amazonaws.com/0/119378/907b9ea8-df67-b8aa-a1e4-6a7c5f154757.png)

ちなみに読み込ませるローカルのフォルダ/ファイル構成はこんなかんじです。先ほど作ったlift_dataの中身です。
![スクリーンショット 2016-10-04 20.23.13.png](https://qiita-image-store.s3.amazonaws.com/0/119378/9a4e2b58-618f-310a-b834-92ae6c4520fc.png)



### ターゲットDBを選択
DDLを自分で読み込ませるか、既存テーブルに突っ込むかを選べます。
今回は、DDLを読み込ませます。

![スクリーンショット 2016-10-03 23.09.16.png](https://qiita-image-store.s3.amazonaws.com/0/119378/61353071-9b2b-fb81-f65e-80c68068fc7a.png)


### ファイルの中身の仕様を定義

タブ区切りとか、日付のフォーマット等々を設定します。
![スクリーンショット 2016-10-03 23.10.06.png](https://qiita-image-store.s3.amazonaws.com/0/119378/0087a6fd-61a1-93ed-713d-92df3079bbdc.png)

先ほどのDDLをアップロード（Browseをクリックしてファイルを選択すればOK）
今回は内容こんなかんじ。ここでも**大文字小文字を見ているので注意です**

```console:ddl.ddl
CREATE TABLE SCHEMAの名前.SAMPLETABLE (COL1 INT, COL2 VARCHAR(30));
```

![スクリーンショット 2016-10-03 23.13.07.png](https://qiita-image-store.s3.amazonaws.com/0/119378/aec26158-c0fa-85f3-015b-bd1de857f64d.png)

## 3.ジョブ実行！
やっとここまで来ました。
まあ自分でプログラム組むよりかは、、、後々のこと考えてもラクかなとは思います、Runをクリック！
![スクリーンショット 2016-10-03 23.13.28.png](https://qiita-image-store.s3.amazonaws.com/0/119378/6eb923aa-df11-a34f-7a07-6f86b50ce140.png)



実行の様子はこんなかんじで見れます。
![スクリーンショット 2016-10-04 8.17.35.png](https://qiita-image-store.s3.amazonaws.com/0/119378/2cc94804-af03-33f0-0b1f-a4ad3a5dcdd0.png)



終わったらdashDB側で確認。

![スクリーンショット 2016-10-04 8.18.08.png](https://qiita-image-store.s3.amazonaws.com/0/119378/02075df5-8e09-5237-912e-be8ef24b81a5.png)

おわり！