Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
В этом документе описываются характеристики вставки данных при работе с временными рядами, а также архитектура вставки данных в YMatrix в таких сценариях.
Хранение данных — одна из ключевых функций базы данных. После завершения моделирования данных и установления соединений с базой необходимо записать данные в таблицы.
Вставка данных в сценариях временных рядов имеет следующие основные особенности:
Одной из типичных черт вставки данных временных рядов является их огромный масштаб. Это проявляется в трёх практических аспектах:
В результате быстрый рост числа объектов в сочетании с высокой частотой сбора данных приводит к образованию огромных объёмов информации. Это создаёт серьёзную нагрузку на пропускную способность базы данных.
YMatrix разработал MatrixGate — инструмент для высокоскоростной вставки данных. Благодаря параллельной вставке данных на узлы данных (Segments), MatrixGate обеспечивает скорость вставки до сотен миллионов точек данных в секунду.
Примечание!
Подробности реализации mxgate см. в статье YMatrix - How YMatrix Achieves 50 Million Data Points/Second on a Single Node; отчёты по тестированию производительности — в YMatrix - Time-Series Database Insert Performance Benchmark: YMatrix is 78x Faster than InfluxDB; принципы работы — в разделе Data Ingestion Tools.
На практике задачи по вставке данных выходят за рамки больших объёмов и разнообразных источников. Они также включают сложные граничные случаи, такие как:
В некоторых сценариях устройство не передаёт все собранные метрики сразу, а отправляет их несколькими пакетами. Эти частичные передачи должны быть объединены в одну запись, а не сохраняться как отдельные записи.
Для решения этой задачи YMatrix поддерживает функцию UPSERT. Подробные примеры использования и инструкции см. в разделе Batched Data Merge Scenario (UPSERT).
Передача с задержкой возникает, когда сбой устройства или нарушение в цепочке сбора данных препятствует своевременной передаче. После восстановления системы данные передаются ретроспективно. Например, автомобиль, находившийся несколько дней в зоне отсутствия сигнала, возобновляет передачу данных после восстановления связи. Такие задержки могут длиться дни или даже недели.
Передача с нарушением порядка происходит, когда после сбоя система сначала передаёт самые свежие данные, а затем постепенно заполняет пропущенные исторические данные. В результате входящие данные могут иметь временные метки, более ранние, чем уже сохранённые.
Поскольку эти два сценария, как правило, не требуют специальной обработки слияния со стороны базы данных, они далее не рассматриваются.
Под разной частотой подразумевается ситуация, когда метрики устройства собираются с разными интервалами. Например, одни метрики собираются каждую секунду, другие — каждые 2 секунды.
Передача данных с разной частотой может привести к большому количеству значений NULL в хранимых данных для метрик с более низкой частотой сбора. Значения NULL всё равно занимают место в хранилище: для таблиц HEAP — это column count / 8 байт; для таблиц MARS2 — RowGroup row count / 8 байт. Поэтому выбор решений следует тщательно оценивать в зависимости от степени появления значений NULL.
YMatrix поддерживает ввод данных из различных источников и в различных форматах. На следующей схеме показаны типичные источники данных и методы их хранения.
Примечание!
Нажмите на значок, чтобы перейти к соответствующей документации.