Хранить и выполнять поиск по большому размеру текста в AWS - PullRequest
1 голос
/ 06 апреля 2020

У меня есть требование получать данные оптического распознавания (OCR) из файлов PDF и изображений в S3, чтобы пользователь мог выполнять поиск по этим данным распознавания. Я использую AWS Textract для извлечения текста для получения данных OCR.

Я планировал сохранить данные OCR в DB Dynamo и выполнить поиск в этом.

Проблема, с которой я столкнулся Это из-за ограничения размера элементов динамо-базы данных, которое ограничено 400 КБ.

У меня есть ситуация, когда пользователь загружает PDF-файл объемом более 100 МБ в S3, где извлеченное текстовое содержимое будет превышать этот предел. Итак, каков наилучший подход в этом случае?

Пожалуйста, помогите Спасибо заранее!

1 Ответ

1 голос
/ 08 апреля 2020

Я уверен, что вы все еще можете использовать DynamoDB, вам просто нужно разделить данные по нескольким элементам. В этом случае ключом вашего раздела может быть ключ / имя файла PDF, а ключом сортировки может быть какой-то ключ детали. Затем вы можете получить все элементы, содержащие текст для файла, используя Query (а не GetItem).

DynamoDB становится очень дорогим, когда вы имеете дело с большим количеством данных, поэтому другой вариант может быть S3 и Athena:

https://aws.amazon.com/blogs/big-data/analyzing-data-in-s3-using-amazon-athena/

По сути, вы записываете данные OCR в текстовый файл и сохраняете их в S3. Затем вы можете использовать Athena для выполнения запросов к этим данным. Это решение очень гибкое и, вероятно, будет намного дешевле, чем DynamoDB. В производительности могут быть некоторые недостатки.

...