Как искать данные в Динамо с использованием Python

w.female.replace(to_replace=dict(female=1, male=0), inplace=True)

См. pandas.DataFrame.replace () docs .

0
задан RK. 11 March 2019 в 06:42
поделиться

1 ответ

KeyConditionExpression можно применять только к разделу и при необходимости для сортировки ключа. Документация гласит следующее.

Используйте параметр KeyConditionExpression, чтобы указать конкретное значение ключа раздела. Операция Query вернет все элементы из таблицы или индекса с этим значением ключа раздела. При желании вы можете сузить область действия операции Query, указав значение ключа сортировки и оператор сравнения в KeyConditionExpression.

Та же самая документация продолжается с

Для дальнейшего уточнения результатов запроса вы можете дополнительно предоставить FilterExpression. FilterExpression определяет, какие элементы в результатах должны быть возвращены вам. Все остальные результаты отбрасываются.

Таким образом, вы можете использовать FilterExpression для более узкого набора результатов, что может обеспечить поддержку для вашего второго варианта использования.

Если этого недостаточно, вам, вероятно, нужно изучить , используя индексы , Global Secondary Index (GSI) специально. В основном индекс создаст другую таблицу с другими ключами. Чтобы поддержать ваше второе требование, я думаю, что следующая структура GSI могла бы работать.

name | code
-----------
PRD  | 425
PRD  | 456
PRD  | 427
....

Где name - ключ раздела, а код - ключ сортировки. Но эти пары атрибутов должны всегда составлять уникальный первичный ключ для каждой записи, иначе вы не сможете использовать эту структуру.

Приложение : просмотрев мой пост и перечитав ваш вопрос, я понял, что у вас нет отдельных атрибутов имени и кода, но есть один атрибут с данными, такими как «PRD 425» и «PRD». 426" . У меня нет опыта в этом. В документации Query снова говорится следующее о KeyConditionExpression

Условие, которое указывает значение (я) ключа для элементов, которые должны быть получены действием Query.

Условие должно выполнить проверку на равенство значения ключа одного раздела.

Условие может дополнительно выполнять один из нескольких сравнительных тестов для одного значения ключа сортировки. Это позволяет Query получать один элемент с заданным значением ключа раздела и значением ключа сортировки или несколько элементов, которые имеют одинаковое значение ключа раздела, но разные значения ключа сортировки.

Насколько я понимаю, вы не можете ограничить его требуемым способом.

Приложение 2 : После долгих раздумий я вспомнил, что документация DynamoDB обычно предлагает стратегию, в которой, например, к ключу разделения добавляется случайное число. К сожалению, у меня нет подробной информации о том, как выполнять запросы к этой схеме, но она должна дать вам советы по организации ваших данных.

0
ответ дан kaskelotti 11 March 2019 в 06:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: