Как перенести столбцовые данные в строку только 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
и т.д. Но на процесс это не влияет.