土曜日 11:30 a.m.–12時

Room 201 #pyconjp_201

Sharding with SQLAlchemy

Akira Matsuzaki

対象レベル:
中級
カテゴリ:
Databases/NoSQL
スライド:
slide https://www.slideshare.net/akipom/sharding-with-sql-alchemy
ビデオ:
video https://youtu.be/F6cvEbc4EN4

説明

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

概要

マルチテナント型のサービスを開発・運用する際に使われるテクニックの一つとして、データベースの Sharding があります。 マルチテナント型のサービスを運用する方式としては、テナント毎に完全にアプリケーションインスタンスを分割するようなものから、単一のアプリケーションインスタンスで全てのテナントをカバーするようなものまで多数の方式があります。 その中でもデータベースをどのように配置するかは、アーキテクチャ設計の上で常に開発者を悩ませるポイントの一つです。 本トークでは、このような状況下でよく利用される以下のようなDB配置パターンに対して Python の代表的なORMの一つである SQLAlchemy を活用するテクニックをご紹介します。 * 書き込み系と読み込み系のDBインスタンスを分離するパターン (master - slave) * テナント毎にDBのスキーマやインスタンスを分離するパターン (sharding) トーク中では、 Engine, Pool, Connection といったSQLAlachemy の core 機能だけではなく、DB設計パターンに合わせて、declarative base や autoload をどうするかといった、ORM側の機能にも触れます。
  • このエントリーをはてなブックマークに追加
CONTACT