Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНИМО К:
Фабрика данных Azure
Azure Synapse Analytics
Совет
Data Factory в Microsoft Fabric — это следующее поколение Фабрика данных Azure с упрощенной архитектурой, встроенным искусственным интеллектом и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.
Чтобы скопировать данные из хранилища данных в Oracle Server, Netezza, Teradata или SQL Server в Azure Synapse Analytics, необходимо загрузить огромные объемы данных из нескольких таблиц. Обычно данные должны быть разделены в каждой таблице, чтобы можно было загружать строки из одной таблицы с использованием нескольких параллельных потоков. В этой статье описывается шаблон для этих сценариев.
Примечание.
Если вы хотите скопировать данные из небольшого количества таблиц с относительно небольшим объемом данных в Azure Synapse Analytics, более эффективно использовать средство копирования данных Фабрика данных Azure. Шаблон, описанный в этой статье, больше, чем вам нужно для данного сценария.
Информация о шаблоне решения
Этот шаблон получает список секций базы данных-источника для копирования из внешней контрольной таблицы. Затем он выполняет итерацию по каждой секции в базе данных-источнике и копирует данные в место назначения.
Шаблон состоит из трех действий.
- Действие Lookup извлекает список всех секций базы данных из внешней контрольной таблицы.
- ForEach получает список разделов из действия поиска и передает каждый раздел в действие копирования.
- Действие Copy копирует каждую секцию из базы данных-источника в целевое хранилище.
Ниже описаны параметры, которые определяет шаблон:
- Control_Table_Name — это внешняя контрольная таблица, в которой хранится список секций для базы данных-источника.
- Control_Table_Schema_PartitionID — имя столбца внешней контрольной таблицы, в котором хранятся идентификаторы всех секций. Убедитесь, что идентификатор секции уникален для каждой секции в базе данных-источнике.
- Control_Table_Schema_SourceTableName — внешняя контрольная таблица, в которой хранятся имена всех таблиц базы данных-источника.
- Control_Table_Schema_FilterQuery — это имя столбца во внешней контрольной таблице, в котором хранится запрос на фильтрацию для получения данных из каждого раздела базы данных-источника. Например, если разделить данные по годам, запрос, хранящийся в каждой строке, может быть похож на select * from datasource, где LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999''.
- Data_Destination_Folder_Path — это путь, по которому данные копируются в целевое хранилище (применимо, если выбранный целевой объект — "Файловая система" или "Azure Data Lake Storage 1-го поколения").
- Data_Destination_Container — это корневой путь, куда данные копируются в вашем целевом хранилище.
- Data_Destination_Directory — это путь к каталогу в корневой папке, в которой находится целевое хранилище, куда копируются данные.
Последние три параметра, определяющие путь в целевом хранилище, отображаются только в том случае, если выбранное назначение является хранилищем на основе файлов. Если в качестве целевого хранилища выбрано значение "Azure Synapse Analytics", эти параметры не требуются. Но имена таблиц и схема в Azure Synapse Analytics должны совпадать с именами в исходной базе данных.
Использование шаблона решения
Создайте таблицу управления в SQL Server или База данных SQL Azure для хранения списка секций базы данных-источника для массового копирования. В следующем примере вы видите пять секций в базе данных-источнике. Три секции предназначены для datasource_table, а две — для project_table. Столбец LastModifytime используется для разделения данных в таблице datasource_table из базы данных-источника. Запрос, который считывает первую секцию, выглядит следующим образом: select * from datasource_table где LastModifytime >= ''2015-01-01 00:00:00'' и LastModifytime <= ''2015-12-31 23:59:59.999''. Вы можете использовать аналогичный запрос для считывания данных из других секций.
Create table ControlTableForTemplate ( PartitionID int, SourceTableName varchar(255), FilterQuery varchar(255) ); INSERT INTO ControlTableForTemplate (PartitionID, SourceTableName, FilterQuery) VALUES (1, 'datasource_table','select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''), (2, 'datasource_table','select * from datasource_table where LastModifytime >= ''2016-01-01 00:00:00'' and LastModifytime <= ''2016-12-31 23:59:59.999'''), (3, 'datasource_table','select * from datasource_table where LastModifytime >= ''2017-01-01 00:00:00'' and LastModifytime <= ''2017-12-31 23:59:59.999'''), (4, 'project_table','select * from project_table where ID >= 0 and ID < 1000'), (5, 'project_table','select * from project_table where ID >= 1000 and ID < 2000');Перейдите к шаблону Массовое копирование из базы данных. Выберите Создать, чтобы установить подключение к внешней контрольной таблице, сформированной на шаге 1.
Выберите Создать, чтобы создать подключение к базе данных-источнику, из которой вы копируете данные.
Выберите Создать, чтобы создать подключение к целевой базе данных, в которую вы копируете данные.
Выберите Использовать этот шаблон.
Вы видите конвейер, как показано в следующем примере:
Выберите Отладка, введите Параметры, а затем нажмите Готово.
Вы увидите результат, аналогичный приведенному ниже:
(Необязательно) Если в качестве назначения данных выбрано значение "Azure Synapse Analytics", необходимо ввести подключение к хранилищу BLOB-объектов Azure для промежуточного хранения, как это необходимо для Azure Synapse Analytics Polybase. Шаблон автоматически создаст путь к контейнеру для хранилища Blob-объектов. Проверьте, был ли контейнер создан после выполнения конвейера.