Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как использовать действие копирования в конвейере для копирования данных из Amazon RDS для SQL Server.
Поддерживаемая конфигурация
Для настройки каждой вкладки в действии копирования перейдите к следующим разделам соответственно.
Общие
Ознакомьтесь с руководством по общим параметрам, чтобы настроить вкладку "Общие параметры".
Источник
Следующие свойства поддерживаются для Amazon RDS для SQL Server на вкладке "Источник " действия копирования.
Требуются следующие свойства:
Подключение. Выберите подключение Amazon RDS для SQL Server из списка подключений. Если подключение не существует, создайте новое подключение Amazon RDS для SQL Server, нажав кнопку "Создать".
Тип подключения: выберите Amazon RDS для SQL Server.
Используйте запрос. Укажите способ чтения данных. Вы можете выбрать таблицу, запрос или хранимую процедуру. В следующем списке описана конфигурация каждого параметра:
Таблица: чтение данных из указанной таблицы. Выберите исходную таблицу из раскрывающегося списка или нажмите кнопку "Изменить ", чтобы ввести ее вручную.
Запрос. Укажите настраиваемый SQL-запрос для чтения данных. Например,
select * from MyTable. Или щелкните значок карандаша для редактирования в редакторе кода.
Хранимая процедура: используйте хранимую процедуру, которая считывает данные из исходной таблицы. Последней инструкцией SQL должна быть инструкция SELECT в хранимой процедуре.
Имя хранимой процедуры: выберите хранимую процедуру или укажите имя хранимой процедуры вручную при выборе параметра "Изменить ", чтобы считывать данные из исходной таблицы.
Параметры хранимой процедуры: укажите значения для параметров хранимой процедуры. Допустимые значения: пары имен или значений. Имена и регистр параметров должны совпадать с именами и регистром параметров хранимых процедур. Вы можете выбрать Параметры импорта, чтобы получить параметры хранимой процедуры.
В разделе "Дополнительно" можно указать следующие поля:
Время ожидания запроса (минуты): укажите время ожидания для выполнения команды запроса, значение по умолчанию — 120 минут. Если для этого свойства задан параметр, допустимые значения имеют интервал времени, например "02:00:00" (120 минут).
Уровень изоляции: указывает поведение блокировки транзакций для источника SQL. Допустимые значения: read committed, Read uncommitted, Repeatable read, Serializable, Snapshot. Если значение не указано, используется уровень изоляции базы данных по умолчанию. Дополнительные сведения см. в разделе "Изоляция".
Параметр секционирования: укажите параметры секционирования данных, используемые для загрузки данных из Amazon RDS для SQL Server. Допустимые значения: Нет (по умолчанию), физические секции таблицы и динамический диапазон. Если опция секционирования включена (то есть не None), степень параллелизма для параллельной загрузки данных из Amazon RDS для SQL Server регулируется параметром Степень параллелизма копирования на вкладке настройки операции копирования.
Нет. Выберите этот параметр, чтобы не использовать секцию.
Физические разделы таблицы: при использовании физического раздела столбец раздела и механизм автоматически определяются на основе вашего определения физической таблицы.
Динамический диапазон: при использовании запроса с включенной параллельной обработкой требуется параметр секционирования диапазона
?DfDynamicRangePartitionCondition. Пример запроса:SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition.Имя столбца секционирования: укажите имя исходного столбца целочисленного или типа дата/время (
int,smallint,bigint,date,smalldatetime,datetime,datetime2, илиdatetimeoffset), используемый для диапазонного секционирования в процессе параллельного копирования. Если значение не указано, автоматически определяется индекс или первичный ключ таблицы и используется в качестве столбца секционирования.Если для получения исходных данных используется запрос, подключите
?DfDynamicRangePartitionConditionв предложении WHERE. Пример можно найти в разделе Параллельное копирование из базы данных SQL.Верхняя граница секции: укажите максимальное значение столбца секционирования для разделения диапазона секций. Это значение используется для выбора шага секционирования, а не для фильтрации строк в таблице. Все строки в таблице или результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение. Пример можно найти в разделе Параллельное копирование из базы данных SQL.
Нижняя граница секции: укажите минимальное значение столбца секционирования для разделения диапазона секций. Это значение используется для выбора шага секционирования, а не для фильтрации строк в таблице. Все строки в таблице или результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение. Пример можно найти в разделе Параллельное копирование из базы данных SQL.
Дополнительные столбцы: добавление дополнительных столбцов данных для хранения относительного пути или статического значения исходных файлов. Выражение поддерживается для последнего.
Обратите внимание на следующие аспекты:
- Если для источника задан запрос, действие копирования выполняет этот запрос в Amazon RDS для SQL Server, чтобы получить данные. Кроме того, можно указать хранимую процедуру, указав имя хранимой процедуры и параметры хранимой процедуры, если хранимая процедура принимает параметры.
- При использовании в источнике хранимой процедуры для получения данных посмотрите, разработана ли хранимая процедура таким образом, чтобы возвращать разные схемы при передаче разных значений параметра. При импорте схемы из пользовательского интерфейса или при копировании данных в базу данных SQL путем автоматического создания таблиц может возникнуть сбой или появиться непредвиденный результат.
Сопоставление
Чтобы настроить вкладку "Сопоставление", перейдите на вкладку "Настройка сопоставлений".
Настройки
Для настройки вкладки "Параметры" перейдите к разделу "Настройка других параметров" на вкладке "Параметры".
Сопоставление типов данных для Amazon RDS для SQL Server
При копировании данных из Amazon RDS для SQL Server используются следующие сопоставления типов данных SQL Server на промежуточные типы данных, применяемые службой.
| Тип данных Amazon RDS для SQL Server | Тип данных временной службы |
|---|---|
| Бигинт | Int64 |
| бинарный | Byte[] |
| кусочек | Boolean |
| уголь | Строка, символ[] |
| date | DateTime |
| Дата и время | DateTime |
| datetime2 | DateTime |
| Datetimeoffset | DateTimeOffset |
| Decimal | Decimal |
| Атрибут FILESTREAM (varbinary(max)) | Byte[] |
| Плавать | Double |
| image | Byte[] |
| инт | Int32 |
| деньги | Decimal |
| nchar | Строка, символ[] |
| ntext | Строка, символ[] |
| числовой | Decimal |
| nvarchar | Строка, символ[] |
| real | Single |
| версия строки | Byte[] |
| smalldatetime | DateTime |
| smallint | Int16 |
| smallmoney | Decimal |
| sql_variant | Object |
| текст | Строка, символ[] |
| time | TimeSpan |
| отметка времени | Byte[] |
| tinyint | Int16 |
| uniqueidentifier | Гид |
| varbinary | Byte[] |
| Варчар | Строка, символ[] |
| xml | String |
Замечание
В настоящее время для данных типов, которые сопоставляются с промежуточным типом Decimal, деятельность копирования поддерживает точность до 28. Если для ваших данных требуется точность больше 28, попробуйте преобразовать их в строковые данные в SQL-запросе.
При копировании данных из Amazon RDS для SQL Server с помощью фабрики данных Fabric битовый тип данных сопоставляется с логическим промежуточным типом данных. Если у вас есть данные, которые должны храниться в качестве битового типа данных, используйте запросы с T-SQL CAST или CONVERT.
Параллельное копирование из базы данных SQL
Соединитель Amazon RDS для SQL Server в операции копирования обеспечивает встроенное разбиение данных на разделы для параллельного копирования данных. Параметры секционирования данных можно найти на вкладке Источник действия Copy.
Если включено копирование с секционированием, то действие копирования выполняет параллельные запросы к источнику Amazon RDS для SQL Server для загрузки данных по секциям. Параллельная степень управляется степенью параллелизма копирования на вкладке параметров действия копирования. Например, если задать степень параллелизма копирования четырем, служба одновременно создает и выполняет четыре запроса на основе указанного параметра секции и параметров, а каждый запрос извлекает часть данных из Amazon RDS для SQL Server.
Рекомендуется включить параллельное копирование с секционированием данных, особенно при загрузке большого объема данных из Amazon RDS для SQL Server. Ниже приведены рекомендуемые конфигурации для разных сценариев. Если данные копируются в файловое хранилище данных, то рекомендуется сохранять данные в папку несколькими файлами (указывая только имя папки), так как производительность в таком случае будет выше, чем при записи в один файл.
| Сценарий | Предлагаемые параметры |
|---|---|
| Полная загрузка из большой таблицы с физическими разделами. |
Параметр секционирования. Физические секции таблицы. Во время выполнения служба автоматически определяет физические секции и копирует данные по секциям. Чтобы проверить, имеет ли таблица физическую секцию, выполните следующий запрос. |
| Полная загрузка большой таблицы без физических разделов, при этом с использованием столбца целочисленного типа или типа даты и времени для секционирования данных. |
Опции раздела: динамическая партиция диапазона. Столбец секционирования (необязательно). Укажите столбец для секционирования данных. Если другое значение не указано, используется столбец первичного ключа. Верхняя граница секционирования и Нижняя граница секционирования (необязательно). Указывайте, если необходимо определить шаг секционирования. Эти значения не предназначены для фильтрации строк в таблице. Все строки в таблице будут секционированы и скопированы. Если не указано иное, копирование автоматически определяет значения, и это может занять много времени в зависимости от значений MIN и MAX. Рекомендуется указывать верхнюю и нижнюю границы. К примеру, если ваш столбец раздела "Идентификатор" имеет диапазон значений от 1 до 100 и вы установили нижнюю границу как 20, а верхнюю границу как 80 с параллельным копированием как 4, служба извлекает данные по 4 разделам — идентификаторы в диапазоне <=20, [21, 50], [51, 80] и >=81 соответственно. |
| Загрузка большого объема данных, используя пользовательский запрос без физических секций, с применением столбца типа 'целое число' или типа 'дата/дата и время' для секционирования данных. |
Опции раздела: динамическая партиция диапазона. Запрос: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.Столбец секционирования: укажите столбец, используемый для секционирования данных. Верхняя граница секционирования и Нижняя граница секционирования (необязательно). Указывайте, если необходимо определить шаг секционирования. Эти значения не предназначены для фильтрации строк в таблице. Все строки в результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение. К примеру, если ваш столбец раздела "Идентификатор" имеет диапазон значений от 1 до 100, и вы установили нижнюю границу как 20, а верхнюю границу как 80, с параллельным копированием как 4, служба извлекает данные по 4 разделам — идентификаторы в диапазоне <=20, [21, 50], [51, 80] и >=81 соответственно. Ниже приведены дополнительные примеры запросов для различных сценариев. • Запросите всю таблицу: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition• Запрос из таблицы с выбором столбцов и дополнительными фильтрами условия WHERE. SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>• Запрос с вложенными запросами: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>• Запрос с разделом в подзапросе: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Ниже приведены рекомендации по загрузке данных с параметром секционирования.
- Чтобы избежать неравномерного распределения данных, выбирайте в качестве столбца секционирования отличительный столбец (например, первичный ключ или уникальный ключ).
- Если в таблице есть встроенные секции, используйте параметр "Физические секции таблицы " для повышения производительности.
Пример запроса для проверки физического раздела
SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id
WHERE s.name='[your schema]' AND t.name = '[your table name]'
Если таблица содержит физическую секцию, параметр HasPartition имеет значение yes, как показано ниже.
Сводка таблицы
В следующей таблице представлены резюме и подробная информация о процессе копирования Amazon RDS для SQL Server.
Сведения об источнике
| Имя | Описание | Значение | Обязательное поле | Свойство скрипта JSON |
|---|---|---|---|---|
| Соединение | Подключение к исходному хранилищу данных. | < подключение > | Да | подключение |
| Тип подключения | Тип подключения. Выберите Amazon RDS для SQL Server. | Amazon RDS для SQL Server | Да | / |
| Использование запроса | Настраиваемый SQL-запрос для чтения данных. | •Таблица •Запрос • Хранимая процедура |
Да | / |
| Таблица | Таблица исходных данных. | < имя целевой таблицы> | Нет | схема таблица |
| Запрос | Настраиваемый SQL-запрос для чтения данных. | < запрос > | Нет | sqlReaderQuery |
| Имя хранимой процедуры | Это свойство содержит имя хранимой процедуры, которая считывает данные из исходной таблицы. Последней инструкцией SQL должна быть инструкция SELECT в хранимой процедуре. | < Имя хранимой процедуры > | Нет | sqlReaderStoredProcedureName |
| Параметр хранимой процедуры | Это параметры для хранимой процедуры. Допустимые значения: пары имен или значений. Имена и регистр параметров должны совпадать с именами и регистром параметров хранимых процедур. | < пары "имя" или "значение" > | Нет | параметры хранимой процедуры |
| Время ожидания запроса | Время ожидания выполнения команды запроса. | промежуток времени (значение по умолчанию — 120 минут) |
Нет | queryTimeout |
| Уровень изоляции | Задает режим блокировки транзакций для источника данных SQL. | • Чтение с фиксацией • Чтение незафиксированного • Повторяемое чтение •Сериализуемый •Снимок |
Нет | уровень изоляции • Read Committed (чтение с фиксацией) • ReadUncommitted (Чтение незафиксированных данных) • RepeatableRead (Повторяемое чтение) •Сериализуемый •Снимок |
| Параметр секции | Параметры секционирования данных, используемые для загрузки данных из Amazon RDS для SQL Server. | • Нет (по умолчанию) • Физические разделы таблицы •Динамический диапазон |
Нет | partitionOption: • Нет (по умолчанию) • ФизическиеРазделыТаблицы • DynamicRange |
| Имя столбца для секционирования | Имя исходного столбца в типе целого числа или даты/даты и времени (int, smallint, bigint, date, smalldatetime, datetime, datetime2, или datetimeoffset), используемом секционированием диапазона для параллельного копирования. Если значение не указано, автоматически определяется индекс или первичный ключ таблицы и используется в качестве столбца секционирования. Если для получения исходных данных используется запрос, подключите ?DfDynamicRangePartitionCondition в предложении WHERE. |
< Имена столбцов секций > | Нет | имя столбца раздела |
| Верхняя граница секции | Максимальное значение столбца секционирования для разделения диапазона секций. Это значение используется для выбора шага секционирования, а не для фильтрации строк в таблице. Все строки в таблице или результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение. | < верхняя граница раздела > | Нет | partitionUpperBound |
| Нижняя граница раздела | Минимальное значение столбца секционирования для разбиения диапазона секций. Это значение используется для выбора шага секционирования, а не для фильтрации строк в таблице. Все строки в таблице или результатах запроса будут секционированы и скопированы. Если значение не указано, действие копирования автоматически определяет значение. | < нижняя граница раздела > | Нет | partitionLowerBound |
| Дополнительные столбцы | Добавьте дополнительные столбцы данных для хранения относительного пути или статического значения исходных файлов. Выражение поддерживается для последнего. | • Имя •Ценность |
Нет | дополнительныеКолонки: •имя •ценность |