Фабрика данных Azure v2 Не пустые столбцы в приемнике - PullRequest
0 голосов
/ 24 октября 2018

Я пробую Azure Data Factory v2 и хочу передать данные из источника SQL в приемник Oracle.

Моя проблема в том, что в моих таблицах Oracle есть несколько столбцов Not Null, которые указываютнапример, дата и время загрузки набора данных в Oracle.Однако эти столбцы не существуют в таблицах SQL, поэтому, когда я хочу запустить конвейер, я получаю сообщение об ошибке, что эти столбцы не могут быть нулевыми в приемнике Oracle.

Мой вопрос сейчас, возможно ли этоискусственно добавить эти столбцы во время выполнения конвейера, чтобы эти столбцы заполнялись фабрикой данных?
Можно ли использовать для этого хранимую процедуру или пользовательское действие?
Или мне нужно создать скрипт Powershell, который "жесткие коды "значения, которые я хочу добавить к источнику?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Это можно сделать в ADFv2, используя запрос к исходному набору данных в операции копирования для вставки значений.

Используя таблицу ex_employee со следующей конфигурацией в каждой базе данных:

Источниктаблица (SQL):

ID int not null,
Name nvarchar(25) not null

таблица приемника (Oracle):

ID number(p,0) not null,
Name nvarchar2(25) not null,
CreatedDate timestamp not null

В конфигурации источника в операции копирования в ADF вы должны выбрать параметр «Запрос» в разделе «Использовать запрос»,и введите запрос, такой как:

SELECT ID, Name, CURRENT_TIMESTAMP AS CreatedDate FROM ex_employee

. Он возьмет существующие значения из таблицы SQL и вставит значение по умолчанию в набор результатов, который затем может быть вставлен в ваш приемник Oracle.

0 голосов
/ 24 октября 2018

Имеет ли этот столбец значение по умолчанию?Вы можете добавить по умолчанию в этот столбец, а затем попробовать?Я не знаком с данными oracle pipe, однако похожий подход в приведенном ниже примере добавляет значение по умолчанию в ненулевой столбец.

drop table ex_employee
/
create table ex_employee (id number(1) null ,name varchar2(100)  default 'A' not null )
/
insert into ex_employee(id)
select 1 from dual
/
commit
/

selecT * from ex_employee where id=1
...