Я относительно новичок в DynamoDB, и мы разрабатываем графический интерфейс поиска в свободной форме для одного из наших приложений.Основное хранилище данных, которое мы используем, - это традиционная реляционная база данных, мы планируем использовать DynamoDB в качестве постоянного слоя «кэша» поверх базы данных только для поиска.
В нашем случае у нас есть 3 ключа для определенияпокупатель .
мы храним клиента как комбинацию из 3 идентификаторов, указанных ниже:
- billingAccountNumber + customerId
- billingAccountNumber + InstanceId
- customerId
- InstanceId
Каждый элемент в DynamoDB представляет собой событие, которое происходит с клиентом в определенное время.
Каков наилучший способ создания этого шаблона в DynamoDB.Запрос будет что-то вроде
- событий для определенного billingAccountNumber за период времени.
- событий для определенного customerId за период времени
- событий для определенного instanceId за периодtime.
и т. д.
В настоящее время я использую BillingAccountNumber в качестве ключа раздела, поскольку он будет равномерно распределять нагрузку и метку времени в качестве ключа сортировки, чтобы мы могли получитьрезультат для данного диапазона.
Я спорю о том, могу ли я использовать customerId или instanceId в качестве ключа сортировки и метку времени в качестве фильтра, чтобы я мог выполнить запрос с помощью filterExpression для метки времени.
Какой способ является более эффективным с точки зрения производительности и стоимости?