Azure Data Factory - динамическое копирование с несколькими таблицами в источнике и месте назначения с использованием C # .NET - PullRequest
0 голосов
/ 03 мая 2019

Я написал это 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 для каждой таблицы. может ли кто-нибудь помочь

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Поскольку вы используете C #, вы можете или не можете использовать foreach, так как вы будете читать имя таблицы в переменную и проходить через нее.Я мог бы предложить вам создать параметр в ADF для имени таблицы и использовать его в Source и Sink.

0 голосов
/ 05 мая 2019

вы можете использовать для каждого действия и языка выражения. Пожалуйста, обратитесь к примеру.

https://docs.microsoft.com/en-us/azure/data-factory/control-flow-for-each-activity#iteration-expression-language

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