Я написал это copy activity
в C#
.NET
, которое перемещает данные из Sql Server
в Azure
. В настоящее время он использует одну таблицу как для источника, так и для пункта назначения, и вот мой код
private DatasetResource CreateDataSetResourceSqlServer(string tableName)
{
DatasetResource sqlDatasetResource = new DatasetResource(
new SqlServerTableDataset
{
LinkedServiceName = new LinkedServiceReference(LinkedServiceReferenceNameSqlServer),
TableName = tableName
}
);
return sqlDatasetResource;
}
private CopyActivity CreateCopyActivity()
{
return new CopyActivity
{
Name = CopyActivityNameSqlServerToAzure,
Inputs = new List<DatasetReference>() { new DatasetReference() { ReferenceName = DataSetNameSqlServer } },
Outputs = new List<DatasetReference>() { new DatasetReference() { ReferenceName = DataSetNameAzureSql } },
Source = new SqlSource { SqlReaderQuery = "SELECT * FROM Table1" },
Sink = new SqlSink { }
};
}
это работает, но не является scalable
решением, хотя DataSet
создание динамическое, а CopyActivity
- нет. У меня есть 50 таблиц в источнике и в месте назначения, и у меня есть идея, что если я перечислю все имена своих таблиц в файле и переберу их, но тогда как мне сделать CopyActivity
с динамическим Source
, который сможет копировать данные для нескольких таблиц. Также, если в будущем будут добавлены новые таблицы в файл, мне не нужно будет писать CopyActivity
для каждой таблицы.
может ли кто-нибудь помочь