фабрика данных копирует данные без явного создания целевой таблицы - PullRequest
1 голос
/ 12 марта 2019

Я работаю над копированием данных из исходной базы данных Oracle в хранилище данных Target SQL с использованием фабрики данных.

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

Как настроить фабрику данных для копирования данных из источника в место назначения, где она будет автоматическисоздать таблицу в месте назначения, без необходимости явно создавать их вручную?

TIA

1 Ответ

0 голосов
/ 14 марта 2019

В прошлом году столкнулся с той же проблемой, использовал pipe.parameters () для динамического именования и действия хранимой процедуры фабрики данных перед операцией копирования, чтобы сначала создать пустую таблицу из шаблона перед копированием https://docs.microsoft.com/en-us/azure/data-factory/transform-data-using-stored-procedure.


CREATE PROCEDURE create_sql_table_proc @WindowStartYear NVARCHAR(30), @WindowStartMonth NVARCHAR(30), @WindowStartDay NVARCHAR(30)
AS

BEGIN


declare @strsqlcreatetable as [NVARCHAR](255)
declare @strsqldroptable as [NVARCHAR](255)
declare @tablename as [NVARCHAR](255)
declare @strsqlsetpk as [NVARCHAR](255)

select @tablename = 'TABLE_NAME_' + @WindowStartYear + @WindowStartMonth + @WindowStartDay

select @strsqldroptable = 'DROP TABLE IF EXISTS ' +  @tablename

select @strsqlcreatetable = 'SELECT * INTO ' + @tablename + ' FROM  OUTPUT_TEMPLATE'

select @strsqlsetpk = 'ALTER TABLE ' + @tablename + ' ADD PRIMARY KEY (CustID)'

exec (@strsqldroptable)
exec (@strsqlcreatetable)
exec (@strsqlsetpk)


END

С тех пор как мы начали отправлять таблицу в SQL из наших скриптов Pyspark, работающих в кластере, где нет необходимости сначала создавать пустую таблицу https://medium.com/@radek.strnad/tips-for-using-jdbc-in-apache-spark-sql-396ea7b2e3d3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...