Mirth подключить базу данных к базе данных дубликатов

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

Проблема заключается в том, что, установив интервал в источнике на 5 миллисекунд, канал опрашивает и записывает данные каждые 5 миллисекунд, даже если данные были опрошены или записаны ранее.

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

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

2 ответа

Два способа я могу думать о:

  1. Обычный способ - установить флаг в таблице БД, которую вы читаете. Как только данные будут считаны из этой таблицы веселья, вы обновите таблицу с помощью "Read" или же "Processed", Затем вы будете писать запрос на выборку на основе этого флага, поэтому он будет вставлять данные, только если флаг не равен "Read"/"Processed"

  2. В случае, если изменение БД не в ваших руках, вы можете написать запрос в для получения данных, как это "SELECT * FROM Table ORDER BY ID DESC LIMIT 1", Идентификационный номер является вашим основным.

Вы не публиковали свои каналы, поэтому я не знаю, как выглядят ваши запросы. Также вы не опубликовали схему БД. В общем, вам нужно реализовать способ отслеживать, какие записи были обработаны. Один из способов сделать это - добавить столбец в соответствующие таблицы со значением по умолчанию "NEW" при добавлении новых записей. Когда вы обработали их (например, скопировали из одной базы данных в другую), вы устанавливаете статус "COPIED" с помощью оператора обновления. При желании вы также можете иметь столбец с отметкой времени, которая указывает, когда была скопирована запись. Другой (возможно, лучший) способ - сделать это в отдельной таблице, которая отслеживает все мутации в базе данных. Это дает вам больше гибкости в том, какие события вы записываете.

Другие вопросы по тегам