Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия Copy в Фабрике данных Azure копировать данные в базу данных Oracle и из нее. Она основана на обзоре действия копирования.
Это важно
Соединитель Oracle версии 2.0 обеспечивает улучшенную встроенную поддержку функций Oracle. Если вы используете соединитель Oracle версии 1.0 в решении, обновите соединитель Oracle до 31 октября 2025 г. Дополнительные сведения о разнице между версией 2.0 и версией 1.0 см. в этом разделе .
Поддерживаемые возможности
Этот соединитель Oracle поддерживается для следующих возможностей:
Поддерживаемые возможности | ИНФРАКРАСНЫЙ |
---|---|
Копирование (источник данных/приемник данных) | (1) (2) |
Операция поиска | (1) (2) |
Действие скрипта | (1) (2) |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
В таблице Поддерживаемые хранилища данных и форматы перечислены хранилища данных, которые поддерживаются как источники или приемники для операции копирования.
В частности, этот соединитель Oracle поддерживает:
- Следующие версии базы данных Oracle для версии 2.0:
- Oracle Database 19c и выше
- Oracle Database 18c и выше
- Oracle Database 12c и выше
- Следующие версии базы данных Oracle для версии 1.0:
- Oracle 19c R1 (19.1) и более поздней версии
- Oracle 18c R1 (18.1) и более поздней версии
- Oracle 12c R1 (12.1) и более поздней версии
- Oracle 11g R1 (11.1) и более поздней версии
- Oracle 10g R1 (10.1)м
- Oracle 9i R2 (9.2) и более поздней версии
- Oracle 8i R3 (8.1.7) и более поздней версии
- Сервис Oracle Database Cloud Exadata
- Параллельное копирование из источника Oracle. Дополнительные сведения см. в разделе Параллельное копирование из Oracle.
Примечание.
Прокси-сервер Oracle не поддерживается.
Предварительные условия
Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.
Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.
Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Среда выполнения интеграции содержит встроенный драйвер Oracle. Поэтому вам не нужно вручную устанавливать драйвер при копировании данных из базы данных Oracle и в нее.
Начало работы
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для Oracle с помощью пользовательского интерфейса
Выполните приведенные ниже действия, чтобы создать связанную службу для Oracle с помощью пользовательского интерфейса на портале Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Выполните поиск по запросу "Oracle" и выберите соединитель Oracle.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей, характерных для коннектора Oracle.
Свойства связанной службы
Соединитель Oracle версии 2.0 поддерживает TLS 1.3. Ознакомьтесь с этим разделом , чтобы обновить версию соединителя Oracle с версии 1.0. Сведения о свойстве см. в соответствующих разделах.
Версия 2.0
Связанная служба Oracle поддерживает следующие свойства при применении версии 2.0:
Недвижимость | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type необходимо задать значение Oracle. | Да |
версия | Версия, которую вы указали. Значение равно 2.0 . |
Да |
сервер | Расположение базы данных Oracle, к которой требуется подключиться. Чтобы указать его, можно ссылаться на конфигурацию свойства сервера . | Да |
тип аутентификации | Тип проверки подлинности для подключения к базе данных Oracle. Теперь поддерживается только базовая проверка подлинности. | Да |
имя пользователя | Имя пользователя базы данных Oracle. | Да |
пароль | Пароль базы данных Oracle. Пометьте это поле как SecureString для безопасного хранения. Вы можете также указать секрет, хранящийся в Azure Key Vault. | Да |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано иное, по умолчанию используется Azure Integration Runtime. | Нет |
В зависимости от вашего случая можно задать следующие дополнительные свойства подключения в связанной службе.
Недвижимость | Описание: | Обязательное поле | Значение по умолчанию |
---|---|---|---|
клиент шифрования | Указывает поведение клиента шифрования. Поддерживаемые значения: accepted , rejected requested или required . Тип: строка |
Нет | required |
Типы шифрования клиента | Задает алгоритмы шифрования, которые может использовать клиент. Поддерживаемые значения: AES128 , AES192 , AES256 , 3DES112 3DES168 . Тип: строка |
Нет | (AES256) |
cryptoChecksumClient | Указывает требуемое поведение целостности данных при подключении этого клиента к серверу. Поддерживаемые значения: accepted , rejected requested или required . Тип: строка |
Нет | required |
cryptoChecksumTypesClient | Задает алгоритмы крипто-контрольной суммы, которые может использовать клиент. Поддерживаемые значения: SHA1 , SHA256 , SHA384 SHA512 . Тип: строка |
Нет | (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": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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
Связанная служба Oracle поддерживает следующие свойства при применении версии 1.0:
Недвижимость | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type необходимо задать значение Oracle. | Да |
connectionString | Указывает сведения, необходимые для подключения к экземпляру базы данных Oracle. Вы можете также поместить пароль в Azure Key Vault и извлечь конфигурацию password из строки подключения. Ознакомьтесь с приведенными ниже примерами и подробными сведениями в статье Хранение учетных данных в Azure Key Vault. Поддерживаемые типы подключений: вы можете использовать ИД безопасности Oracle или имя службы Oracle для идентификации базы данных. — Если вы используете SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>; — Если вы используете имя службы: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>; Для расширенных параметров нативного подключения Oracle вы можете добавить запись в файл TNSNAMES.ORA на машине, где установлена локальная среда выполнения интеграции, а в связанной службе Oracle выберите тип подключения по имени службы Oracle и настройте соответствующее имя службы. |
Да |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано иное, по умолчанию используется Azure Integration Runtime. | Нет |
Совет
Если возникает ошибка "ORA-01025: значение параметра UPI вне допустимого диапазона" и вы используете версию Oracle 8i, добавьте WireProtocolMode=1
в вашу строку подключения. Затем повторите попытку.
При наличии нескольких экземпляров Oracle для сценариев отказоустойчивости можно создать связанную службу Oracle и указать основной узел, порт, имя пользователя, пароль и т. д., а также добавить новые "Дополнительные свойства подключения" с именем свойства AlternateServers
и значением (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>)
— не пропускайте скобки и обращайте внимание на двоеточия (:
) в качестве разделителя. Например, следующее значение альтернативных серверов определяет два альтернативных сервера баз данных для обеспечения надежности подключения: (HostName=AccountingOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany)
.
Дополнительные свойства подключения, которые можно задать в строке подключения в зависимости от сценария
Недвижимость | Описание: | Допустимые значения |
---|---|---|
РазмерМассива | Количество байтов, которое коннектор может получить за один сетевой запрос. Пример: ArraySize=10485760 .Чем больше значение, тем больше пропускная способность, поскольку получать данные из сети приходится реже. Чем меньше значение, тем меньше время отклика, так как передача данных с сервера выполняется быстрее. |
Целое число от 1 до 4294967296 (4 ГБ). Значение по умолчанию: 60000 . Значение 1 не определяет число байтов, а указывает на выделение пространства только для одной строки данных. |
Включить шифрование для подключения Oracle можно двумя способами:
Чтобы использовать шифрование 3DES и AES, на стороне сервера Oracle перейдите к Oracle Advanced Security (OAS) и настройте соответствующие параметры. Дополнительные сведения см. в этой документации по Oracle. Соединитель Oracle Application Development Framework (ADF) автоматически согласовывает метод шифрования таким образом, чтобы при установлении соединения с Oracle использовался тот метод шифрования, который вы настроили в OAS.
Чтобы использовать TLS, настройте
truststore
проверку подлинности SSL-сервера, применяя один из следующих трех методов:Метод 1 (рекомендуется):
Установите TLS/SSL-сертификат, импортируя его в локальное хранилище сертификатов. Встроенный драйвер Oracle может загрузить необходимый сертификат из хранилища сертификатов.
В службе настройте строку подключения Oracle с помощью
EncryptionMethod=1
.
Метод 2.
Получите сведения о TLS/SSL-сертификате. Получите сведения о сертификате TLS/SSL, закодированном в формате правил кодирования DER или Конфиденциальной улучшенной почты (PEM).
openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -text
В службе настройте строку подключения Oracle с
EncryptionMethod=1
и соответствующимTrustStore
значением. Например:Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----
Примечание.
- Значение поля
TrustStore
должно начинаться сdata://
. - При указании содержимого для нескольких сертификатов укажите содержимое каждого сертификата между
-----BEGIN CERTIFICATE-----
и-----END CERTIFICATE-----
. Число дефисов (-----
) должно быть одинаковым до и после обоих элементовBEGIN CERTIFICATE
иEND CERTIFICATE
. Например:
-----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE-----
- Поле
TrustStore
поддерживает содержимое до 8192 символов длиной.
- Значение поля
Метод 3.
truststore
Создайте файл с сильными шифрами, такими как AES256.openssl pkcs12 -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -keypbe AES-256-CBC -certpbe AES-256-CBC -nokeys -export
Поместите
truststore
файл на локальном компьютере среды выполнения интеграции. Например, поместите файл вC:\MyTrustStoreFile
.В службе настройте строку подключения 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": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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"
}
}
}
Свойства набора данных
В этом разделе содержится список свойств, поддерживаемых набором данных Oracle. Полный список разделов и свойств, доступных для определения наборов данных, см. в Наборы данных.
Чтобы скопировать данные из базы данных Oracle или в нее, установите для свойства type набора данных значение OracleTable
. Поддерживаются следующие свойства.
Недвижимость | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства type набора данных необходимо задать значение OracleTable . |
Да |
схема | Имя схемы. | "Нет" для источника, "Да" для стока |
стол | Имя таблицы или представления. | "Нет" для источника, "Да" для стока |
имя_таблицы | Имя таблицы или представления со схемой. Это свойство поддерживается только для обеспечения обратной совместимости. Для новой рабочей нагрузки используйте schema и table . |
"Нет" для источника, "Да" для стока |
Пример:
{
"name": "OracleDataset",
"properties":
{
"type": "OracleTable",
"schema": [],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
},
"linkedServiceName": {
"referenceName": "<Oracle linked service name>",
"type": "LinkedServiceReference"
}
}
}
Свойства активности копирования
Этот раздел содержит список свойств, поддерживаемых источником и приемником Oracle. Полный список разделов и свойств, доступных для определения действий, см. в разделе Конвейеры.
Oracle в качестве источника
Совет
Чтобы эффективно загружать данные из Oracle с использованием секционирования данных, изучите дополнительные сведения из статьи Параллельное копирование из Oracle.
Чтобы копировать данные из Oracle, установите тип источника в действии Copy — OracleSource
. В разделе source действия копирования поддерживаются следующие свойства:
Недвижимость | Описание: | Обязательное поле |
---|---|---|
тип | Свойству типа источника активности копирования необходимо задать значение OracleSource . |
Да |
oracleReaderQuery | Используйте пользовательский SQL-запрос для чтения данных. Например, "SELECT * FROM MyTable" .При включении разделенной нагрузки необходимо подключить все соответствующие встроенные параметры раздела в запросе. Примеры см. в разделе Параллельное копирование из Oracle. |
Нет |
преобразоватьДесятичноеВЦелое | Тип Oracle NUMBER с нулевым или неопределенным масштабом будет преобразован в соответствующее целое число. Допустимые значения: true и false (по умолчанию). Если вы используете Oracle версии 2.0, это свойство может быть задано только в том случае, если значение supportV1DataTypes имеет значение true. |
Нет |
параметры раздела | Задает параметры секционирования данных, используемые для загрузки данных из Oracle. Допустимые значения: Нет (по умолчанию), PhysicalPartitionsOfTable и DynamicRange. Если параметр секционирования включен (любое значение, кроме None ), степень параллелизма для одновременной загрузки данных из базы данных Oracle управляется настройкой parallelCopies в операции копирования. |
Нет |
настройки раздела | Позволяет указать группу параметров для секционирования данных. Применяется, если параметр секционирования имеет значение, отличное от None . |
Нет |
имена разделов | Список физических секций, которые необходимо скопировать. Применяется, если параметр секции имеет значение PhysicalPartitionsOfTable . Если для получения исходных данных используется запрос, подключите ?AdfTabularPartitionName в предложении WHERE. Пример можно найти в разделе Параллельное копирование из Oracle. |
Нет |
Имя столбца раздела | Укажите имя исходного столбца целочисленного типа, который будет использоваться для секционирования по диапазонам при параллельном копировании. Если значение не указано, автоматически определяется первичный ключ таблицы, который используется в качестве столбца секционирования. Применяется, если параметр секции имеет значение DynamicRange . Если для получения исходных данных используется запрос, подключите ?AdfRangePartitionColumnName в предложении WHERE. Пример можно найти в разделе Параллельное копирование из Oracle. |
Нет |
верхняя граница раздела | Максимальное значение столбца секционирования для вывода данных. Применяется, если параметр секции имеет значение DynamicRange . Если для получения исходных данных используется запрос, подключите ?AdfRangePartitionUpbound в предложении WHERE. Пример можно найти в разделе Параллельное копирование из Oracle. |
Нет |
partitionLowerBound | Минимальное значение столбца секционирования для копирования данных наружу. Применяется, если параметр секции имеет значение DynamicRange . Если для получения исходных данных используется запрос, подключите ?AdfRangePartitionLowbound в предложении WHERE. Пример можно найти в разделе Параллельное копирование из Oracle. |
Нет |
Пример: копирование данных с помощью простого запроса без секции
"activities":[
{
"name": "CopyFromOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<Oracle input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "OracleSource",
"convertDecimalToInteger": false,
"oracleReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Oracle в качестве хранилища данных
Чтобы скопировать данные в базу данных Oracle, в действии Copy задайте тип приемника OracleSink
. В разделе sink действия Copy поддерживаются следующие свойства.
Недвижимость | Описание: | Обязательное поле |
---|---|---|
тип | Для свойства типа приемника действия копирования должно быть задано значение OracleSink . |
Да |
writeBatchSize (размер батча записи) | Вставляет данные в таблицу SQL, когда размер буфера достигает значения writeBatchSize .Допустимые значения: целое число (количество строк). |
Нет (значение по умолчанию — 10 000) |
writeBatchTimeout | Время ожидания завершения операции пакетной вставки перед истечением допустимого времени. Допустимые значения: Timespan. Например, 00:30:00 (30 минут). |
Нет |
PreCopyScript | Перед записью данных в базу данных Oracle при каждом запуске указывайте SQL-запрос для выполнения действия Copy. Это свойство можно использовать для очистки предварительно загруженных данных. | Нет |
максимальное количество одновременных подключений | Верхний предел одновременных подключений, установленных к хранилищу данных во время выполнения активности. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
Пример:
"activities":[
{
"name": "CopyToOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Oracle output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "OracleSink"
}
}
}
]
Параллельное копирование из Oracle
Соединитель Oracle предоставляет встроенную функцию секционирования данных для параллельного копирования из Oracle. Параметры секционирования данных можно найти на вкладке Источник действия Copy.
Если включено копирование с секционированием, служба выполняет параллельные запросы к источнику Oracle для загрузки данных по секциям. Степень параллелизма определяется с помощью параметра parallelCopies
для действия копирования. Например, если parallelCopies
имеет значение 4, служба одновременно создаст и выполнит четыре запроса с учетом указанного способа и параметров секционирования, где каждый запрос извлекает часть данных из базы данных Oracle.
Рекомендуется включить параллельное копирование с секционированием данных, особенно при загрузке большого объема данных из базы данных Oracle. Ниже приведены рекомендуемые конфигурации для разных сценариев. Если данные копируются в файловое хранилище данных, то рекомендуется сохранять данные в папку несколькими файлами (указывая только имя папки), так как производительность в таком случае будет выше, чем при записи в один файл.
Сценарий | Предлагаемые параметры |
---|---|
Полная загрузка из большой таблицы с физическими разделами. |
Параметр секционирования. Физические секции таблицы. Во время выполнения служба автоматически определяет физические секции и копирует данные по секциям. |
Полная загрузка из большой таблицы без физических секций, когда таблица содержит столбец целочисленного типа для секционирования данных. |
Варианты разделов: раздел динамического диапазона. Столбец секционирования: укажите столбец, используемый для секционирования данных. Если это не указано, используется столбец с первичным ключом. |
Загрузка большого объема данных с помощью пользовательского запроса с физическими секциями. |
Параметр секционирования. Физические секции таблицы. Запрос: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause> .Имя секции: укажите имена секций, из которых следует копировать данные. Если не указано, служба автоматически обнаруживает физические секции в таблице, указанной в наборе данных Oracle. Во время выполнения служба данных заменяет ?AdfTabularPartitionName фактическим именем секции и отправляет данные в Oracle. |
Загрузка большого объема данных пользовательским запросом без использования физических секций, однако с использованием столбца целочисленного типа для секционирования данных. |
Варианты разделов: раздел динамического диапазона. Запрос: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> .Столбец секционирования: укажите столбец, используемый для секционирования данных. Секционирование можно выполнять по столбцу с целочисленным типом данных. Верхняя граница секции и Нижняя граница секции: укажите эти значения, если нужно добавить фильтрацию по столбцу секционирования, чтобы получить данные только в пределах между нижним и верхним значениями. Во время выполнения служба заменяет ?AdfRangePartitionColumnName , ?AdfRangePartitionUpbound и ?AdfRangePartitionLowbound фактическими именами столбцов и диапазонами значений для каждого раздела, а затем отправляет их в Oracle. Например, если указан столбец секционирования ID с нижней границей 1 и верхней границей 80 при этом для параллельного копирования указано значение 4, служба будет извлекать данные по 4 секциям. Для них будут применены следующие диапазоны значений идентификаторов: [1, 20], [21, 40], [41, 60] и [61, 80]. |
Совет
При копировании данных из несекционированной таблицы можно использовать параметр секции "Динамический диапазон" для секционирования по целочисленному столбцу. Если в исходных данных нет такого типа столбца, можно использовать функцию ORA_HASH в исходном запросе, чтобы создать столбец и использовать его в качестве столбца секционирования.
Пример: запрос с физической секцией
"source": {
"type": "OracleSource",
"query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
"partitionOption": "PhysicalPartitionsOfTable",
"partitionSettings": {
"partitionNames": [
"<partitionA_name>",
"<partitionB_name>"
]
}
}
Пример: запрос с секционированием по динамическому диапазону
"source": {
"type": "OracleSource",
"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>"
}
}
Сопоставление типов данных для Oracle
При копировании данных из Oracle и обратно в службе используются следующие сопоставления промежуточных типов данных. Чтобы узнать, как действие копирования сопоставляет исходную схему и типы данных с приемником, см. раздел Сопоставление схем и типов данных.
Тип данных 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, Single, Double, Decimal | Десятичное число, строка (если p > 28) |
ЧИСЛО без указания точности и масштаба | Десятичная (256.130) | Двойной |
NVARCHAR2 | Строка | Строка |
НЕОБРАБОТАННЫЕ | Байт[] | Байт[] |
TIMESTAMP | Дата/время | Дата/время |
Метка времени с локальной временной зоной | Дата/время | Дата/время |
Метка времени с часовым поясом | DateTimeOffset (смещение даты и времени) | Дата/время |
VARCHAR2 | Строка | Строка |
XMLTYPE | Строка | Строка |
NUMBER(p,s) сопоставляется с соответствующим типом данных промежуточной службы версии 2.0 в зависимости от точности (p) и масштабирования (s):
Тип данных временной услуги | Состояние |
---|---|
Int16 | scale <= 0 AND (точность — масштаб) < 5 |
Int32 | scale <= 0 И 5 <= (точность — масштаб) < 10 |
Int64 | scale <= 0 AND 10 <= (точность − масштаб) < 19 |
Один | точность < 8 И ((масштаб <= 0 И (точность - масштаб) <= 38) ИЛИ (масштаб > 0 И масштаб <= 44)) |
Десятичное число | точность >= 16 |
Двойной | Если ни одно из указанных выше условий не выполняется. |
Свойства действия поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Обновление соединителя Oracle
Ниже приведены действия, которые помогут обновить соединитель Oracle:
На странице "Изменить связанную службу " выберите 2.0 в разделе "Версия " и настройте связанную службу, указав свойства связанной службы версии 2.0.
Для связанных с проверкой подлинности свойств, включая имя пользователя и пароль, укажите исходные значения в соответствующих полях версии 2.0. Другие свойства подключения, такие как узел, порт и имя службы Oracle или идентификатор безопасности Oracle в версии 1.0, теперь являются параметрами
server
свойства в версии 2.0.Например, если настроить связанную службу версии 1.0, как показано ниже:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }
Идентичная конфигурация связанной службы версии 2.0 с использованием именования Easy Connect (плюс ):
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "oraclesample.com:1521/db1", "username": "<user name>", "password": "<password>", "authenticationType": "<authentication type>" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }
Идентичная конфигурация связанной службы версии 2.0 с помощью дескриптора соединителя :
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= oraclesample.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 связанной службы, как показано ниже:
Обратите внимание, что:
Если вы используете имя службы 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, 0fetchTswtzAsTimestamp
Значение: истина, ложьальтернативные серверы 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": "OracleV1", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1;alternateservers=(HostName= oraclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)" } } }
Идентичная связанная служба версии 2.0 с помощью
DESCRIPTION_LIST
параметра в дескрипторе соединителя:{ "name": "OracleV2", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample2.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>" } } }
Сопоставление типов данных для связанной службы Oracle версии 2.0 отличается от сопоставления типов данных для версии 1.0. Сведения о последнем сопоставлении типов данных см. в разделе "Сопоставление типов данных" для Oracle.
Дополнительное свойство
supportV1DataTypes
подключения в версии 2.0 может снизить трудности обновления, вызванные изменениями типа данных. Установка этого свойства дляtrue
обеспечивает согласованность типа данных в версии 2.0 с версией 1.0.
Различия между Oracle версии 2.0 и версией 1.0
Соединитель Oracle версии 2.0 предлагает новые функциональные возможности и совместим с большинством функций версии 1.0. В следующей таблице показаны различия функций между версией 2.0 и версией 1.0.
Версия 2.0 | Версия 1.0 |
---|---|
Следующие сопоставления используются для преобразования типов данных Oracle в промежуточные типы данных, используемые службой внутри системы. NUMBER(p,s) -> Int16, Int32, Int64, Single, Double, Decimal FLOAT(p)-> Double или Decimal в зависимости от точности NUMBER —> десятичное TIMESTAMP WITH TIME ZONE —> Смещение даты и времени ИНТЕРВАЛ ГОДА К МЕСЯЦУ —> Int64 ИНТЕРВАЛ ОТ ДНЯ ДО СЕКУНДЫ —> Интервал времени |
Следующие сопоставления используются для преобразования типов данных Oracle в промежуточные типы данных, используемые службой внутри системы. NUMBER(p,s) —> десятичное число или строка в зависимости от её точности FLOAT(p)-> Двойной NUMBER -> Двойной МЕТКА ВРЕМЕНИ С ЧАСОВЫМ ПОЯСОМ —> ДатаВремя ИНТЕРВАЛ ГОДА К МЕСЯЦУ —> строка ИНТЕРВАЛ ДЕНЬ ДО СЕКУНДЫ —> String |
Поддержка преобразования DecimalToInteger при копировании из источника, когда supportV1DataTypes установлено в true . |
Поддержка преобразования DecimalToInteger в копируемом источнике. |
Использование ? в качестве заполнителя для параметров запроса действия скрипта не поддерживается. Вы можете использовать именованный параметр (например :paramA ) или позиционный параметр (например :1 ) в качестве замены. |
Поддержка использования ? в качестве заполнителя для параметров запроса активности скрипта. |
Поддержка TLS 1.3. | TLS 1.3 не поддерживается. |
Поддерживается двустороннее подключение TLS/SSL с кошельком Oracle SSO. Дополнительные сведения см. в этой статье. | Двусторонний протокол TLS/SSL с кошельком Oracle не поддерживается. |