dynamodol.partition_query#
Stores for filtered data sets
Classes
|
|
|
Reads from a partition of a DynamoDB table. |
|
Reads from a partition of a DynamoDB table, with the sort key filtered by a prefix. |
|
Reads from a filtered subset of a DynamoDB table. |
Exceptions
- class dynamodol.partition_query.DynamoDbPartitionPersister(db=None, table_name=None, key_fields=None, data_fields=None, exclude_keys_on_read=True, query=None, key_query=None, attr_query=None, partition=None)[source]#
Bases:
DynamoDbBasePersister,DynamoDbPartitionReader
- class dynamodol.partition_query.DynamoDbPartitionReader(db=None, table_name=None, key_fields=None, data_fields=None, exclude_keys_on_read=True, query=None, key_query=None, attr_query=None, partition=None)[source]#
Bases:
DynamoDbQueryReaderReads from a partition of a DynamoDB table.
>>> from dynamodol.base import load_sample_data >>> load_sample_data() >>> partition_reader = DynamoDbPartitionReader(partition='part1') >>> list(partition_reader) [('part1', '01-01'), ('part1', '01-02'), ('part1', '01-03'), ('part1', '01-04'), ('part1', '02-01'), ('part1', '03-02'), ('part1', '04-03'), ('part1', 'sort2')] >>> partition_reader[('part1', '01-01')]
- class dynamodol.partition_query.DynamoDbPrefixReader(db=None, table_name=None, key_fields=None, data_fields=None, exclude_keys_on_read=True, query=None, key_query=None, attr_query=None, partition=None, prefix='')[source]#
Bases:
DynamoDbPartitionReaderReads from a partition of a DynamoDB table, with the sort key filtered by a prefix.
>>> from dynamodol.base import load_sample_data >>> load_sample_data() >>> prefix_reader = DynamoDbPrefixReader(key_fields=('partitionkey', 'sortkey'), table_name='sorted_table', partition='part1', prefix='01') >>> list(prefix_reader) [('part1', '01-01'), ('part1', '01-02'), ('part1', '01-03'), ('part1', '01-04')]
- class dynamodol.partition_query.DynamoDbQueryReader(db=None, table_name=None, key_fields=None, data_fields=None, exclude_keys_on_read=True, query=None, key_query=None, attr_query=None)[source]#
Bases:
DynamoDbBaseReaderReads from a filtered subset of a DynamoDB table.
Every query must include the partition key (the first key field).
>>> from dynamodol.base import load_sample_data >>> load_sample_data()
Querying on the partition key and sort key
>>> query_reader = DynamoDbQueryReader(query={'partitionkey': 'part1', 'sortkey': '04-03'}) >>> list(query_reader) [('part1', '04-03')]
Querying on a partition and arbitrary attribute key.
>>> query_reader = DynamoDbQueryReader(query={'partitionkey': 'part1', 'data': 'a'}) >>> list(query_reader) [('part1', '01-01'), ('part1', '01-04')] >>> query_reader[('part1', '01-04')]
A more complex query. Note that numerical values and numerical comparisons are not yet supported.
>>> query = {'partitionkey': 'part2', 'sortkey': {'$gt': '02-01'}, 'moredata': {'$contains': 'r'}} >>> query_reader = DynamoDbQueryReader(query=query) >>> list(query_reader) [('part2', '03-02'), ('part2', '04-03')]