Рекомендации по хранению данных в реальном времени, которые обеспечивают высокую скорость хранения / извлечения с .NET API - PullRequest
0 голосов
/ 29 июля 2011

Я пытаюсь найти лучшее решение для существенной замены базы данных SQL в решении, которое в настоящее время разрабатывается, но работает. Хранилище данных должно включать в себя разбиение таблиц и группы файлов, для которых можно создавать резервные копии и / или развертывать / выгружать (как описано в разделе «Разделение IBM DB2 здесь: http://www.ibm.com/developerworks/data/library/techarticle/dm-0605ahuja2/index.html),», но также разрешать массовую вставку / обновление строк.

Таблицы, хранящиеся в базе данных SQL, в настоящее время имеют простую структуру: ID долго (первичный ключ) TimeStamp DateTime (ПЕРВИЧНЫЙ КЛЮЧ) Значение float Атрибут int

Идентификатор не связан с каким-либо идентификатором в текущей базе данных, но происходит из других источников. Идентификатор и метка времени вместе используются в качестве первичного ключа для вставки / обновления

данные в таблице. В настоящее время в .NET используется хранимая процедура с параметром с табличным значением, позволяющая объединять данные в строки таблицы по 50 Кб за раз. В настоящее время я измерил около 10 000 записей в секунду на машине для разработки, что меня устраивает. Однако, поскольку решение является чувствительным к затратам и из-за требований к производительности по мере роста таблицы, мне нужна возможность выполнять разбиение таблиц (ранжируется по полю TimeStamp) и разделять разделы между несколькими файлами для упрощенного обслуживания / резервного копирования. Кроме того, мне нужна возможность для клиента выполнять запросы (только для чтения) к данным, как минимум, через ODBC.

Я рассмотрел несколько параметров NoSQL, mySQL и DB2 (которые сейчас кажутся наиболее подходящими). Я был бы признателен за понимание того, что может быть наилучшим образом. Конечно, всегда есть возможность перенести логику «разбиения» в код, но я бы хотел этого избежать, если это возможно.

1 Ответ

0 голосов
/ 29 июля 2011

Я также изучал решения NonSQL. Мой любимый - это Cassandra, которую используют Twitter и Facebook.

http://cassandra.apache.org/

Существует несколько способов взаимодействия с Cassandra с помощью .net:

http://www.ridgway.co.za/archive/2009/11/06/net-developers-guide-to-getting-started-with-cassandra.aspx

http://wiki.apache.org/cassandra/ClientOptions06

...