클라우드 스토리지 폴더에 데이터가 1PB라고 말하면 모든 데이터를 가장 빨리 정렬 할 수있는 방법은 무엇입니까? 작은 덩어리를 쉽게 분류 할 수 있지만 더 큰 정렬 된 출력으로 병합하는 것은 어느 시점에서 전체 프로세스를 병합해야하기 때문에 더 오래 걸릴 것입니다. 나는 이것을 피하고 완전히 분산 된 솔루션을 원한다. 방법이 있을까? 그렇다면 S3에서 데이터를 정렬하는 데 사용하기에 적합한 구현이 있습니까?클라우드에서 많은 양의 데이터 정렬?
1
A
답변
2
정렬해야하는 데이터의 양이 RAM을 초과하므로 많은 지식을 가진 유일한 합리적인 방법은 청크를 먼저 정렬 한 다음 병합하는 것입니다.
Merge Sort이 작업을 수행하는 가장 좋은 방법입니다. 병렬 처리로 동시에 여러 데이터 덩어리를 정렬 할 수 있으므로 정렬 속도가 빨라집니다.
: 당신이 덩어리를 정렬 완료 후
건은, 당신이 병합의 모든 일을 단일 프로세스를 필요가 없습니다, 당신은 여러 프로세스가 동시에 서로 다른 청크를 병합을 가질 수 있습니다 이 알고리즘은 병렬 병합 알고리즘을 사용하여 배열의 재귀 적 분할뿐만 아니라 병합 작업을 병렬화합니다. 삽입 정렬과 같은 빠르고 안정적인 순차 정렬 및 작은 배열 병합을위한 기본 케이스로서의 빠른 순차 병합과 결합하면 실제로 잘 수행됩니다.
link은 병합 알고리즘에 대한 자세한 정보를 제공합니다.
0
나쁜 소식 - 여러 정렬 된 파일의 k-merge를 피할 수는 없습니다. 좋은 점은 일부 작업을 병렬로 수행 할 수 있다는 것입니다.
관련 문제
- 1. 많은 양의 데이터 페이지 매김 및 정렬
- 2. "많은 양의 데이터 저장"
- 3. 많은 양의 데이터 처리
- 4. Google 클라우드에서 많은 양의 데이터에 액세스하는 속도를 높이는 방법 SQL
- 5. 많은 양의 서버 데이터 처리
- 6. Firebase에서 많은 양의 데이터 저장하기
- 7. PHP에서 많은 양의 데이터 전달하기
- 8. ASP.NET에 많은 양의 데이터 저장
- 9. AppDomain간에 많은 양의 데이터 이동
- 10. mongodb에 많은 양의 데이터 합산
- 11. Excel에서 많은 양의 데이터 복사하기
- 12. 안드로이드 sqlite에서 많은 양의 데이터
- 13. Amazon RDS에서 많은 양의 데이터
- 14. SQL Server 2005에서 매우 많은 양의 데이터 정렬
- 15. Ruby/Rails - 많은 양의 관련 데이터 정렬 및 표시
- 16. RAM에 얼마나 많은 양의 정렬 작업이 있습니까?
- 17. 페이징 많은 양의
- 18. Qt 스레드간에 많은 양의 데이터 보내기 Qt 스레드간에 많은 양의 데이터 보내기
- 19. Java : 많은 양의 데이터 배열 표현
- 20. 정규식을 사용하여 많은 양의 데이터 가져 오기
- 21. WPF ListBox 및 많은 양의 데이터
- 22. 안정적인 API - 많은 양의 데이터 처리
- 23. 많은 양의 시공간 데이터 저장 및 처리
- 24. 많은 양의 2 차원 데이터 처리
- 25. SQL Server 2005에서 많은 양의 데이터 삭제
- 26. PHP로 작업을 사용하여 많은 양의 데이터 처리하기
- 27. Laravel 5에서 많은 양의 데이터 처리
- 28. Python에서 많은 양의 이미지 데이터 조작하기
- 29. 많은 양의 데이터를 저장할 데이터 구조를 디자인하십시오.
- 30. 파싱 실험을위한 많은 양의 일반 텍스트 데이터