1

Мне нужно обработать на пике 100 с записей в секунду. Эти записи являются простыми органами JSON, и их следует собирать, а затем обрабатывать/преобразовывать в базу данных.Является ли Kinesis правильным инструментом для моих нужд? (& другие сортированные вопросы)

Несколько вопросов ...

1) Является ли Kinesis право на это? Или SQS лучше подходит?

2) При использовании кинези я хочу использовать примеры python, как показано здесь: https://aws.amazon.com/blogs/big-data/snakes-in-the-stream-feeding-and-eating-amazon-kinesis-streams-with-python/ или мне следует внедрить моего производителя и потребителя в KCL? Какая разница?

3) Предоставляет ли Kinesis что-либо руководству потребителей, или я просто запускаю их на экземплярах EC2 и самостоятельно управляю ими?

4) Какая правильная модель для доступа к данным - я не могу позволить пропустить какие-либо записи, поэтому я предполагаю, что я буду получать записи из «TRIM_HORIZON», а не «ПОСЛЕДНИЕ». Если да, как мне управлять дубликатами? Другими словами, как мои потребители получают записи из потока и обрабатывают потребителей, и т. Д., И всегда знают, что они извлекают все записи?

Спасибо!

+0

какой вид обработки вы планируете сделать? вы заботитесь о сообщениях, поддерживающих их порядок? –

+0

Эй - сообщения не должны поддерживать порядок, и единственная обработка, которую я буду делать с потребителем, преобразуется в другой формат и переадресуется на другую услугу. –

ответ

2
  1. Kinesis более полезен для потоковой передачи данных или когда требуется строгий порядок между сообщениями. С другой стороны, вы используете дело, похоже, больше похоже на буферное решение между двумя службами. Поэтому я предпочел бы SQS Кинезису. SQS также дешевле и проще в работе и легко справляется с требуемым масштабом.
  2. В примере, который вы использовали, используются низкоуровневые API-интерфейсы Kinesis. Тем не менее, вам следует использовать KPL и KCL для реализации ваших производителей и потребителей соответственно, поскольку они обеспечивают более совершенные конструкции, которые проще в использовании.
  3. Вы можете запускать как производителей, так и потребителей Kinesis и SQS на EC2 или по телефону . В последнем, AWS позаботится о вашем аппаратном управлении.
  4. Да, вы должны пойти с TRIM_HORIZON. Если в ваших данных есть дубликаты, ваши потребители должны заботиться о них, делая самостоятельную бухгалтерскую отчетность. Что касается потребителей, которые ездят и т. Д., KCL обрабатывает эти случаи изящно.
+0

Спасибо за ответ. Вопросы: 1) Я буду рассматривать SQS как решение. Благодарю. 2) KPL и KCL выглядят более «сложными» для работы с меньшей документацией, чем API SDK. Кроме того, похоже, что они работают только на Redhat/RHEL. (По крайней мере, из моего быстрого ознакомления с документацией по установке). 3) Получил это, что имеет смысл, нужно также прочитать об этом. 4) Итак, если я поеду с TRIM_HORIZON, потребитель начнет чтение в начале потока ... как я пометить местоположение, где я нахожусь в потоке. Разве это shard_iterator, что я буду отслеживать или что-то еще? –

+0

Я не знаю, используете ли вы API уровня низкого уровня. но KCL автоматически записывает контрольные точки в DynamoDB, поэтому вам не нужно беспокоиться об этом самостоятельно –