Колонно-ориентированные базы данных для анализа финансовых данных
В настоящее время у меня есть много финансовых данных, которые я хотел бы проанализировать и рассчитать. Я построил систему данных, которая читает из плоских файлов и выполняет приличное интеллектуальное кэширование, чтобы поддерживать желаемую производительность. Но я начинаю иметь много данных для этой системы...
В настоящее время я думал об использовании POSTGres и такой схеме:
Table: Things
Fields: T_id, Row, Sub-Row, Column, Resolution, Readable-Name, Meta
Table: Data
Fields: d_id, T_id, timestamp, value
Мне было интересно, будет ли POSTGres работать с вышеуказанной схемой, если моя таблица данных содержит миллиарды строк.
Еще одна идея, которая у меня возникла, - это использование баз данных, ориентированных на столбцы, но я не могу найти хороших открытых источников для начала. Кассандра действительно не подходит для этой ситуации, так как я буду читать гораздо больше, чем писать.
2 ответа
Зависит от вашего ожидания - PostgreSQL, вероятно, может обрабатывать эти запросы в вашей схеме, но это может быть запрос в несколько минут или часов - зависит от обработанных строк - но базы данных хранилища столбцов могут быть быстрее примерно в 10 раз - просто PostgreSQL - это реляционная база данных OLTP и ваша схема не очень хорошо нормализована и, вероятно, вы предпочитаете OLAP.
Существует несколько баз данных хранилища столбцов с открытым исходным кодом, таких как MonetDB или LucidDB, но они не из пространства PostgreSQL. Есть только коммерческая база данных Vertica. Вы можете посмотреть на движки MySQL http://www.mysqlperformanceblog.com/2010/08/16/testing-mysql-column-stores/
Ответ зависит от вашего бюджета.
Вот список решений, которые мы используем на практике (от дешевых до дорогих):
MongoDB PostgreSQL InfiniDB kdb +