Closed masayuki14 closed 6 years ago
DCを参考に docker-compose.yml
を作る
version: '3'
services:
embulk:
build: .
volumes:
- .:/work
depends_on:
- db
stdin_open: true
tty: true
db:
image: postgres:9.6
restart: always
volumes:
- ./pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: interest_tier3
POSTGRES_USER: tier3
POSTGRES_PASSWORD: password
embluk の Dockerfile はそのまま使える。
ちょっと yelp_importer
の実装をみてみる。
config.yml
がとても参考になる。
ポスグレpluginの設定 out:
設定はこれ
https://github.com/embulk/embulk-output-jdbc/tree/master/embulk-output-postgresql
docker-compose.yml
と config.yml
のポスグレ部分は同じにする。
テーブル作ってないけど動かしてみる。
% docker exec -it tripadvisorimporter_embulk_1 /bin/bash
# embulk run config.yml
とりあえず動いた。
テーブルを確認して見る。 ポスグレのコマンドはまだ全然わかんないからつらいなー。
% docker exec -it tripadvisorimporter_db_container_1 /bin/bash
root@9af0af8cec87:/# su postgres
$ psql
psql (9.6.7)
Type "help" for help.
postgres=#
ユーザーを変えてポスグレコンソールに入る
PostgreSQLの基本的なコマンド
PostgreSql コマンドの覚え書き
この辺参考に見てみる。
postgres=# -- user list
postgres=# \du
List of roles
Role name | Attributes | Member
of
-----------+------------------------------------------------------------+-------
----
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
tier3_dev | Superuser | {}
postgres=# -- database list
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access p
rivileges
--------------------+----------+----------+------------+------------+-----------
------------
interest_tier3_dev | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgre
s +
| | | | | postgres=C
Tc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgre
s +
| | | | | postgres=C
Tc/postgres
(4 rows)
postgres=# -- select database
postgres=# \c interest_tier3_dev
You are now connected to database "interest_tier3_dev" as user "postgres".
interest_tier3_dev=# -- table list
interest_tier3_dev=# \dt
public | tripadvisor_businesses | table | tier3_dev
public | tripadvisor_businesses_000001619c646a3b_embulk000 | table | tier3_dev
public | tripadvisor_businesses_000001619c646a3b_embulk001 | table | tier3_dev
public | tripadvisor_businesses_000001619c646a3b_embulk002 | table | tier3_dev
public | tripadvisor_businesses_000001619c646a3b_embulk003 | table | tier3_dev
interest_tier3_dev=# select * From tripadvisor_businesses ;
https://www.tripadvisor.com/Attraction_Review-g946495-d1867744-Reviews-Sawarabi
_Street-Uji_Kyoto_Prefecture_Kinki.html | Sawarabi Street | 4.0 | 32 |
| Points of Interest & Landmarks,Historic Walking Areas,Sights & Landmarks |
5 | 15 | 12 | 0 | 0 | Uji | Uji,
| | g946495 | d1867744 | 135.78813 | 34.88997 | https://media
-cdn.tripadvisor.com/media/photo-w/01/9e/1d/c2/caption.jpg
データは入っている!! 中間テーブルみたいなのが出来るみたいだ。
config.yml のオプションを変えて
opt:
mode: merge
で実行したら、primary key がわからんから出来ない、みたいなメッセージがでたので、 テーブル作成はやはり事前に必要そう。
データ量を増やして実行してみよう。
json 全部読み込んだっぽい。 とりあえず最低限の動作できた。
embulk の出力先をPostgreSQLにする。 PostgreSQLはDockerコンテナにして動くようにする。