プロポーザル

これは応募されたプロポーザルです。聞きたいと思うプロポーザルを各ページの下部にあるSNSのボタンで拡散しましょう。拡散された投稿をプロポーザルへの投票としてカウントし、選考時に参考にさせていただきます。

talk

Sharding with SQLAlchemy(ja)

スピーカー

Akira Matsuzaki

対象レベル:

中級

カテゴリ:

Databases/NoSQL

説明

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

目的

SQLAlchemyを使用してMaster/Slave 型や Sharding されたDBを扱うための実践的なテクニック

概要

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