Вопросы по Модуль экспорта в БД

Стартовая страница Форумы Понять, как работает ПО Вопросы по Модуль экспорта в БД

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Автор
    Сообщения
  • #5343
    baur
    Участник

    Добрый день, у меня пару вопросов по Модуль экспорта в БД

    1.
    Как работает Вставить или обновить существующие архивные данные?

    как я понял это требуется в для восстановление данных если на некоторые время пропал связь. Но не понятно, насколько глубоко? по идее когда я впервые запускаю скрипт должен был экспортироваться все данные в БД который есть в локальном архиве, но этого не происходило.

    2. Как разграничить каналы для экспорта в БД, например если не надо только определенны каналы.

    3. Как можно экспортировать только минутные срезы или часовые (или даже кастномный, например каждый 5 мин) но с условием, чтобы текущие данные не пропали.

    Скажем указываем время записывать данные по минутам:
    Создается строка и начинаем обновить эту строку и через минуту создадим другую и начинаем обновить и т.д., таки образом не теряем текущие данные

    • Эта тема была изменена 4 года, 10 месяцев назад от Mikhail.
    #5347
    Mikhail
    Модератор

    Добрый день!

    1. Архивные данные могут приходить только от тех устройств, которые поддерживают работу с архивами и для которых это реализовано в драйвере. Например, ВКТ-7.
    При скачивании архивных данных вызывается соответствующий SQL.

    2. Просьба уточнить 2-й вопрос.

    3. Разработать ту модель БД, которая Вам требуется, и разработать набор SQL-скриптов для Модуля экспорта в соответствии с Вашей моделью БД.

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

    #5351
    baur
    Участник

    1. Тогда что случиться если пропал связь с БД на час даже больше, мы теряем данные? Например CogentDataHub кэширует данные если пропал связь и отправляет пропущенные данные как только появится связь с БД.

    2. По умолчанию скрипт экспортирует все каналы, как бы фильтровать чтобы экспортировать только выбранные каналы. Например у меня 100 каналов требуется экспортировать только 10 каналов.

    #5352
    Mikhail
    Модератор

    1. Rapid SCADA складывает данные, отправляемые в БД в очередь (кэш), и отправляет по мере наличия связи. Если в Вашей системе велика вероятность проблем связи с БД, то возможно потребуется доработка модуля экспорта, чтобы увеличить размер этой очереди.

    2. Логику такого фильтра можно включить в SQL-скрипт.

    #5362
    baur
    Участник

    1. Ясно, судя по логу лимит 100 записей. Да, не плохо было бы увеличить размер кэша. В аналогичной программе кэш в виде текстового файла, размер задается в Mb

    также предусмотрен триггер записи в БД (не всегда записывать, это был как раз 3 вопрос)

    и фильтр (не все записывать)

    2. Спасибо, логику включил в SQL-скрипт

    3. Можно триггером, но не плохо было бы из коробки

    • Этот ответ был изменен 7 лет назад от baur.
    • Этот ответ был изменен 7 лет назад от baur.
    • Этот ответ был изменен 7 лет назад от baur.
    #5370
    Mikhail
    Модератор

    Спасибо за Ваши пожелания. Если стартует доработка данного модуля, учтём их.

    #5400
    baur
    Участник

    и фильтр (не все записывать)

    не правильно указал скрин для настроек фильтра

    #5479
    baur
    Участник

    Очередь в 100 записей явно не хватает, потом этот очередь для каждого сигнала или для всех? желательно чтобы был для каждого сигнала.
    У нас объекты разбросаны по регионам, так что переполнение очереди для нас обычное явление и нежелательное (((

    #5492
    Mikhail
    Модератор

    Добрый день!
    Длина очереди устанавливается для всех каналов.
    Можем обсудить условия (цену и сроки) доработки модуля, чтобы он работал в таких условиях.

    #5505
    baur
    Участник

    пока Rapid Scada у нас на уровне эксперимента, поэтому трудно будет убедить начальство. Посмотрим когда запустим пару реальных схем, как говорится: аппетит приходит во время еды …

    #5544
    Mikhail
    Модератор

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

    #12431
    Taw
    Участник

    Вопрос к “baur”, и к остальным. Как вы решили проблему
    2. По умолчанию скрипт экспортирует все каналы, как бы фильтровать чтобы экспортировать только выбранные каналы. Например у меня 100 каналов требуется экспортировать только 10 каналов.
    Вы написали Спасибо, логику включил в SQL-скрипт
    Как выглядит эта логика и можно ли поподробнее как вы сформировали Sql запрос. Можете его привести в этой теме?

    #12434
    baur
    Участник

    Вот самый простой пример
    T-SQL (MSSQL)

    IF (@CnlNum in (1,2,3) and @status = 1)
    BEGIN
    INSERT …
    END;

    а так на стороне БД куча скриптов который управляет потоком данных, который поступает в бешеном темпе. Все это сложно без доработки модуля …

    • Этот ответ был изменен 4 года, 10 месяцев назад от baur.
    #12443
    Taw
    Участник

    На стороне БД куча хранимых процедур и триггеров. Но у меня даже в Модуле не хочет работать sql запрос

    IF (@cnlnum = 270 )
    BEGIN
    INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES (@dateTime, @cnlnum, @val, @stat);
    END;

    В логе ошибка
    INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES’ at line 18
    2019-06-25 15:45:33 Unable to enqueue current data. The maximum size of the queue 100 is exceeded
    2019-06-25 15:45:33 Unable to enqueue current data. The maximum size of the queue 100 is exceeded
    2019-06-25 15:45:34 Unable to enqueue current data. The maximum size of the queue 100 is exceeded
    2019-06-25 15:45:34 Error export current data to DB MySQL — 127.0.0.1:3306: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IF (601 = 270 )
    BEGIN
    INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES’ at line 18

    #12444
    baur
    Участник

    то что я указал, это диалект T-SQL для MySQL по другому наверно

Просмотр 15 сообщений - с 1 по 15 (из 17 всего)
  • Вы должны авторизироваться для ответа в этой теме.