Talk Proposal Submission
If you are interested in attending this talk at PyCon JP 2017, please use the social media share buttons below. We will consider the popularity of the proposals when making our selection.
talk
Sharding with SQLAlchemy(ja)
Speakers
Akira Matsuzaki
Audience level:
Intermediate
Category:
Databases/NoSQL
Description
マルチテナント型のサービスを開発・運用する際に使われるテクニックの一つとして、データベースの Sharding があります。本トークでは、Pythonの代表的なORMであるSQLAlchemyを使って、単一のアプリケーションインスタンスから、Sharding されたデータベースへのアクセスを実現するテクニックを説明します。
Objectives
SQLAlchemyを使用してMaster/Slave 型や Sharding されたDBを扱うための実践的なテクニック
Abstract
マルチテナント型のサービスを開発・運用する際に使われるテクニックの一つとして、データベースの Sharding があります。
マルチテナント型のサービスを運用する方式としては、テナント毎に完全にアプリケーションインスタンスを分割するようなものから、単一のアプリケーションインスタンスで全てのテナントをカバーするようなものまで多数の方式があります。
その中でもデータベースをどのように配置するかは、アーキテクチャ設計の上で常に開発者を悩ませるポイントの一つです。
本トークでは、このような状況下でよく利用される以下のようなDB配置パターンに対して Python の代表的なORMの一つである SQLAlchemy を活用するテクニックをご紹介します。
* 書き込み系と読み込み系のDBインスタンスを分離するパターン (master - slave)
* テナント毎にDBのスキーマやインスタンスを分離するパターン (sharding)
トーク中では、 Engine, Pool, Connection といったSQLAlachemy の core 機能だけではなく、DB設計パターンに合わせて、declarative base や autoload をどうするかといった、ORM側の機能にも触れます。