Как перенести столбцовые данные в строку только 3 столбца (месяц) и сопоставить с ними остальные (без группировки) с помощью Azure DF/Synapse Pipeline/SQL-запроса

Фактический заголовок из файла CSV

      Supercategory   Segment Subsegment  Class   Total Property (Brand + License)    Corporate Manufacturer  Manufacturer    Brand   License Licensors   Model Number    Item Description    Jan 2022    Feb 2022    Jan 2022    Feb 2022    Jan 2022    Feb 2022    Jan 2022    Feb 2022    Jan 2022    Feb 2022    Jan 2022    Feb 2022

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

      COUNTRY LOCAL_CURRENCY  YEAR    MONTH   MONTH_YEAR  Supercategory   Segment Subsegment  Class   Total Property (Brand + License)    Corporate Manufacturer  Manufacturer    Brand   License Licensors   Model Number    Item Description    UNITS   AMOUNT_LC   AMOUNT_USD  % Distribution - Weighted   % of Stores Selling - Unweighted    $ Velocity - Weighted   Unit Velocity - Weighted    EXCHANGE_RATE

Ниже приведено изображение с данными в реальном формате файла и ожидаемым выводом (нормализованным).

1 ответ

Ожидаемый результат, который вы хотите, может быть достигнут с помощью потоков данных в фабрике данных Azure (студия ADF -> Автор -> Поток данных -> Новый поток данных). Ниже приведен заголовок csv образца данных, который я использую (аналогично вашему csv) в качестве источника.

      Category    Segment    total_property(brand+license)    Jan 2022    Feb 2022    Jan 2022    Feb 2022    Jan 2022    Feb 2022 

После настройки источника создайтеunpivotпреобразование для преобразования данных этого столбца и в данные строки. В рамках этого преобразования необходимо заполнить 3 важных поля: «Разгруппировать по», «Развернуть по ключу» и «Несведенные столбцы». Ниже показано, как вы заполняете эти поля для достижения ваших требований.

  • Разгруппировать по: выберите все столбцы, кроме столбцов и

  • Ключ Unpivot: назовите этот столбец какMonth_Year, проверятьEnter valuesи введите значения следующим образом.

  • Неповоротные столбцы: выберите Боковое расположение столбцов и добавьте столбцы, которые останутся после разворота.

Вы можете просмотреть данные, и результат будет выглядеть следующим образом.

Поскольку вы хотите добавить и столбец, создайтеderived columnтрансформация. Добавьте имена двух столбцовMonthсо значением какmonth(toDate(month_year,'MMM yyyy'))иYearсо значением какyear(toDate(month_year,'MMM yyyy')). Окончательный предварительный просмотр данных будет ожидаемым результатом, который вы хотите получить.

Выход:

Примечание. Поскольку в CSV есть столбцы с одинаковыми именами столбцов (Jan 2022иFeb 2022), поток данных принимает значения какJan 20223,Feb 20224и т.д. Но на процесс это не влияет.

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