Какой лучший способ использовать метод Upsert на фабрике данных Azure? - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть несколько CSV-файлов, хранящихся в хранилище BLOB-объектов.Каждый CSV обновляется каждый день.Это обновление состоит в добавлении некоторых новых строк и модификации некоторых старых строк.Я использую фабрику данных Azure (v2), чтобы получить эти данные из хранилища BLOB-объектов и поместить их в базу данных SQL.

Проблема в том, что мой процесс занимает около 15 минут, поэтому я подозреваю, что я не следую ЛУЧШИМ ПРАКТИКАМ.

Я не знаю, как именно работает "Upsert"метод погружения.Но я думаю, что этот метод нуждается в логическом условии, которое указывает, хотите ли вы обновить эту строку (если true) или вставить эту строку (если false)

Я получаю это условие, используя столбец, который получаю путем соединения csv (origin) с ddbb (destiny).Делая это таким образом, вы получите «ноль», если строка является новой, и «не ноль», если строка уже существует в базе данных ddbb.Поэтому я вставляю строки с этим «нулевым» значением, а другие я просто обновляю.

Это лучший / правильный способ сделать такой метод upsert?Могу ли я сделать что-то лучше, чтобы улучшить свое время?

Спасибо.

Eru -Ilúvatar

1 Ответ

0 голосов
/ 20 сентября 2019

Вы используете потоки данных?Если это так, вы можете обновить базу данных SQL, используя upsert или отдельные пути вставки / обновления.Установите политику, значения которой вы хотите обновить в преобразовании Alter Row, затем установите Sink для Upsert, Update и / или Insert.Вам нужно будет указать ключевой столбец в вашем приемнике, который мы будем использовать в качестве ключа обновления вашей базы данных.

...