Я работаю над проектом, и моя работа - создать систему базы данных для управления примерно 60 000 000 000 записей данных.
Предпосылки проекта таковы, что мне приходится хранить в реальном времени большое количество сообщений, которые каждую секунду читают примерно 30 000 считывателей RFID. Предположим, каждый считыватель RFID генерирует 6000 сообщений в день, мне нужно вставить 180 000 000 записей в базу данных.
Возможный ввод данных: «отметка_времени, Reader_ID, Tag_ID, other_msg_content»
Будут запросы (SELECT) на основе временного диапазона, Reader_ID и Tag_ID. Запросы не будут очень сложными.
Сейчас я разрабатываю систему базы данных и планирую использовать MySQL. Мои вопросы по свалке:
Разумно ли использовать MySQL, или мне следует прибегнуть к Oracle (что дорого) или HBase?
Если мне нужно использовать MySQL, есть идеи, как я могу построить кластер?
Если я вставлю сообщения в таблицу, скоро таблица станет очень длинной. Я хотел бы использовать методы сегментирования, чтобы разделить длинный стол на множество коротких.
3.a. Я хочу знать правильную длину таблицы MySQL InnoDB, т.е. после того, как сколько записей данных было вставлено, я начну сегментирование?
3.b. Есть ли какое-нибудь хорошее решение для сегментирования прокси? Знаю spock proxy и некоторые другие, нужны рекомендации.
Должен ли я использовать MySQL Cluster? ИЛИ я просто использую главные серверы mysql и подчиненные устройства сегментирования и использую репликацию для достижения высокой доступности?
Предположим, мне нужно обрабатывать 20 ТБ данных в MySQL (в течение 1 года), я планирую использовать 20 узлов (ПК-сервер, дешево) и хранить 1 ТБ данных на каждый узел, возможно ли это? Любые комментарии приветствуются.
Большое спасибо.
Мысли:
в заключение