Необходимо добавить запись заголовка и трейлера в файл csv - фабрика данных Azure

Я новичок в фабрике данных Azure, и мне нужно реализовать приведенную ниже логику с помощью фабрики данных Azure, где мы передаем CSV-файл из источника в место назначения с некоторым преобразованием в файле.

Входной файл содержит следующие данные:

111|101|2019-02-04 21:04:57

222|202|2019-02-04 21:33:54

333|202|2019-02-04 20:23:55

Ожидаемый результат:

H|TestFile|currentDateTime------------ Need to add this header record. H and TestFile would be static

111|101|2019-02-04 21:04:57

222|202|2019-02-04 21:33:54

333|202|2019-02-04 20:23:55

T|03-------------------------------------- T is static value. Need to add total number of records here.

Может кто-нибудь помочь с этим


comment
Можете ли вы использовать поток данных?   -  person Joseph Xu    schedule 28.02.2021
comment
Привет @rikta! Если мой ответ был для вас полезен, примите его (отметьте) как ответ. Большое спасибо! :)   -  person Joseph Xu    schedule 06.03.2021
comment
Спасибо большое, Джозеф ... Он работает :)   -  person rikta    schedule 08.03.2021


Ответы (1)


Обновление:
После серии тестов я могу получить следующий окончательный результат: введите описание изображения здесь
Обзор структуры следующим образом:  введите описание изображения здесь

  1. Я сохранил заголовок в текстовом файле.
     введите описание изображения здесь

  2. source1 сохраняет исходный CSV-файл, я установил имя столбца как Column_1 на вкладке Проекция. введите описание изображения здесь Предварительный просмотр source1 данных выглядит следующим образом: < img src = "https://i.stack.imgur.com/nyHLh.png" alt = "введите описание изображения здесь" />

  3. В действии SurrogateKey1 я ввожу Row_No как столбец ключа и 1 как начальное значение. введите описание изображения здесь

  4. В действии Window1 выберите Row_No в качестве столбца «Окно», затем введите выражение max(Row_No). введите здесь описание изображения Window1 предварительный просмотр данных выглядит следующим образом, я могу получить максимальное значение Row_No. введите описание изображения здесь

  5. Используйте действие Pivot1 для перехода от столбцов к строкам, введите выражение concat('T|',toString(max(Row_No),'00')), чтобы получить T|03. введите здесь описание изображения Pivot1 Предварительный просмотр данных об активности выглядит следующим образом: < img src = "https://i.stack.imgur.com/0zsZM.png" alt = "введите описание изображения здесь" />

  6. Настройки source2 такие же, как source1. введите описание изображения здесь

  7. В DerivedColumn1
    задайте имя столбца: Column1,
    установите выражение: concat(Column_1,'|',toString(currentTimestamp())). введите описание изображения здесь

  8. При SurrogateKey2 активности я ввожу Row_No как Ключевой столбец и 2 как Начальное значение. введите здесь описание изображения SurrogateKey2 Предварительный просмотр данных об активности выглядит следующим образом: < img src = "https://i.stack.imgur.com/GTdUt.png" alt = "введите описание изображения здесь" />

  9. В действии Select2 отфильтруйте столбец, который нам нужен, и дайте этому столбцу псевдоним. введите здесь описание изображения
    Предварительный просмотр данных выглядит следующим образом: введите описание изображения здесь

  10. headers хранит информацию заголовка в файле csv. Установите Column_1 в качестве имени столбца. введите описание изображения здесь

  11. При SurrogateKey3 активности я ввожу Row_No как Ключевой столбец и 1 как Начальное значение. введите описание изображения здесь

  12. Объединить SurrogateKey3 активность с Select2 активностью. введите здесь описание изображения Оно будет отсортировано по Row_No столбцу, поэтому заголовок будет в первой строке. введите описание изображения здесь

  13. Тогда мы сможем выбрать только то, что нам нужно, с помощью Select1 активности. введите здесь описание изображения Select1 Предварительный просмотр данных об активности выглядит следующим образом: < img src = "https://i.stack.imgur.com/cNraV.png" alt = "введите описание изображения здесь" />

  14. Объедините Pivot1 активность и Select1 активность через Union2 активность. введите описание изображения здесь Предварительный просмотр данных Union2 об активности выглядит следующим образом: введите описание изображения здесь

  15. После запуска отладки окончательный CSV-файл будет иметь следующий вид:
     введите описание изображения здесь

person Joseph Xu    schedule 01.03.2021
comment
Привет, Джозеф! Большое спасибо за ваш ответ. В строке заголовка currentDateTime не является статическим значением, и его необходимо сгенерировать с помощью функции current datetime. Любой предлагает, как с этим поступить. Также мы получим только 1 входной файл, содержащий актуальные данные. Мне нужно динамически добавлять строку заголовка и трейлера. Не могли бы вы предложить дальше ... - person rikta; 03.03.2021
comment
Да, я обновил свой ответ. Step7 будет использовать текущую функцию datetime для создания нового столбца. +10 от меня. - person Joseph Xu; 04.03.2021
comment
Это работает. Большое спасибо Джозефу :) - person rikta; 07.03.2021