Size: a a a

2022 February 06

DZ

Dmitry Zvorygin in AWS_RU
О, задам глупый вопрос - есть dynamodb, в которой несколько сотен миллионов записей. Мы немного поменяли (улучшили) формат для записей - теперь все новые записи идут в новом формате. Сервер умеет читать и старые записи и новые. Каким образом можно красиво сделать  backfill для всех старых записей? Грубо говоря - как можно красиво пробежаться по каждой записи из DynamoDB и для неё вызвать какой-то код. В интернете предлагают городить что-то с очередями, лямбдами и степ-функциями которые друг-другу задачи перекидывают, но мне кажется это неправильно, дорого, медленно и слишком сложно
источник

NA

Nurmukhamed Artykaly in AWS_RU
Может сделать план, разбить записи по критериям - год, месяц, день (например).
Затем, я думаю, записи уже не меняются. То можно по расписанию заменить их. Конечно же учитывая разумные критерии - WCU/RCU, деньги и время.
источник

DZ

Dmitry Zvorygin in AWS_RU
ну WCU/RCU - я так понимаю у меня по-любому уйдёт 2 WCU и 2 RCU на запись - чтобы целостность гарантировать.

Критерии не работают - у нас просто UUID идентификатор записи, и всё. Грубо говоря если у записи нет какого-то поля, нужно его посчитать и добавить. И это надо сделать для всех записей.
источник

DZ

Dmitry Zvorygin in AWS_RU
Я сейчас придумал относительно безумную идею - можно сделать выгрузку DynamoDB на S3, и дальше уже через Glue пройтись по всем записям
источник

NA

Nurmukhamed Artykaly in AWS_RU
Все идеи хороши.
Просто нужно пробывать, сделайте небольшой proof-of-concept
источник

SK

Svyatoslav Kovtunenk... in AWS_RU
Простое консольное приложение на ec2 с параллельным сканированием таблицы?
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Scan.html - parallel scan секция
источник

DZ

Dmitry Zvorygin in AWS_RU
Спасибо!
Что-то я изначально о таком и не подумал даже…
источник

RV

Roman V. in AWS_RU
Странно что нет требования к консистентности при миграции. База рид-онли что-ли?
источник

RV

Roman V. in AWS_RU
*пробовать. Извините, внутренний граммар наци затриггерился.
источник

NA

Nurmukhamed Artykaly in AWS_RU
Понять и простить.
источник

R

Renat in AWS_RU
Всем привет!
Есть микро инстанс AWS EC2 c 20 Убунтой. Установлены python3, flask, gunicorn, nginx.
Есть веб приложение которое использует локальный файл БД SQLite (читает и пишет, данные используются при формировании страниц).
Подключаюсь к машине через AWS console, запускаю gunicorn под рутом. Все хорошо, приложение работает как надо (пишет и читает БД).
Закрываю консоль. Перестает писать в файл БД, при этом данные оттуда читает.
Открываю консоль, смотрю процессы, все ок gunicorn крутится.
Есть подозрение, что gunicorn надо запускать как сервис. Это так?
источник

AF

Anton Fircak in AWS_RU
как демон ранишь? Дело не в aws, пиши лучше в питон, фласк чат - что то с настройками гуникорна
источник

RV

Roman V. in AWS_RU
ясное дело что как демон. Ты закрываешь сессию с консоли и где твой гуникорн оказывается?
источник

RV

Roman V. in AWS_RU
запусти хотя бы в tmux
источник

RV

Roman V. in AWS_RU
а лучше как все адекватные люди использовать контейнеры и оркестратор, благо даже для одной машины их сейчас навалом - от Docker Swarm до k3s
источник

R

Renat in AWS_RU
Писал в пайтон, игнорируют ))). Наверное не знают ответ.
Когда консоль перезапускаю, gunicorn крутится. И с закрытой консолью данные с файла читаются,
источник

RV

Roman V. in AWS_RU
и опять же - что за замечательный солюшен  - sqlite использовать для веб-приложения?
источник

RV

Roman V. in AWS_RU
ты не думал, что у тебя база банально лочится?
источник

RV

Roman V. in AWS_RU
в sqlite при записи лочится вся таблица, получается как с почтой России  обслуживание запросов)
источник

RV

Roman V. in AWS_RU
Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется
источник