Вставка временных рядов

Это уменьшенная версия ранее удаленного поста. Я прочитал другой пост и вики orientdb вместе с презентацией linkedin. Не пройти мимо моего текущего прогресса.

Мой вопрос в 2 раза.

1) Как правильно и как лучше всего связывать данные с классами временных рядов.

2) Можно ли это сделать с помощью хука во время вставки?

Ниже вы найдете модель исходных данных, классы временных рядов и диаграмму.

Модель данных постоянно обновляется и генерирует несколько миллионов записей в день.

Исходная модель данных

        {
            "@type": "d",
            "@rid": "#507:788457",
            "@version": 2,
            "@class": "Live",
            "MarketName": "BTC-OMNI",
            "High": 0.01398825,
            "Low": 0.0117,
            "Volume": 1121.38384722,
            "Last": 0.01254396,
            "Bid": 0.01219709,
            "Ask": 0.01254377,
            "BaseVolume": 14.52156426,
            "TimeStamp": "2017-07-28T16:51:07.853",
            "year": 2017,
            "month": 7,
            "day": 28,
            "hour": 16,
            "minute": 51
            "@fieldTypes": "High=d,Low=d,Volume=d,Last=d,Bid=d,Ask=d,BaseVolume=d,Year=d,Month=d,Day=d,Hour=d,Minute=d"
        }

Классы временных рядов

CREATE CLASS Year
CREATE CLASS Month
CREATE CLASS Day
CREATE CLASS Hour
CREATE CLASS Minute

Схема того, чего я пытаюсь достичь

введите здесь описание изображения


person OpsEngineer    schedule 29.07.2017    source источник


Ответы (1)


Нашел решение, используя livequery orientjs.

Может ли кто-нибудь подтвердить, является ли это надежным способом сделать это?

есть живой запрос, прослушивающий вставки в исходный класс, обновляйте таблицу временных рядов при вставке.

Все классы временных рядов обновляются исходными записями при вставке.

db.liveQuery('LIVE SELECT FROM live ')

   .on('live-insert', function(data){
        var r = data.cluster;
        var id = data.position;
        var rid = '#'+r+':'+id;


        var umin = 'update Year set month[' + data.content.month + '].day[' + data.content.day + '].hour[' + shour + '].minute[' + data.content.minute + '].live = ' + rid + ' where year = ' + data.content.year
        var uhour = 'update Year set month[' + data.content.month + '].day[' + data.content.day + '].hour[' + shour + '].live = ' + rid + ' where year = ' + data.content.year
        var uday = 'update Year set month[' + data.content.month + '].day[' + data.content.day + '].live = ' + rid + ' where year = ' + data.content.year
        var umon = 'update Year set month[' + data.content.month + '].live = ' + rid + ' where year = ' + data.content.year  

        db.query(umin)
            .then((updatedmin) => {console.log('updated minutes')})
        db.query(uhour)
            .then((updatedhour) => {console.log('updated hours')})
        db.query(uday)
            .then((updateday) => {console.log('updated day')})
        db.query(umon)
            .then((updatedmon) => {console.log('updated month')})



   });
person OpsEngineer    schedule 29.07.2017