LoginSignup
14
12

More than 5 years have passed since last update.

mysqlで集計頑張るのやめてredshiftにいかない?

Posted at

今回はmysqlのデータをredshiftに流し込む方法

実行環境

CentOS6.5

今回使用するもの

今回はembulkを使用
TreasureDataの@frsyukiさんが作成されたデータ転送するツールで
inとoutを定義することでinputをcsvやmysqlにしたりoutputをredshiftやbigquery,Treasuredataにしたりできる。
めっちゃ便利!!

事前準備

今回は下記のスキーマをもったデータベースがあるとする

項目名
id integer
name varchar(255)
age integer

流すまで

embulkのインストール

作者のページ見るのが一番

embulk実行用のyamlをかく

完成系から

yaml
in:
  type: mysql
  user: [user名]
  password: [パスワード]
  database: [DB名]
  table: [テーブル名]
  host: [host名]
  select: "*"
out:
  type: redshift
  host: [redshiftの接続先]
  database: [db名]
  user: [user名]
  password: [パスワード]
  table: [テーブル名]
  mode: insert
  iam_user_name: [IAMのユーザーネーム]
  access_key_id: [アクセスキー]
  secret_access_key: [シークレットキー]
  s3_bucket: [バケットの名前]

RUN!!!!

console
embulk run ***.yml

yamlの解説

redshiftに関してはbigqueryほど複雑ではなかった印象。
s3のバケットを設定しているのはaws側でredshiftにデータを入れる際はs3に一度データをおくことを推奨しているから。
よってIAMでユーザーを作成するのだが、S3へのアクセス許可が必要になる。

後の細かな設定は公式ページで

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12