Я ищу базу данных без схемы для хранения примерно 10 [ТБ] данных на диске, в идеале, с использованием клиента Python. Предлагаемое решение должно быть бесплатным для коммерческого использования и иметь хорошую производительность для чтения и записи.
Основной целью здесь является хранение данных временных рядов, включая более миллиарда записей, к которым обращается time stamp
.
Данные будут храниться в следующей схеме:
KEY -> "FIELD_NAME.YYYYMMDD.HHMMSS"
ЗНАЧЕНИЕ -> [v1, v2, v3, v4, v5, v6] (v1..v6 просто floats
)
Например, предположим, что:
FIELD_NAME = "TOMATO"
TIME_STAMP = "20060316.184356"
ЗНАЧЕНИЯ = [72,34, -22,83, -0,938, 0,265, -2047,23]
Мне нужно иметь возможность получить VALUE (весь массив), учитывая комбинацию FIELD_NAME
& TIME_STAMP
.
Запрос VALUES [" TOMATO.20060316.184356 "] вернет вектор [72.34, -22.83, -0.938, 0.265, -2047.23]. Чтение массивов должно быть максимально быстрым.
Но мне также нужен способ хранения (на месте) скалярного значения в массиве. Предположим, что я хочу присвоить 1-му элементу TOMATO
на отметке времени 2006/03/16.18:43:56
значение 500.867
. В таком случае мне нужен быстрый механизм для этого - что-то вроде:
ЗНАЧЕНИЯ [" TOMATO.20060316.184356 "] [0] = 500,867 (это приведет к обновлению на диске)
Может ли что-то вроде MangoDB
работать? Я буду использовать только одну машину (не нужно для репликации и т. Д.), Под управлением Linux.
УТОЧНЕНИЕ: только одна машина будет использоваться для хранения базы данных. Тем не менее, мне нужно решение, которое позволит нескольким машинам подключаться к той же базе данных и обновлять / вставлять / читать / записывать данные в / из нее.