В моей повседневной работе я часто работаю с наборами данных, которые содержат миллионы строк, иногда 100 миллионов, а иногда и более 1 миллиарда. Эти наборы данных часто нужно сортировать. Ключи почти всегда представляют собой большие целые значения (обычно 9 цифр). Иногда наборы данных имеют составные клавиши из 9 цифр и 3-значных цифр.Реализация сортировки Radix для наборов данных в SAS
Мне было интересно, можно ли реализовать макрос счисления (LSD-first) в SAS, который можно использовать вместо PROC SORT
, чтобы сократить время, затрачиваемое на сортировку этих наборов данных. Я уже настроил сортировки, чтобы использовать сжатие, если это необходимо, сохраняйте только соответствующие поля (или используйте tagort), длину поля размера, не сортировать без необходимости и т. Д. И т.д. ...
Аппаратное обеспечение, которое я использую, ограничения - предположим, что у меня есть только 2G памяти, доступной для SAS, поэтому решение не может требовать ввода всех значений ключа во временный массив в памяти (по крайней мере, не все одновременно).
Будет ли решение предлагать улучшение производительности по сравнению с сортировкой proc? Кто-нибудь уже реализовал что-то подобное или имел с ним опыт? Я трачу свое время?
Ваша ссылка не работает для меня. Я предполагаю, что вы выполняете свой собственный параллельный сортинг через SAS/Connect, не является подходящим вариантом? – user667489
У нас нет лицензии SAS/Connect, поэтому для меня это не вариант. Я также не использовал Connect, поэтому я не чувствую себя готовым прокомментировать. –
Если вы когда-нибудь захотите изучить это, вы можете найти [эту ссылку] (http://support.sas.com/rnd/scalability/tricks/connect.html) интересным. – user667489