Поделиться через


Копирование данных из Amazon RDS для Oracle с помощью Фабрики данных Azure или Azure Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье описывается, как с помощью действия Copy в Фабрике данных Azure копировать данные из базы данных Amazon RDS для Oracle. Она составлена на основе статьи Действие Copy в Фабрике данных Azure.

Это важно

Соединитель Amazon RDS для Oracle версии 2.0 обеспечивает улучшенную поддержку Amazon RDS для Oracle. Если вы используете Amazon RDS для соединителя Oracle версии 1.0 в решении, обновите соединитель Amazon RDS для Oracle до 31 октября 2025 г. Дополнительные сведения о разнице между версией 2.0 и версией 1.0 см. в этом разделе .

Поддерживаемые возможности

Данный соединитель Amazon RDS для Amazon RDS для Oracle поддерживается для следующих возможностей:

Поддерживаемые возможности ИКР (инфракрасное излучение)
Действие копирования (источник/-) (1) (2)
Действие поиска (1) (2)

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

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

В частности, этот соединитель Amazon RDS для Oracle поддерживает:

  • Следующие версии базы данных Amazon RDS для Oracle версии 2.0:
    • Amazon RDS для Oracle 19c и выше
    • Amazon RDS для Oracle 18c и выше
    • Amazon RDS для Oracle 12c и выше
  • Следующие версии базы данных Amazon RDS для Oracle версии 1.0:
    • Amazon RDS для Oracle 19c R1 (19.1) и более поздних версий;
    • Amazon RDS для Oracle 18c R1 (18.1) и более поздних версий;
    • Amazon RDS для Oracle 12c R1 (12.1) и более поздних версий;
    • Amazon RDS для Oracle 11c R1 (11.1) и более поздних версий.
  • Параллельное копирование из источника Amazon RDS для Oracle. Дополнительные сведения см. в разделе Параллельное копирование из Amazon RDS для Oracle.

Примечание.

Прокси-сервер Amazon RDS для Oracle не поддерживается.

Необходимые компоненты

Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.

Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.

Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.

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

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

Начало работы

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы для Amazon RDS для Oracle с помощью пользовательского интерфейса

Выполните следующие действия, чтобы создать связанную службу для Amazon RDS для Oracle в пользовательском интерфейсе портала Azure.

  1. Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":

  2. Найдите Amazon RDS для Oracle и выберите соединитель Amazon RDS для Oracle.

    Снимок экрана: соединитель Amazon RDS для Oracle.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана: конфигурация связанной службы для Amazon RDS для Oracle.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей, характерных для соединителя Amazon RDS для Oracle.

Свойства связанной службы

Соединитель Amazon RDS для Oracle версии 2.0 поддерживает TLS 1.3. Ознакомьтесь с этим разделом , чтобы обновить версию соединителя Amazon RDS для Oracle с версии 1.0. Чтобы узнать подробности о свойстве, см. соответствующие разделы.

Версия 2.0

Связанная служба Amazon RDS для Oracle поддерживает следующие свойства при применении версии 2.0:

Свойство Описание: Обязательное поле
тип Для свойства type необходимо задать значение AmazonRdsForOracle. Да
версия Версия, которую вы указали. Значение равно 2.0. Да
сервер Расположение Amazon RDS для базы данных Oracle, к которой требуется подключиться. Чтобы указать его, можно ссылаться на конфигурацию свойства сервера . Да
тип аутентификации Тип проверки подлинности для подключения к базе данных Oracle Amazon RDS. Теперь поддерживается только базовая проверка подлинности. Да
имя пользователя Имя пользователя базы данных Oracle для Amazon RDS. Да
пароль Пароль базы данных Oracle для Amazon RDS. Пометьте это поле как SecureString для безопасного хранения. Вы можете также указать секрет, хранящийся в Azure Key Vault. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная Azure Integration Runtime. нет

Дополнительные свойства подключения можно задать в связанной службе в соответствии с вашими требованиями.

Свойство Описание: Обязательное поле Значение по умолчанию
клиент шифрования Указывает поведение клиента шифрования. Поддерживаемые значения: accepted, rejectedrequestedили required. Тип: строка нет required
Типы шифрования клиента Задает алгоритмы шифрования, которые может использовать клиент. Поддерживаемые значения: AES128, AES192, AES256, 3DES1123DES168. Тип: строка нет (AES256)
cryptoChecksumClient Указывает требуемое поведение целостности данных при подключении этого клиента к серверу. Поддерживаемые значения: accepted, rejectedrequestedили required. Тип: строка нет required
cryptoChecksumTypesClient Задает алгоритмы крипто-контрольной суммы, которые может использовать клиент. Поддерживаемые значения: SHA1, SHA256, SHA384SHA512. Тип: строка нет (SHA512)
InitialLobFetchSize Указывает объем, который исходный источник изначально извлекает для столбцов бизнес-объектов. Тип: int нет 0
размер выборки Указывает количество байтов, которое драйвер выделяет для извлечения данных за один цикл обращения к базе данных. Тип: int нет 10 МБ
размерКэшаЗапросов Указывает количество курсоров или инструкций, которые необходимо кэшировать для каждого подключения к базе данных. Тип: int нет 0
initializationString Указывает команду, выданную сразу после подключения к базе данных для управления параметрами сеанса. Тип: строка нет ноль
ВключитьМассовуюЗагрузку Указывает, следует ли использовать массовую копию или пакетную вставку при загрузке данных в базу данных. Тип: логический нет правда
поддержкаТиповДанныхV1 Указывает, следует ли использовать сопоставления типов данных версии 1.0. Не устанавливайте это значение true, если вы не хотите поддерживать обратную совместимость с сопоставлениями типов данных версии 1.0. Тип: логический Нет, это свойство предназначено только для обратной совместимости. неправда
fetchTswtzAsTimestamp Указывает, возвращает ли драйвер значение столбца с типом данных TIMESTAMP WITH TIME ZONE как DateTime или string. Этот параметр игнорируется, если значение supportV1DataTypes не равно true. Тип: логический Нет, это свойство предназначено только для обратной совместимости. правда

Пример:

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>", 
            "username": "<user name>", 
            "password": "<password>", 
            "authenticationType": "<authentication type>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: хранение пароля в Azure Key Vault

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>", 
            "username": "<user name>", 
            "authenticationType": "<authentication type>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                }, 
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

server Конфигурация свойства

Для server свойства его можно указать в одном из следующих трех форматов:

Формат Пример
Дескриптор подключения (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))
Именование Easy Connect Plus salesserver1:1521/sales.us.example.com
Имя служб Oracle Net Services (псевдоним TNS) ( только для локальной среды выполнения интеграции) продажи

В следующем списке показаны поддерживаемые параметры, используемые в server. Если вы используете параметры, которые не находятся в следующем списке, подключение завершается ошибкой.

  • При использовании среды выполнения интеграции Azure:

    ведущий
    ПОРТ
    ПРОТОКОЛ
    Название_сервиса
    идентификатор безопасности (SID)
    INSTANCE_NAME
    СЕРВЕР
    ТАЙМАУТ СОЕДИНЕНИЯ
    Количество_повторных_попыток
    ЗАДЕРЖКА_ПОВТОРА
    SSL_VERSION
    SSL_SERVER_DN_MATCH (проверка соответствия имени сервера SSL)
    SSL_SERVER_CERT_DN

  • При использовании локальной среды выполнения интеграции:

    ведущий
    ПОРТ
    ПРОТОКОЛ
    ВКЛЮЧИТЬ
    Время истечения срока
    ПЕРЕКЛЮЧЕНИЕ НА РЕЗЕРВ
    балансировка нагрузки
    Размер_буфера_приема
    SDU
    РАЗМЕР_БУФЕРА_ОТПРАВКИ
    исходный_маршрут
    ТИП_УСЛУГИ
    COLOCATION_TAG
    Префикс_ИД_ПОДКЛЮЧЕНИЯ
    Режим резервирования
    GLOBAL_NAME
    HS
    INSTANCE_NAME
    граница бассейна
    КЛАСС_ПОДКЛЮЧЕНИЯ_ПУЛА
    Имя пула
    ЧИСТОТА БАССЕЙНА
    База данных RDB
    Ключ шардирования
    ИД_КЛЮЧА_ШАРДИРОВАНИЯ
    SUPER_SHARDING_KEY
    СЕРВЕР
    Название_сервиса
    идентификатор безопасности (SID)
    ИМЯ_СЛУЖБЫ_ТУННЕЛЯ
    SSL_АУТЕНТИФИКАЦИЯ_КЛИЕНТА
    АЛИАС_SSL_СЕРТИФИКАТА
    SSL_CERTIFICATE_THUMBPRINT (Отпечаток сертификата SSL)
    SSL_VERSION
    SSL_SERVER_DN_MATCH (проверка соответствия имени сервера SSL)
    SSL_SERVER_CERT_DN
    МЕСТОПОЛОЖЕНИЕ_КАРМАНА
    ТАЙМАУТ СОЕДИНЕНИЯ
    Количество_повторных_попыток
    ЗАДЕРЖКА_ПОВТОРА
    TRANSPORT_CONNECT_TIMEOUT (тайм-аут подключения транспорта)
    RECV_TIMEOUT
    Компрессия
    УРОВНИ СЖАТИЯ

Версия 1.0

Связанная служба Amazon RDS для Oracle поддерживает следующие свойства при применении версии 1.0:

Свойство Описание: Обязательное поле
тип Для свойства type необходимо задать значение AmazonRdsForOracle. Да
connectionString Указывает сведения, необходимые для подключения к экземпляру базы данных Amazon RDS для Oracle.
Вы можете также поместить пароль в Azure Key Vault и извлечь конфигурацию password из строки подключения. Ознакомьтесь с приведенными ниже примерами и подробными сведениями в статье Хранение учетных данных в Azure Key Vault.

Поддерживаемые типы подключений: вы можете использовать ИД безопасности Amazon RDS для Oracle или имя службы Amazon RDS для Oracle для идентификации базы данных.
— Если вы используете идентификатор безопасности, используйте этот код для подключения: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
— Если вы используете имя службы, используйте этот код: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
Чтобы получить доступ к расширенным собственным параметрам подключения Amazon RDS для Oracle, добавьте запись в файл TNSNAMES.ORA на сервере Amazon RDS для Oracle и в связанной службе Amazon RDS для Oracle, используйте тип соединения по имени службы Amazon RDS для Oracle и настройте соответствующее имя службы.
Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная Azure Integration Runtime. нет

При наличии нескольких экземпляров Amazon RDS для Oracle для сценария отработки отказа можно создать связанную службу Amazon RDS для Oracle и указать основной узел, порт, имя пользователя, пароль и т. д., а также добавить новое значение "Дополнительные свойства подключения" с именем свойства AlternateServers и значением (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) — не пропускайте скобки и обращайте внимание на двоеточия (:) в качестве разделителя. Например, следующее значение альтернативных серверов определяет два альтернативных сервера баз данных для отработки отказа подключения: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

Дополнительные свойства подключения, которые можно задать в строке подключения в зависимости от сценария

Свойство Описание: Допустимые значения
РазмерМассива Число байтов, которое соединитель может получить в одном круговом пути сети. Например, ArraySize=‭10485760‬.

Чем больше значение, тем больше пропускная способность, поскольку получать данные из сети приходится реже. Чем меньше значение, тем меньше время отклика, так как передача данных с сервера выполняется быстрее.
Целое число от 1 до 4294967296 (4 ГБ). Значение по умолчанию: 60000. Значение 1 не определяет число байтов, а указывает на выделение пространства только для одной строки данных.

Включить шифрование для подключения Amazon RDS для Oracle можно двумя способами:

  • Чтобы использовать шифрование 3DES и AES, на стороне сервера Amazon RDS для Oracle перейдите к Oracle Advanced Security (OAS) и настройте соответствующие параметры. Дополнительные сведения см. в этой документации по Oracle. Соединитель Amazon RDS для Oracle Application Development Framework (ADF) автоматически согласовывает метод шифрования таким образом, чтобы при установлении соединения с Amazon RDS для Oracle использовался тот метод шифрования, который вы настроили в OAS.

  • Использование TLS:

    1. Получите сведения о TLS/SSL-сертификате. Получите сведения о SSL-сертификате в кодировке Distinguished Encoding Rules( DER) и сохраните выходные данные (----- Begin Certificate … End Certificate -----) как текстовый файл.

      openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
      

      Пример. Извлеките сведения о сертификате из файла DERcert.cer и сохраните выходные данные в файле cert.txt.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. Создайте keystore или truststore. Следующая команда создает файл truststore, с паролем или без него, в формате PKCS-12.

      openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
      

      Пример. Создайте файл truststore в формате PKCS-12 с именем MyTrustStoreFile и паролем.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. Поместите файл truststore на компьютер в локальной среде IR. Например, по адресу C:\MyTrustStoreFile.

    4. В службе настройте строку подключения Amazon RDS для Oracle с помощью EncryptionMethod=1 и соответствующего значения TrustStore/TrustStorePassword. Например, Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.

Пример:

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: хранение пароля в Azure Key Vault

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

В этом разделе содержится список свойств, поддерживаемых набором данных Amazon RDS для Oracle. Полный список разделов и свойств, доступных для определения наборов данных, см. в разделе Наборы данных в фабрике данных Azure.

Чтобы скопировать данные из базы данных Amazon RDS для Oracle или в нее, установите для свойства type набора данных значение AmazonRdsForOracleTable. Поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
тип Для свойства type набора данных необходимо задать значение AmazonRdsForOracleTable. Да
схема Имя схемы. нет
таблица Имя таблицы или представления. нет
имя_таблицы Имя таблицы или представления со схемой. Это свойство поддерживается только для обеспечения обратной совместимости. Для новой рабочей нагрузки используйте schema и table. нет

Пример:

{
    "name": "AmazonRdsForOracleDataset",
    "properties":
    {
        "type": "AmazonRdsForOracleTable",
        "schema": [],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        },
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for Oracle linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Свойства действия копирования

В этом разделе содержится список свойств, поддерживаемых источником Amazon RDS для Oracle. Полный список разделов и свойств, доступных для определения действий, см. в разделе Конвейеры и действия в фабрике данных Azure.

Использование Amazon RDS для Oracle в качестве источника

Совет

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

Чтобы копировать данные из Amazon RDS для Oracle, установите в действии Copy тип источника AmazonRdsForOracleSource. В разделе source действия копирования поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
тип Свойству type источника действия копирования необходимо задать значение AmazonRdsForOracleSource. Да
oracleReaderQuery Используйте пользовательский SQL-запрос для чтения данных. Например, "SELECT * FROM MyTable".
При включении секционированной нагрузки необходимо привязать все соответствующие встроенные параметры раздела в запросе. Примеры см. в разделе Параллельное копирование из Amazon RDS для Oracle.
нет
преобразоватьДесятичноеВЦелое Amazon RDS для типа Oracle NUMBER с нулевой или неопределенной шкалой будет преобразована в соответствующее целое число. Допустимые значения: true и false (по умолчанию).
Если вы используете Amazon RDS для Oracle версии 2.0, это свойство может быть задано только в том случае, если значение supportV1DataTypes имеет значение true.
нет
параметры раздела Задает параметры секционирования данных, используемые для загрузки данных из Amazon RDS для Oracle.
Допустимые значения: Нет (по умолчанию), PhysicalPartitionsOfTable и DynamicRange.
Если параметр секционирования включен (любое значение, кроме None), степень параллелизма для одновременной загрузки данных из базы данных Amazon RDS для Oracle управляется параметром parallelCopies в действии Copy.
нет
настройки раздела Позволяет указать группу параметров для секционирования данных.
Применяется, если параметр секционирования имеет значение, отличное от None.
нет
имена разделов Список физических секций, которые необходимо скопировать.
Применяется, если параметр секции имеет значение PhysicalPartitionsOfTable. Если для получения исходных данных используется запрос, подключите ?AdfTabularPartitionName в предложении WHERE. Пример см. в разделе Параллельное копирование из Amazon RDS для Oracle.
нет
имя столбца раздела Укажите имя исходного столбца целочисленного типа, который будет использоваться для секционирования по диапазонам при параллельном копировании. Если значение не указано, автоматически определяется первичный ключ таблицы, который используется в качестве столбца секционирования.
Применяется, если параметр секции имеет значение DynamicRange. Если для получения исходных данных используется запрос, подключите ?AdfRangePartitionColumnName в предложении WHERE. Пример см. в разделе Параллельное копирование из Amazon RDS для Oracle.
нет
верхняя граница раздела Максимальное значение столбца секционирования для копирования данных.
Применяется, если параметр секции имеет значение DynamicRange. Если для получения исходных данных используется запрос, подключите ?AdfRangePartitionUpbound в предложении WHERE. Пример см. в разделе Параллельное копирование из Amazon RDS для Oracle.
нет
partitionLowerBound Минимальное значение столбца секционирования для копирования данных.
Применяется, если параметр секции имеет значение DynamicRange. Если для получения исходных данных используется запрос, подключите ?AdfRangePartitionLowbound в предложении WHERE. Пример см. в разделе Параллельное копирование из Amazon RDS для Oracle.
нет

Пример: копирование данных с помощью простого запроса без секции

"activities":[
    {
        "name": "CopyFromAmazonRdsForOracle",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for Oracle input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForOracleSource",
                "convertDecimalToInteger": false,
                "oracleReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Параллельное копирование из Amazon RDS для Oracle

Соединитель Amazon RDS для Oracle обеспечивает встроенное секционирование данных для копирования данных из Amazon RDS для Oracle в параллельном режиме. Параметры секционирования данных можно найти на вкладке Источник действия Copy.

Снимок экрана: параметры секционирования.

Если включено копирование с секционированием, служба выполняет параллельные запросы к источнику Amazon RDS для Oracle для загрузки данных по секциям. Степень параллелизма определяется с помощью параметра parallelCopies для действия копирования. Например, если parallelCopies имеет значение 4, служба одновременно создаст и выполнит четыре запроса с учетом указанного способа и параметров секционирования, где каждый запрос извлекает часть данных из базы данных Amazon RDS для Oracle.

Рекомендуется включить параллельное копирование с секционированием данных, особенно при загрузке большого объема данных из Amazon RDS для Oracle. Ниже приведены рекомендуемые конфигурации для разных сценариев. Если данные копируются в файловое хранилище данных, то рекомендуется сохранять данные в папку несколькими файлами (указывая только имя папки), так как производительность в таком случае будет выше, чем при записи в один файл.

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

Во время выполнения служба автоматически определяет физические секции и копирует данные по секциям.
Полная загрузка из большой таблицы без физических секций, когда таблица содержит столбец целочисленного типа для секционирования данных. Параметры секции: секция динамического диапазона.
Столбец секционирования: укажите столбец, используемый для секционирования данных. Если значение не указано, то используется столбец с первичным ключом.
Загрузка большого объема данных с помощью пользовательского запроса с физическими секциями. Параметр секционирования. Физические секции таблицы.
Запрос: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
Имя секции: укажите имена секций, из которых следует копировать данные. Если не указано, служба автоматически обнаруживает физические секции в таблице, указанной в наборе данных Amazon RDS для Oracle.

Во время выполнения служба данных заменяет ?AdfTabularPartitionName фактическим именем секции и отправляет данные в Amazon RDS для Oracle.
Загрузка большого объема данных пользовательским запросом без использования физических секций, однако с использованием столбца целочисленного типа для секционирования данных. Параметры секции: секция динамического диапазона.
Запрос: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Столбец секционирования: укажите столбец, используемый для секционирования данных. Секционирование можно выполнять по столбцу с целочисленным типом данных.
Верхняя граница секции и Нижняя граница секции: укажите эти значения, если нужно добавить фильтрацию по столбцу секционирования, чтобы получить данные только в пределах между нижним и верхним значениями.

В ходе выполнения служба заменяет ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound и ?AdfRangePartitionLowbound фактическим именем столбца и диапазонами значений для каждой секции и отправляет в Amazon RDS для Oracle.
Например, если указан столбец секционирования ID с нижней границей 1 и верхней границей 80 при этом для параллельного копирования указано значение 4, служба будет извлекать данные по 4 секциям. Для них будут применены следующие диапазоны значений идентификаторов: [1, 20], [21, 40], [41, 60] и [61, 80].

Совет

При копировании данных из несекционированной таблицы можно использовать параметр секции "Динамический диапазон" для секционирования по целочисленному столбцу. Если в исходных данных нет такого типа столбца, можно использовать функцию ORA_HASH в исходном запросе, чтобы создать столбец и использовать его в качестве столбца секционирования.

Пример: запрос с физической секцией

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
    "partitionOption": "PhysicalPartitionsOfTable",
    "partitionSettings": {
        "partitionNames": [
            "<partitionA_name>",
            "<partitionB_name>"
        ]
    }
}

Пример: запрос с секционированием по динамическому диапазону

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

Сопоставление типов данных для Amazon RDS для Oracle

При копировании данных из Amazon RDS для Oracle в службу используются следующие промежуточные сопоставления типов данных. Чтобы узнать, как действие копирования сопоставляет исходную схему и типы данных с приемником, см. раздел Сопоставление схем и типов данных.

Тип данных Amazon RDS для Oracle Тип данных промежуточной службы (для версии 2.0) Тип данных промежуточной службы (для версии 1.0)
BFILE Байт[] Байт[]
BINARY_FLOAT Один Один
BINARY_DOUBLE Двойной Двойной
BLOB-объект Байт[] Байт[]
СИМВОЛ / УГОЛЬ Струна Струна
CLOB Струна Струна
Дата дата и время дата и время
FLOAT (P < 16) Двойной Двойной
FLOAT (P >≥ 16) Десятичное число Двойной
ИНТЕРВАЛ ОТ ГОДА ДО МЕСЯЦА Int64 Струна
ИНТЕРВАЛ ОТ ДНЯ ДО СЕКУНДЫ Интервал времени Струна
ДЛИННЫЙ Струна Струна
LONG RAW Байт[] Байт[]
NCHAR Струна Струна
НЦЛОБ Струна Струна
НОМЕР (p,s) Int16, Int32, Int64, Double, Single, Decimal Десятичное число, строка (если p > 28)
ЧИСЛО без указания точности и масштаба Десятичное число Двойной
NVARCHAR2 Струна Струна
НЕОБРАБОТАННЫЕ Байт[] Байт[]
TIMESTAMP дата и время дата и время
Метка времени с локальной временной зоной дата и время дата и время
Метка времени с часовым поясом DateTimeOffset (смещение даты и времени) дата и время
VARCHAR2 Струна Струна
XMLTYPE Струна Струна

Примечание.

NUMBER(p,s) сопоставляется с соответствующим типом данных промежуточной службы в зависимости от точности (p) и масштаба (s).

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Обновление соединителя Amazon RDS для Oracle

Ниже приведены шаги, которые помогут обновить соединитель Amazon RDS для Oracle:

  1. На странице "Изменить связанную службу " выберите версию 2.0 и настройте связанную службу, указав свойства связанной службы версии 2.0.

    Для связанных с проверкой подлинности свойств, включая имя пользователя и пароль, укажите исходные значения в соответствующих полях версии 2.0. Другие свойства подключения, такие как хост, порт и Amazon RDS для Oracle Service Name/Amazon RDS для Oracle SID в версии 1.0, теперь являются параметрами server свойства в версии 2.0.

    Например, если настроить связанную службу версии 1.0, как показано ниже:

    Снимок экрана связанной службы версии 1.0.

    { 
        "name": "AmazonRdsForOracleLinkedService", 
        "properties": { 
            "type": "AmazonRdsForOracle", 
            "typeProperties": { 
                "connectionString": "host=amazonrdsfororaclesample.com;port=1521;servicename=db1" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    }
    

    Идентичная конфигурация связанной службы версии 2.0 с использованием именования Easy Connect (плюс ):

    Снимок экрана связанной службы с использованием простого именования соединителя (Plus).

    { 
        "name": "AmazonRdsForOracleLinkedService", 
        "properties": { 
            "type": "AmazonRdsForOracle", 
            "version": "2.0", 
            "typeProperties": { 
                "server": "amazonrdsfororaclesample.com:1521/db1",  
                "username": "<user name>",  
                "password": "<password>",  
                "authenticationType": "<authentication type>" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    } 
    

    Идентичная конфигурация связанной службы версии 2.0 с помощью дескриптора соединителя :

    Снимок экрана связанной службы с помощью дескриптора соединителя.

    { 
        "name": "AmazonRdsForOracleLinkedService", 
        "properties": { 
            "type": "AmazonRdsForOracle", 
            "version": "2.0", 
            "typeProperties": { 
                "server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= amazonrdsfororaclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))",  
                "username": "<user name>",  
                "password": "<password>",  
                "authenticationType": "<authentication type>" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    } 
    

    Совет

    Azure Key Vault поддерживается для свойства server. Чтобы добавить ссылку Azure Key Vault, можно изменить JSON связанной службы, как показано ниже:
    Снимок экрана: использование Azure Key Vault на сервере.

    Обратите внимание, что:

    • Если вы используете имя службы Oracle в версии 1.0, вы можете использовать простое именование (плюс) или дескриптор соединителя в качестве формата сервера в версии 2.0.

    • Если вы используете Oracle SID в версии 1.0, необходимо использовать Дескриптор Соединителя в качестве формата сервера в версии 2.0.

    • Для некоторых дополнительных свойств подключения в версии 1.0 мы предоставляем альтернативные свойства или параметры в свойстве server версии 2.0. См. таблицу ниже, чтобы обновить свойства версии 1.0.

      Версия 1.0 Версия 2.0
      метод шифрования PROTOCOL (параметр в server)
      tnsnames-файл TNS_ADMIN (переменная среды, поддерживаемая в локальной среде выполнения интеграции)
      имя_сервера сервер
      активировать массовую загрузку
      Значение: 1, 0
      включить пакетную загрузку
      Значение: истина, ложь
      Фетчтсвтзастаймштамп
      Значение: 1, 0
      fetchTswtzAsTimestamp
      Значение: истина, ложь
      альтернативные серверы DESCRIPTION_LIST (параметр в server)
      размер массива размер выборки
      предел кешированного курсора размерКэшаЗапросов
      количество_повторов_подключения RETRY_COUNT (параметр в server)
      строка инициализации initializationString
      время ожидания входа CONNECT_TIMEOUT (параметр в server)
      версия криптопротокола SSL_VERSION (параметр в server)
      truststore WALLET_LOCATION (параметр в server)

      Например, если используется alternateservers в версии 1.0, можно задать DESCRIPTION_LIST параметр в свойстве сервера версии 2.0:

      Связанная служба версии 1.0 с помощью alternateservers:

      {
          "name": "AmazonRdsForOracleV1",
          "properties": {
              "type": "AmazonRdsForOracle",
              "typeProperties": {
                  "connectionString": "host=amazonrdsfororaclesample.com;port=1521;servicename=db1;alternateservers=(HostName= amazonrdsfororaclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)"
              }
          }
      }
      

      Идентичная связанная служба версии 2.0 с помощью DESCRIPTION_LIST параметра в дескрипторе соединителя:

      {
          "name": "AmazonRdsForOracleV2",
          "properties": {
              "type": "AmazonRdsForOracle",
              "version": "2.0",
              "typeProperties": {
                  "server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=amazonrdsfororaclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=amazonrdsfororaclesample2.com)(PORT=1521))(CONNECT_DATA=(SID=db2)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=255.201.11.24)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=db3))))",
                  "username": "<user name>",  
                  "password": "<password>",  
                  "authenticationType": "<authentication type>" 
              }
          }
      }
      
  2. Сопоставление типов данных для amazon RDS для связанной службы Oracle версии 2.0 отличается от сопоставления типов данных для версии 1.0. Сведения о последнем сопоставлении типов данных см. в разделе "Сопоставление типов данных" для Amazon RDS для Oracle.

    Дополнительное свойство supportV1DataTypes подключения в версии 2.0 может снизить трудности обновления, вызванные изменениями типа данных. Установка этого свойства для true обеспечивает согласованность типа данных в версии 2.0 с версией 1.0.

Различия между Amazon RDS для Oracle версии 2.0 и версией 1.0

Соединитель Amazon RDS для Oracle версии 2.0 предлагает новые функциональные возможности и совместим с большинством функций версии 1.0. В следующей таблице показаны различия функций между версией 2.0 и версией 1.0.

Версия 2.0 Версия 1.0
Следующие сопоставления используются в Amazon RDS для типов данных Oracle в качестве промежуточных типов данных, применяемых службой на внутренних уровнях.

NUMBER(p,s) -> Int16, Int32, Int64, Double, Single, Decimal
FLOAT(p)-> Double или Decimal в зависимости от точности
NUMBER —> десятичное
TIMESTAMP WITH TIME ZONE —> Смещение даты и времени
ИНТЕРВАЛ ГОДА К МЕСЯЦУ —> Int64
ИНТЕРВАЛ ОТ ДНЯ ДО СЕКУНДЫ —> Интервал времени
Следующие сопоставления используются в Amazon RDS для типов данных Oracle в качестве промежуточных типов данных, применяемых службой на внутренних уровнях.

NUMBER(p,s) —> десятичное число или строка в зависимости от её точности
FLOAT(p)-> Двойной
NUMBER -> Двойной
МЕТКА ВРЕМЕНИ С ЧАСОВЫМ ПОЯСОМ —> ДатаВремя
ИНТЕРВАЛ ГОДА К МЕСЯЦУ —> строка
ИНТЕРВАЛ ДЕНЬ ДО СЕКУНДЫ —> String
Поддержка преобразования DecimalToInteger при копировании из источника, когда supportV1DataTypes установлено в true. Поддержка преобразования DecimalToInteger в копируемом источнике. 
Поддержка TLS 1.3. TLS 1.3 не поддерживается.

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