Saturday 11:30 a.m.–noon

Room 201 #pyconjp_201

Sharding with SQLAlchemy

Akira Matsuzaki

Audience level:
Intermediate
Category:
Databases/NoSQL
Slide:
slide https://www.slideshare.net/akipom/sharding-with-sql-alchemy
Video:
video https://youtu.be/F6cvEbc4EN4

Description

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

Abstract

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