В чем разница между использованием операции COPY DATA для таблицы SQL и использованием CREATE EXTERNAL TABLE? - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть куча действий U-SQL, которые манипулируют и преобразуют данные в Azure Data Lake.Из этого я получаю csv файл, который содержит все мои события.

Далее я бы просто использовал действие Copy Data, чтобы скопировать файл csv из озера данных непосредственно в таблицу Azure SQL Data Warehouse.

Extract-Transform-Merge-Load

  1. Я извлекаю информацию из набора файлов JSON, хранящихся в озере данных, и создаю промежуточный файл .csv;
  2. Я беру промежуточный файл .csv и рабочий файл .csv, внедряю последние изменения (и избегаю дубликатов) и сохраняю рабочий файл .csv;
  3. Копируем .csv рабочий файл непосредственно к таблице Warehouse.

Я понял, что моя таблица содержит дублированные строки, и, после тестирования сценариев U-SQL, я предполагаю, что действие Copy Data, как-то, объединяетсодержимое файла csv в таблицу.

Вопрос

Я не уверен, что я поступаю правильно.Должен ли я определить свою таблицу хранилища как таблицу EXTERNAL , которая будет получать данные из рабочего файла .csv?Или я должен изменить свой U-SQL, чтобы включить только последние изменения?

1 Ответ

0 голосов
/ 12 апреля 2019

Если вы хотите использовать внешние таблицы, зависит от вашего варианта использования.Если вы хотите, чтобы данные были сохранены в SQL DW для повышения производительности, вы должны скопировать их в какой-то момент, например, с помощью хранимой процедуры.Затем вы можете просто вызвать хранимую процедуру из ADF, например.

Или, если вы не хотите / не можете отфильтровать данные заранее, вы также можете реализовать хранимую процедуру "Upsert" в вашем SQL DW.и позвоните по этому номеру , чтобы вставить свои данные вместо операции копирования.

...