Фабрика данных Azure отображает 2 столбца в один столбец
Может кто-нибудь помочь мне решить ошибку, я получаю при объединении двух столбцов, т.е. first name
а также last name
из моего текстового файла и слияния двух столбцов в один столбец имени в моей базе данных SQL Azure как sink
в фабрике данных Azure, и другой вопрос заключается в том, что я хочу выбрать первую букву пола столбца, который M
или же F
для мужского и женского пола соответственно из исходного текстового файла и изменения его на одну букву M или F в столбце моего пола в конвейере фабрики данных Azure введите описание изображения здесь?
- Обновление 1
Моя таблица называется [dbo].[Contact], и после применения этой процедуры я получаю эту ошибку, и между именами моих столбцов в текстовом файле между ними есть пробел, например, Имя и Фамилия, это тоже создает проблему?
1 ответ
Основываясь на отображении doc: Schema в операции копирования, объединение столбцов поддерживается отображением схемы.
В качестве обходного пути, я предлагаю настроить сервер SQL stored procedure
в вашей раковине сервера sql. Он может объединять копируемые данные с существующими данными.
Пожалуйста, следуйте инструкциям из этого документа:
Шаг 1: Настройте ваш выходной набор данных:
Шаг 2. Настройте раздел "Мойка" в операции копирования следующим образом:
Шаг 3: В вашей базе данных определите тип таблицы с тем же именем, что и sqlWriterTableType. Обратите внимание, что схема типа таблицы должна совпадать со схемой, возвращаемой вашими входными данными.
CREATE TYPE [dbo].[MarketingType] AS TABLE(
[FirstName] [varchar](256) NOT NULL,
[LastName] [varchar](256) NOT NULL,
[Gender] [varchar](256) NOT NULL
)
Шаг 4. В вашей базе данных определите хранимую процедуру с тем же именем, что и SqlWriterStoredProcedureName. Он обрабатывает входные данные из указанного вами источника и объединяет их в выходную таблицу. Обратите внимание, что имя параметра хранимой процедуры должно совпадать с именем "tableName", определенным в наборе данных.
Create PROCEDURE spOverwriteMarketing @Marketing [dbo].[MarketingType] READONLY
AS
BEGIN
MERGE [dbo].[jay] AS target
USING @Marketing AS source
ON (1=1)
WHEN NOT MATCHED THEN
INSERT (name, gender)
VALUES (source.FirstName + ' ' + source.LastName, UPPER(left(source.Gender,1)));
END
Скриншот вывода:
Надеюсь, это поможет вам.