Базы данных временных
рядов и средства
обработки
Дмитрий Намиот ВМК МГУ имени М.В. Ломоносова
Лаборатория Открытых
Информационных
Технологий
dnamiot@gmail.com
Москва 2015
• Особенности представления и обработки
временных рядов
• Временные ряды и реляционные базы
данных
• Расширения SQL для работы с
временными рядами
• NoSQL и временные ряды
Содержание
Представление временных рядов
• Классическое определение –
последовательность данных
• Характерные области: M2M, IoT
• Однородные данные
• INSERT (добавление данных) – как
превалирующая операция
Временные ряды - window
• В большинстве случаев, обрабатывается
только фрагмент временного ряда (окно)
Реляционная модель - простое
представление
T A1 A2 A3 … … An
1 X NULL X NULL NULL NUL
2 X X NULL X X X
5 X X X X X NULL
7 NULL X X X X X
9 X X X X NULL NULL
Реляционная модель – компактное
представление
T MEASUREMENTS
1 { “A1”: VALUE1, “A3”:VALUE3 … }
5 { “A2”: VALUE2, “A3”:VALUE3 … }
7 { “A5”: VALUE5, “A6”:VALUE6, “A7”:VALUE7 … }
9 { “A1”: VALUE1, “A2”:VALUE2 … }
Реляционная модель: data engine
SQL – расширения: Vertica
SELECT item, slice_time, ts_first_value(price, 'const') price
FROM ts_test WHERE price_time BETWEEN timestamp
'2015-04-01 07:00' AND timestamp '2015-04-01 07:30'
TIMESERIES slice_time AS '1 minute' OVER (PARTITION
BY item ORDER BY price_time) ORDER BY item,
slice_time, price;
SQL расширения: window functions
SELECT id_sensor, name_sensor,
temperature, avg(temperature) OVER
(ORDER BY id_sensor ROWS BETWEEN 1
PRECEDING AND 1 FOLLOWING)
FROM temperature_table;
NoSQL и временные ряды
Cassandra
SenML
<?xml version="1.0" encoding="UTF-8"?>
<senml xmlns="urn:ietf:params:xml:ns:senml"
bn="urn:dev:ow:10e2073a01080063" >
<e n="voltage" t="0" v="120.1" u="V" />
<e n="current" t="0" v="1.2" u="A" />
</senml>
Lambda Architecture
Выбор модели
• Три V больших данных: Volume, Velocity,
Variety
• Определяющий фактор для выбора
механизма хранения временных рядов:
Velocity

Базы данных для временных рядов

  • 1.
    Базы данных временных рядови средства обработки Дмитрий Намиот ВМК МГУ имени М.В. Ломоносова Лаборатория Открытых Информационных Технологий dnamiot@gmail.com Москва 2015
  • 2.
    • Особенности представленияи обработки временных рядов • Временные ряды и реляционные базы данных • Расширения SQL для работы с временными рядами • NoSQL и временные ряды Содержание
  • 3.
    Представление временных рядов •Классическое определение – последовательность данных • Характерные области: M2M, IoT • Однородные данные • INSERT (добавление данных) – как превалирующая операция
  • 4.
    Временные ряды -window • В большинстве случаев, обрабатывается только фрагмент временного ряда (окно)
  • 5.
    Реляционная модель -простое представление T A1 A2 A3 … … An 1 X NULL X NULL NULL NUL 2 X X NULL X X X 5 X X X X X NULL 7 NULL X X X X X 9 X X X X NULL NULL
  • 6.
    Реляционная модель –компактное представление T MEASUREMENTS 1 { “A1”: VALUE1, “A3”:VALUE3 … } 5 { “A2”: VALUE2, “A3”:VALUE3 … } 7 { “A5”: VALUE5, “A6”:VALUE6, “A7”:VALUE7 … } 9 { “A1”: VALUE1, “A2”:VALUE2 … }
  • 7.
  • 8.
    SQL – расширения:Vertica SELECT item, slice_time, ts_first_value(price, 'const') price FROM ts_test WHERE price_time BETWEEN timestamp '2015-04-01 07:00' AND timestamp '2015-04-01 07:30' TIMESERIES slice_time AS '1 minute' OVER (PARTITION BY item ORDER BY price_time) ORDER BY item, slice_time, price;
  • 9.
    SQL расширения: windowfunctions SELECT id_sensor, name_sensor, temperature, avg(temperature) OVER (ORDER BY id_sensor ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) FROM temperature_table;
  • 10.
  • 11.
  • 12.
    SenML <?xml version="1.0" encoding="UTF-8"?> <senmlxmlns="urn:ietf:params:xml:ns:senml" bn="urn:dev:ow:10e2073a01080063" > <e n="voltage" t="0" v="120.1" u="V" /> <e n="current" t="0" v="1.2" u="A" /> </senml>
  • 13.
  • 14.
    Выбор модели • ТриV больших данных: Volume, Velocity, Variety • Определяющий фактор для выбора механизма хранения временных рядов: Velocity