サービスの成長に対応する SQLAlchemyを活用するShardingデータベースアクセス #pyconjp #pyconjp_201

Sharding with SQLAlchemy Akira Matsuzaki @akipom マルチテナント型のサービスを開発・運用する際に使われるテクニックの一つとして、データベースの Sharding があります。本トークでは、Pythonの代表的なORMであるSQLAlchemyを使って、単一のアプリケーションインスタンスから、Sharding されたデータベースへのアクセスを実現するテクニックを説明します。
0
Akira Matsuzaki @akipom

日本の不動産をテクノロジーの力でいい感じにすべく、株式会社いい生活でCTOやってます #CTO #不動産テック #proptech


ぎのしん @ginoshinkuu

次は Sharding with SQLAlchemy を聴きます #pyconjp_201 pic.twitter.com/gl7mREpozJ

2017-09-09 11:30:48
拡大
拡大
住人 @i0nin

SQLの錬金術師の話をきく。 #pyconjp_201 #pyconjp

2017-09-09 11:32:21
ぎのしん @ginoshinkuu

サービスに複数の企業が同居してるの運用すごく大変そう #pyconjp_201

2017-09-09 11:33:19
matoba @mtb_beta

#pyconjp_201 最初はいいが、サービスが成長してくると同スケールするかが重要になる。そのときにスケールしにくいのが、データを扱うところ。特に書き込み系が辛くなる。

2017-09-09 11:34:10
ぎのしん @ginoshinkuu

DBのスケール云々の話はこわい #pyconjp_201

2017-09-09 11:34:22
かしゅー @kashew_nuts

「RDBMS: 特に書き込み系がつらい。」はい。 #pyconjp #pyconjp_201

2017-09-09 11:34:55
matoba @mtb_beta

#pyconjp_201 ユーザーごとに書き込む場所を切り替えると、デプロイが大変、監視対象が多くなる、など。

2017-09-09 11:36:00
ぎのしん @ginoshinkuu

スキーマだけ割っても変わらないもんなぁ #pyconjp_201

2017-09-09 11:36:41
matoba @mtb_beta

#pyconjp_201 色々考えると、3パターンの合わせ技でなんとかする話になってくる。それをPythonでどうやってやるの?という話。

2017-09-09 11:37:55
ぎのしん @ginoshinkuu

3パターンの合わせ技、聞いているだけでつらくなる。本題はPythonのORMだった #pyconjp_201

2017-09-09 11:38:09
住人 @i0nin

「運用レベルでサービスをやっていく」という実用志向の話。 #pyconjp_201 #pyconjp

2017-09-09 11:38:18
ぎのしん @ginoshinkuu

ORM自体かますと遅くなるから最近使ってないな #pyconjp_201

2017-09-09 11:39:04
matoba @mtb_beta

#pyconjp_201 ORMもなんか知ってるような知らないような感じなので、もう少し詳しく知りたいなあ

2017-09-09 11:39:47
ぎのしん @ginoshinkuu

PythonのORMは昔と比べて数が減ってるのか。淘汰されて洗練されてるってことかな #pyconjp_201

2017-09-09 11:40:30
住人 @i0nin

ORMは一時期すげー流行ったけど、今は下火なのかね。 #pyconjp_201 #pyconjp

2017-09-09 11:40:57
matoba @mtb_beta

#pyconjp_201 SQLAlchemyには、2種類のマッピングがある。

2017-09-09 11:42:33
住人 @i0nin

Classical Mappingしか使ったことなかった。今推奨されてないのかよ知らなかった。書き直そ。 #pyconjp_201 #pyconjp

2017-09-09 11:42:57
matoba @mtb_beta

#pyconjp_201 SQLAlchemyにはAutoloadという機能があって、それを使うか使わないか、選べる。

2017-09-09 11:43:56