Horizontal Sharding
Horizontal sharding support.
Defines a rudimental ‘horizontal sharding’ system which allows a Session to
distribute queries and persistence operations across multiple databases.
For a usage example, see the Horizontal Sharding example included in 
the source distrbution.
API Documentation
- 
class sqlalchemy.ext.horizontal_shard.ShardedSession(shard_chooser, id_chooser, query_chooser, shards=None, query_cls=<class 'sqlalchemy.ext.horizontal_shard.ShardedQuery'>, **kwargs)
- 
- 
__init__(shard_chooser, id_chooser, query_chooser, shards=None, query_cls=<class 'sqlalchemy.ext.horizontal_shard.ShardedQuery'>, **kwargs)
- Construct a ShardedSession. - 
| Parameters: | 
shard_chooser – A callable which, passed a Mapper, a mapped instance, and possibly a
SQL clause, returns a shard ID.  This id may be based off of the
attributes present within the object, or on some round-robin
scheme. If the scheme is based on a selection, it should set
whatever state on the instance to mark it in the future as
participating in that shard.id_chooser – A callable, passed a query and a tuple of identity values, which
should return a list of shard ids where the ID might reside.  The
databases will be queried in the order of this listing.query_chooser – For a given Query, returns the list of shard_ids where the query
should be issued.  Results from all shards returned will be combined
together into a single listing.shards – A dictionary of string shard names to Engine
objects. | 
|---|
 
 
 
- 
class sqlalchemy.ext.horizontal_shard.ShardedQuery(*args, **kwargs)
- 
- 
set_shard(shard_id)
- return a new query, limited to a single shard ID. - all subsequent operations with the returned query will 
be against the single shard regardless of other state.