В настоящее время я изучаю F # и изучаю его для анализа финансовых временных рядов. Кто-нибудь может порекомендовать хорошую структуру данных для хранения данных временных рядов?
F # предлагает богатый выбор нативных типов, и я ищу простую комбинацию, которая обеспечила бы элегантное, сжатое и эффективное решение.
Я ищу данные о тиках в магазине, которые состоят из миллионов записей, каждая с отметкой времени, и нескольких (~ 5-20) полей числовых и текстовых данных с возможными пропущенными значениями.
Мои первые мысли, возможно, представляют собой последовательность кортежей или записей, но мне было интересно, может ли кто-нибудь любезно предложить что-то, что хорошо работает в реальном мире.
EDIT:
Несколько дополнительных очков для уточнения:
Общие операции, которые мне, вероятно, потребуются:
- Поиск на основе времени - то есть найти самую последнюю точку данных в данный момент времени
- Соединения, основанные на времени
- Присоединяет
(Обновления и удаления будут редкими.)
Я должен дать понять, что я изучаю использование F # в первую очередь в качестве интерактивного инструмента для исследований, с возможностью компилирования в качестве (действительно большого) дополнительного бонуса.
ДРУГОЕ РЕДАКТИРОВАНИЕ:
Я также должен был упомянуть мою роль / использование F #, и эти данные находятся исключительно в области исследований, а не разработки. Намерение состоит в том, что, как только мы поймем данные (и что мы хотим с ними делать) лучше, мы сможем позже указать инструменты, которые будут разрабатывать наши разработчики. Например, хранилища данных и т. Д., С которых мы начинаем использовать их структуры данных и т. Д.
Хотя я обеспокоен тем, что наши модели требуют значительных вычислительных ресурсов, используют много памяти и не всегда могут быть закодированы рекурсивным способом. Таким образом, многие из нас вынуждены в любом случае запрашивать большие куски.
Я должен также сказать, что раньше я всегда использовал Matlab или R для такого рода задач, но теперь я заинтересован в F #, поскольку он предлагает эту интерактивную, высокоуровневую гибкость для исследований, но тот же код можно использовать в производстве .
Приношу свои извинения за то, что не предоставил эту контекстную информацию с самого начала (это мой первый вопрос), теперь я вижу, что это помогает людям сформировать свои ответы.
Еще раз спасибо всем, кто нашел время, чтобы помочь мне.