Используйте задачу сценария для удаления записей из таблицы с использованием переменных для имени таблицы и даты - PullRequest
0 голосов
/ 25 мая 2020

У меня есть поток данных, который читает записи из API. Затем он вставляет эти записи в базу данных SQL Azure в таблице. Проблема в том, что исходные данные не имеют первичного ключа. В исходных данных действительно есть идентичные записи, которые действительны. Я не хочу вставлять двойные записи. Я не хочу делать полную загрузку каждый раз, когда заполняю эту таблицу. Итак, идея состоит в том, чтобы получить данные за последний день из источника, удалить данные за последний день в целевой таблице и затем вставить данные из источника. Поскольку источник довольно медленный, если я удалю данные перед запуском потока данных, мои клиенты будут с неполными данными в течение нескольких минут до 20 минут. Я хочу, чтобы время между удалением и записью данных было как можно короче. Вот почему я думаю об использовании задачи сценария в потоке данных после чтения из источника и перед записью в целевую таблицу.

Задача сценария будет удалять записи из места назначения таблица, основанная на двух переменных: 1 для даты для выбора записей для удаления и одна для определения того, какая это будет schema.table.

Все это контролируется переменными. user::delete_date - это дата и время. user::schema_table - это schema_name таблицы, из которой нужно удалить записи. Имя таблицы всегда одно и то же, но схема различается. meta_inserted_date - это поле в целевой таблице типа datetime2

Итак, инструкция, которую я хочу, чтобы задача скрипта выполнялась, следующая:

DELETE FROM user::schema_table WHERE meta_inserted_date >= user::delete_date 

Поскольку я хочу, чтобы это выполнялось в поток данных Я не могу использовать задачу «Выполнить SQL». Единственный способ выполнить SQL в потоке данных - использовать задачу Script. Я понимаю сценарии, могу их адаптировать, но писать - другое дело… Помогите, пожалуйста?

1 Ответ

0 голосов
/ 26 мая 2020

Спасибо за комментарий billink c. Я отправлю его как ответ, чтобы помочь другим, у кого есть такая же проблема. надоест на 70 миллионный ряд.

Надеюсь, это вам поможет.

...