Я собираюсь ежедневно получать большую группу CSV-файлов. Кроме того, у меня есть 1 миллиард записей данных (из этих CSV-файлов), но это не фиксированное число (1b записей ежедневно). Они будут расти, и мне нужно хранить их в БД. Также есть дополнительные моменты:
У меня была скамья между MySQL InnoDB и MyISAM. MyISAM был лучше, чем InnoDB (потому что у меня нет нормализации), но MySQL не является хорошим подходом, потому что у меня нет отношения.
Я также проверил MongoDB, но с 50 ГБ данных CSV он использовал 150 ГБ хранилища!
Я знаю, что могу использовать файлы CSV, но мне нужен подход к базе данных. База данных имеет множество инструментов (например, простые запросы GROUP BY) и преимущества, такие как обновления, исправления ошибок, средства безопасности, производительность чтения и записи, репликация и т. д.
Поэтому я думаю, что мне нужна база данных NoSQL, которая может выполнять распределенную запись и поддерживать дополнительные точки выше. Но я не знаю, какой NoSQL лучше для меня.
Я использую Linux (CentOS).
Раньше я управлял такой информацией.
Я использовал PostgreSQL, где у вас есть преимущество реляционной базы данных и Nosql.
Вы можете хранить в одной записи нормализованные данные, такие как данные импорта, идентификатор и т. д., а также массив, json или даже Hstore.
Плюс: у него есть родное сжатие.
Я бы предложил использовать Pandas с информацией .csv, преобразованной в формат HDF5, вероятно, самой Pandas. HDF5 обычно быстрее, чем звездообразная схема SQL.
Не сама база данных Pandas включает быстрый поиск, выбор, изменение формы, группировку и т. д. и может взаимодействовать с большим количеством баз данных.
Pandas является бесплатным, бесплатным и открытым исходным кодом, и активно поддерживается. Он взаимодействует с такими инструментами, как ipython, jupyter, matplotlib и т. д., для улучшения обработки и визуализации данных.
пользователь416
пользователь416
Камыш
Арио
Камыш
Арио