2

У меня есть огромные данные, и в результате я не могу хранить все это в памяти, и я всегда получаю ошибки из памяти; очевидно, одним из решений будет использование потоковой передачи в Node.JS; но потоковая передача невозможна (насколько мне известно) с сортировкой, которая является одной из функций, которые я применяю к своим данным; есть ли алгоритм может быть Разделяй и властвуй алгоритм, который можно использовать для комбинации потоковой передачи и сортировки (которая является одной из функциональных возможностей, которые я применяю на мои данные?)Потоковая передача больших данных при сортировке

+0

Зависит от данных, которые вы собираетесь показывать. Отображается ли оно в списке? Почему бы не использовать разбивку на страницы? –

+1

@KirillSlatin Это массив объектов! Поскольку я сказал, что не могу хранить все данные в памяти и сортировать (по крайней мере, я бы сказал, основываясь на наивном алгоритме), вам нужно иметь все данные в памяти! Неважно, используете ли вы разбиение на страницы или нет; Другими словами, сортировка требует всех данных, и вы не можете применять сортировку только с частицами данных (это мой вопрос, возможно ли, есть ли какой-либо алгоритм для применения сортировки с частицами данных, используя потоковые или разбитые на страницы результаты?) – user385729

+1

Откуда вы получаете этот избыточный объем данных? База данных? Я думаю, вы действительно не понимаете концепцию разбивки на страницы ... Запрос на сервер должен содержать поля сортировки, их порядки, номер страницы и размер страницы. Сервер сортирует и возвращает часть результата –

ответ

1

Вы можете передавать данные, используя Kinesis и использовать Kinesis Client Library , или subscribe a Lambda function to your Kinesis stream и постепенно поддерживать отсортированные материализованные виды. Где вы храните свои отсортированные материализованные представления и как вы делите ваши данные, будет зависеть от вашего приложения. Если вы не можете сохранить все отсортированные материализованные виды, вы можете просмотреть кадры. Если ваши данные являются временными рядами или имеют другой естественный порядок, вы можете разделить диапазон вашего упорядоченного атрибута на куски. Тогда у вас могут быть, например, 1-дневные или 1-часовые отсортированные фрагменты ваших данных. Другими словами, выберите сортированное подразделение, которое позволяет сохранять информацию в памяти по мере необходимости.

+0

Большое спасибо за ознакомление с этой замечательной услугой Amazon! Поэтому основная проблема заключается в том, что я не могу хранить эти большие отсортированные материализованные представления в памяти, и нет смысла держать их в памяти; если я правильно понял, использовать Kinesis все же мне нужно провести отсортированный результат в памяти, который постепенно увеличивается и больше, верно? Правильно ли я понял? Желаемое решение будет сортировать результат от службы, такой как Kinesis, и передавать ее в ответ, поскольку она идет, не удерживая ее в памяти ... Ваша помощь приветствуется ... – user385729

+0

Я обновил свой ответ, чтобы задать вопрос о сортировке сортировки материализованные взгляды. –