Учитывая папку облачного хранилища с 1ПБ данных в ней, какой бы быстрый способ сортировать все эти данные? Легко сортировать мелкие куски, но слияние их с более крупным сортированным выходом займет больше времени, так как в какой-то момент одному процессу придется объединить все это. Я хотел бы избежать этого и иметь полностью распределенное решение, есть ли способ? Если да, существует ли какая-либо реализация, которая подходит для использования для сортировки данных в S3?Сортировка большого количества данных в облаке?
ответ
Поскольку объем данных, необходимых для сортировки, превышает объем оперативной памяти (по большому счету), единственный разумный способ (насколько мне известно) состоит в том, чтобы сначала отсортировать куски, а затем объединить их вместе.
Merge Sort - лучший способ выполнить эту задачу. Вы можете сортировать отдельные фрагменты данных одновременно с параллельными процессами, что должно ускорить ваш вид.
Дело в том, после того, как вы сделали сортировку ломтей, вы не должны иметь единого процесса делает все слияния, вы можете иметь несколько процессов слияния различных кусков одновременно:
Этот алгоритм использует алгоритм параллельного слияния, чтобы не только распараллеливать рекурсивное деление массива, но и операцию слияния. Он хорошо работает на практике в сочетании с быстрой стабильной последовательной сортировкой, такой как сортировка вставки, и быстрое последовательное слияние в качестве базового случая для слияния небольших массивов.
Вот link, который дает немного больше информации об алгоритме слияния (на всякий случай).
Плохая новость - вы не можете избежать k-слияния нескольких отсортированных файлов. Хорошо, что вы можете выполнять некоторые операции параллельно.
- 1. Сортировка большого количества данных excel
- 2. Разбиение и сортировка большого количества данных
- 3. Сортировка большого количества сжатых файлов
- 4. Сортировка большого количества элементов DOM
- 5. Проблема сортировка большого количества файлов в python
- 6. Сортировка очень большого количества данных в SQL Server 2005
- 7. Обработка большого количества данных
- 8. Удаление большого количества данных
- 9. Сортировка и хэширование большого количества строк Java
- 10. Ruby/Rails - Сортировка и представление большого количества связанных данных
- 11. Хранение большого количества аналитических данных
- 12. Отправка большого количества данных сервлету
- 13. Установка большого количества пакетов данных
- 14. ZedGraph печать большого количества данных
- 15. Обработка большого количества данных сервера
- 16. Отправка большого количества данных POST
- 17. Обновление большого количества данных postgresql
- 18. Java: Фильтрация большого количества данных
- 19. Укажите формат даты большого количества входных данных
- 20. Передача данных сторонних поставщиков большого количества данных
- 21. База данных MySql для большого количества данных
- 22. Запись большого количества данных в excel C#
- 23. Обработка очень большого количества данных в MyBatis
- 24. Хранение большого количества данных в приложении
- 25. Хранение большого количества текста в данных ядра
- 26. Загрузка большого количества данных в WPF datagrid
- 27. Хранение большого количества бэкэнд-данных в Android
- 28. Удаление большого количества данных в Oracle
- 29. Хранение большого количества файлов в базе данных
- 30. Загрузка большого количества данных в Postgres Hstore