Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A: Azure Data Factory
Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
En este artículo se resume el uso de la actividad de copia de Azure Data Factory para copiar datos con una base de datos Oracle como origen o destino. Se basa en la introducción a la actividad de copia.
Importante
La versión 2.0 del conector de Oracle proporciona compatibilidad nativa mejorada con Oracle. Si usa la versión 1.0 del conector de Oracle en la solución, actualice el conector de Oracle antes del 31 de octubre de 2025. Consulte esta sección para obtener más información sobre la diferencia entre la versión 2.0 y la versión 1.0.
Funcionalidades admitidas
El conector de Oracle es compatible con las siguientes funcionalidades:
Funcionalidades admitidas | IR |
---|---|
Actividad de copia (origen/receptor) | 1 2 |
Actividad de búsqueda | 1 2 |
Actividad de script | 1 2 |
① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado
Consulte la tabla de almacenes de datos compatibles para ver una lista de almacenes de datos que la actividad de copia admite como orígenes o receptores.
En concreto, este conector de Oracle admite lo siguiente:
- Las siguientes versiones de una base de datos de Oracle para la versión 2.0:
- Oracle Database 19c o posterior
- Las versiones siguientes de una base de datos de Oracle para la versión 1.0:
- Oracle 19c R1 (19.1) y superior
- Oracle 18c R1 (18.1) y superior
- Oracle 12c R1 (12.1) y superior
- Oracle 11g R1 (11.1) y superior
- Oracle 10g R1 (10.1) y superior
- Oracle 9i R2 (9.2) y superior
- Oracle 8i R3 (8.1.7) y superior
- Servicio Oracle Database Cloud Exadata
- Copia en paralelo desde un origen de Oracle. Consulte la sección Copia en paralelo desde Oracle para obtener más detalles.
Nota
El servidor proxy de Oracle no se admite.
Prerrequisitos
Si el almacén de datos se encuentra en una red local, una red virtual de Azure o una nube privada virtual de Amazon, debe configurar un entorno de ejecución de integración autohospedado para conectarse a él.
Si el almacén de datos es un servicio de datos en la nube administrado, puede usar Azure Integration Runtime. Si el acceso está restringido a las direcciones IP que están aprobadas en las reglas de firewall, puede agregar direcciones IP de Azure Integration Runtime a la lista de permitidos.
También puede usar la característica del entorno de ejecución de integración de red virtual administrada de Azure Data Factory para acceder a la red local sin instalar ni configurar un entorno de ejecución de integración autohospedado.
Consulte Estrategias de acceso a datos para más información sobre los mecanismos de seguridad de red y las opciones que admite Data Factory.
El entorno de ejecución de integración proporciona un controlador de Oracle integrado. Por tanto, no es necesario instalar manualmente un controlador para copiar datos con Oracle como origen y destino.
Introducción
Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:
- La herramienta Copiar datos
- Azure Portal
- El SDK de .NET
- El SDK de Python
- Azure PowerShell
- API REST
- La plantilla de Azure Resource Manager
Creación de un servicio vinculado en Oracle mediante la interfaz de usuario
Siga estos pasos para crear un servicio vinculado en Oracle en la interfaz de usuario de Azure Portal.
Vaya a la pestaña Administrar del área de trabajo de Azure Data Factory o Synapse y seleccione Servicios vinculados; luego haga clic en Nuevo:
Busque Oracle y seleccione el conector de Oracle.
Configure los detalles del servicio, pruebe la conexión y cree el nuevo servicio vinculado.
Detalles de configuración del conector
En las secciones siguientes se proporcionan detalles sobre las propiedades que se usan para definir entidades específicas para el conector de Oracle.
Propiedades del servicio vinculado
La versión 2.0 del conector de Oracle admite TLS 1.3. Consulte esta sección para actualizar la versión del conector de Oracle desde la versión 1.0. Para obtener los detalles de la propiedad, consulte las secciones correspondientes.
Versión 2.0
El servicio vinculado de Oracle admite las siguientes propiedades cuando se aplica la versión 2.0:
Propiedad | Descripción | Obligatorio |
---|---|---|
tipo | La propiedad type se debe establecer en: Oracle. | Sí |
Versión | Versión que especifique. El valor es 2.0 . |
Sí |
servidor | Ubicación de la base de datos de Oracle a la que desea conectarse. Puede hacer referencia a la configuración de propiedades del servidor para especificarla. | Sí |
Tipo de autenticación | Tipo de autenticación para conectarse a la base de datos de Oracle. Ahora solo se admite la autenticación básica . | Sí |
nombre de usuario | Nombre de usuario de la base de datos de Oracle. | Sí |
contraseña | Contraseña de base de datos de Oracle. Marque este campo como SecureString para almacenarlo de forma segura. O bien puede hacer referencia a un secreto almacenado en Azure Key Vault. | Sí |
connectVia | El entorno de ejecución de integración que se usará para conectarse al almacén de datos. Obtenga más información en la sección Requisitos previos. Si no se especifica, se usa el valor predeterminado de Azure Integration Runtime. | No |
Puede establecer las siguientes propiedades de conexión adicionales en el servicio vinculado en función de su caso.
Propiedad | Descripción | Obligatorio | Valor predeterminado |
---|---|---|---|
cliente de cifrado | Especifica el comportamiento del cliente de cifrado. Los valores admitidos son accepted , rejected , requested o required . Tipo: cadena |
No | required |
encryptionTypesClient | Especifica los algoritmos de cifrado que el cliente puede usar. Los valores admitidos son AES128 , AES192 , AES256 , 3DES112 , 3DES168 . Tipo: cadena |
No | (AES256) |
cryptoChecksumClient | Especifica el comportamiento de integridad de datos deseado cuando este cliente se conecta a un servidor. Los valores admitidos son accepted , rejected , requested o required . Tipo: cadena |
No | required |
cryptoChecksumTypesClient | Especifica los algoritmos de suma de comprobación criptográfica que el cliente puede usar. Los valores admitidos son SHA1 , SHA256 , SHA384 , SHA512 . Tipo: cadena |
No | (SHA512) |
initialLobFetchSize | Especifica la cantidad que el origen captura inicialmente para las columnas LOB. Tipo: int | No | 0 |
fetchSize | Especifica el número de bytes que el controlador asigna para capturar los datos en un recorrido de ida y vuelta de base de datos. Tipo: int | No | 10 MB |
statementCacheSize | Especifica el número de cursores o instrucciones que se van a almacenar en caché para cada conexión de base de datos. Tipo: int | No | 0 |
initializationString | Especifica un comando que se emite inmediatamente después de conectarse a la base de datos para administrar la configuración de sesión. Tipo: cadena | No | nulo |
enableBulkLoad | Especifica si se debe usar la copia masiva o la inserción por lotes al cargar datos en la base de datos. Tipo: booleano | No | cierto |
supportV1DataTypes | Especifica si se deben usar las asignaciones de tipos de datos de la versión 1.0. No establezca esto en verdadero a menos que desee mantener la compatibilidad retroactiva con las asignaciones de tipos de datos de la versión 1.0. Tipo: booleano | No, esta propiedad es solo para uso de compatibilidad con versiones anteriores. | falso |
fetchTswtzAsTimestamp | Especifica si el controlador devuelve el valor de columna con el tipo de datos TIMESTAMP WITH TIME ZONE como DateTime o string. Esta configuración se omite si supportV1DataTypes no es true. Tipo: booleano | No, esta propiedad es solo para uso de compatibilidad con versiones anteriores. | cierto |
Ejemplo:
{
"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"
}
}
}
Ejemplo: Almacenamiento de la contraseña en 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
configuración de propiedades
Para la propiedad server
, puede especificarla en uno de los tres formatos siguientes.
Formato | Ejemplo |
---|---|
Conectar descriptor | (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com))) |
Nomenclatura de Easy Connect (Plus) | salesserver1:1521/sales.us.example.com |
Nombre de Oracle Net Services (Alias de TNS), solo para el entorno de ejecución de integración autohospedado | ventas |
En la lista siguiente se muestran los parámetros admitidos usados en server
. Si usa parámetros que no están en la lista siguiente, se produce un error en la conexión.
Al usar El entorno de ejecución de integración de Azure:
ANFITRIÓN
PUERTO
PROTOCOLO
NOMBRE_DEL_SERVICIO
SID
INSTANCE_NAME
SERVIDOR
CONNECT_TIMEOUT
RETRY_COUNT
RETRY_DELAY
SSL_VERSION
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DNAl usar el entorno de ejecución de integración autohospedado:
ANFITRIÓN
PUERTO
PROTOCOLO
HABILITAR
TIEMPO_DE_EXPIRACIÓN
CONMUTACIÓN POR ERROR
EQUILIBRIO_DE_CARGA
RECV_BUF_SIZE
SDU
SEND_BUF_SIZE
SOURCE_ROUTE
TIPO_DE_SERVICIO
COLOCATION_TAG
CONNECTION_ID_PREFIX
FAILOVER_MODE
GLOBAL_NAME
HS
INSTANCE_NAME
LÍMITE DE PISCINA
POOL_CONNECTION_CLASS
POOL_NAME
PUREZA_PISCINA
RDB_BASE DE DATOS
SHARDING_KEY
SHARDING_KEY_ID
SUPER_SHARDING_KEY
SERVIDOR
NOMBRE_DEL_SERVICIO
SID
TUNNEL_SERVICE_NAME
AUTENTICACIÓN_SSL_DEL_CLIENTE
SSL_CERTIFICATE_ALIAS
HUELLA_DIGITAL_DEL_CERTIFICADO_SSL
SSL_VERSION
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DN
WALLET_LOCATION
CONNECT_TIMEOUT
RETRY_COUNT
RETRY_DELAY
TRANSPORT_CONNECT_TIMEOUT
RECV_TIMEOUT
COMPRESIÓN
NIVELES_DE_COMPRESIÓN
Versión 1.0
El servicio vinculado de Oracle admite las siguientes propiedades cuando se aplica la versión 1.0:
Propiedad | Descripción | Obligatorio |
---|---|---|
tipo | La propiedad type se debe establecer en: Oracle. | Sí |
connectionString | Especifica la información necesaria para conectarse a la instancia de Oracle Database. También puede poner una contraseña en Azure Key Vault y extraer la configuración de password de la cadena de conexión. Consulte los siguientes ejemplos y el artículo Almacenamiento de credenciales en Azure Key Vault con información detallada. Tipo de conexión admitido: para identificar su base de datos, puede usar el SID de Oracle o el nombre de servicio de Oracle: - Si usa el SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>; - Si usa el nombre del servicio: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>; Para las opciones avanzadas de conexión nativa de Oracle, puede optar por agregar una entrada en el archivo TNSNAMES.ORA de la máquina en la que está instalado el entorno de ejecución de integración autohospedado y, en el servicio vinculado de Oracle, elegir usar el tipo de conexión Nombre de servicio de Oracle y configurar el nombre de servicio correspondiente. |
Sí |
connectVia | El entorno de ejecución de integración que se usará para conectarse al almacén de datos. Obtenga más información en la sección Requisitos previos. Si no se especifica, se usa el valor predeterminado de Azure Integration Runtime. | No |
Sugerencia
Si recibe un error, "ORA-01025: parámetro UPI fuera del intervalo" y tiene la versión 8i de Oracle, agregue WireProtocolMode=1
a la cadena de conexión. A continuación, inténtelo de nuevo.
Si tiene varias instancias de Oracle para el escenario de conmutación por error, puede crear un servicio vinculado de Oracle y rellenar el host principal, el puerto, el nombre de usuario, la contraseña, entre otros, y agregar una nueva sección "Propiedades de conexión adicionales" con el nombre de propiedad AlternateServers
y el valor (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>)
; no olvide los corchetes y ponga atención al uso de dos puntos (:
) como separadores. Por ejemplo, el siguiente valor de servidores alternativos define dos servidores de bases de datos alternativos para la conmutación por error de conexiones: (HostName=AccountingOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany)
.
Puede establecer más propiedades de conexión en la cadena de conexión, según su caso:
Propiedad | Descripción | Valores permitidos |
---|---|---|
ArraySize | El número de bytes que el conector puede capturar en un solo recorrido de ida y vuelta de red. Por ejemplo, ArraySize=10485760 .Los valores mayores aumentan la capacidad de proceso al reducir el número de veces que se capturan los datos en la red. Los valores más pequeños aumentan el tiempo de respuesta, ya que hay menos retraso en la espera para que el servidor transmita datos. |
Entero de 1 a 4294967296 (4 GB). El valor predeterminado es 60000 . El valor 1 no define el número de bytes, sino que indica que se asigna espacio para exactamente una fila de datos. |
Para habilitar el cifrado en la conexión de Oracle, tiene dos opciones:
Para usar el cifrado Triple-DES (3DES) y el Estándar de cifrado avanzado (AES) , en el lado servidor de Oracle, vaya a Oracle Advanced Security (OAS) y configure las opciones de cifrado. Para más información, consulte esta documentación de Oracle. El conector de Oracle Application Development Framework (ADF) negocia automáticamente el método de cifrado para usar el que configura en OAS al establecer la conexión con Oracle.
Para usar TLS, configure
truststore
para la autenticación de servidor SSL aplicando uno de los tres métodos siguientes:Método 1 (recomendado)::
Instale el certificado TLS/SSL importándolo en el almacén de certificados local. El controlador de Oracle integrado puede cargar el certificado necesario desde el almacén de certificados.
En el servicio, configure la cadena de conexión de Oracle con
EncryptionMethod=1
.
Método 2:
Obtenga la información del certificado TLS/SSL. Obtenga la información de certificado con codificación distintivo (DER) o correo mejorado de privacidad (PEM) de su certificado TLS/SSL.
openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -text
En el servicio, configure la cadena de conexión de Oracle con
EncryptionMethod=1
y el valor correspondienteTrustStore
. Por ejemplo:Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----
Nota
- El valor del campo
TrustStore
debe tener el prefijodata://
. - Al especificar contenido para varios certificados, especifique el contenido de cada certificado entre
-----BEGIN CERTIFICATE-----
y-----END CERTIFICATE-----
. El número de guiones (-----
) debe ser el mismo antes y después deBEGIN CERTIFICATE
yEND CERTIFICATE
. Por ejemplo:
-----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE-----
- El campo
TrustStore
admite contenido de hasta 8192 caracteres de longitud.
- El valor del campo
Método 3:
Cree el
truststore
archivo con cifrados seguros como 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
Coloque el archivo
truststore
en la máquina de ejecución de integración autoalojada. Por ejemplo, coloque el archivo enC:\MyTrustStoreFile
.En el servicio, configure la cadena de conexión de Oracle con
EncryptionMethod=1
y el valor correspondienteTrustStore
/TrustStorePassword
. Por ejemplo,Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>
.
Ejemplo:
{
"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"
}
}
}
Ejemplo: Almacenamiento de la contraseña en 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"
}
}
}
Propiedades del conjunto de datos
En esta sección se proporciona una lista de las propiedades que admite el conjunto de datos de Oracle. Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte Conjuntos de datos.
Para copiar datos con Oracle como origen o destino, establezca la propiedad type del conjunto de datos en OracleTable
. Se admiten las siguientes propiedades.
Propiedad | Descripción | Obligatorio |
---|---|---|
tipo | La propiedad type del conjunto de datos debe establecerse en OracleTable . |
Sí |
esquema | Nombre del esquema. | No para el origen, sí para el receptor |
tabla | Nombre de la tabla o vista. | No para el origen, sí para el receptor |
tableName | Nombre de la tabla o vista con el esquema. Esta propiedad permite la compatibilidad con versiones anteriores. Para la nueva carga de trabajo use schema y table . |
No para el origen, sí para el receptor |
Ejemplo:
{
"name": "OracleDataset",
"properties":
{
"type": "OracleTable",
"schema": [],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
},
"linkedServiceName": {
"referenceName": "<Oracle linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propiedades de la actividad de copia
En esta sección se proporciona una lista de las propiedades que admiten el receptor y el origen Oracle. Para ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte Canalizaciones.
Oracle como origen
Sugerencia
Consulte más información en Copia en paralelo desde Oracle para cargar datos desde Oracle de manera eficaz con la creación de particiones de datos.
Para copiar datos desde Oracle, establezca el tipo de origen de la actividad de copia en OracleSource
. En la sección source de la actividad de copia se admiten las siguientes propiedades.
Propiedad | Descripción | Obligatorio |
---|---|---|
tipo | La propiedad type del origen de la actividad de copia debe establecerse en OracleSource . |
Sí |
oracleReaderQuery | Use la consulta SQL personalizada para leer los datos. Un ejemplo es "SELECT * FROM MyTable" .Si habilita la carga con particiones, deberá enlazar todos los parámetros de partición integrados correspondientes en la consulta. Consulte la sección Copia en paralelo desde Oracle para obtener algunos ejemplos. |
No |
convertDecimalToInteger | El tipo NUMBER de Oracle con escala cero o sin especificar se convertirá en el entero correspondiente. Los valores permitidos son true y false (predeterminado). Si usa la versión 2.0 de Oracle, esta propiedad solo podrá establecerse cuando supportV1DataTypes sea true. |
No |
opcionesDePartición | Especifica los opciones de creación de particiones de datos que se usan para cargar datos desde Oracle. Los valores permitidos son: None (valor predeterminado), PhysicalPartitionsOfTable y DynamicRange. Cuando se habilita una opción de partición (es decir, no None ), el grado de paralelismo para cargar simultáneamente datos de una base de datos Oracle se controla mediante la configuración parallelCopies en la actividad de copia. |
No |
configuración de particiones | Especifique el grupo de configuración para la creación de particiones de datos. Se aplica si la opción de partición no es None . |
No |
nombres de particiones | Lista de particiones físicas que deben copiarse. Se aplica si la opción de partición es PhysicalPartitionsOfTable . Si usa una consulta para recuperar datos de origen, enlace ?AdfTabularPartitionName en la cláusula WHERE. Consulte la sección Copia en paralelo desde Oracle para ver un ejemplo. |
No |
partitionColumnName | Especifique el nombre de la columna de origen in integer type que usará la creación de particiones por rangos para la copia en paralelo. Si no se especifica, se detectará automáticamente la clave principal de la tabla y se usará como columna de partición. Se aplica si la opción de partición es DynamicRange . Si usa una consulta para recuperar datos de origen, enlace ?AdfRangePartitionColumnName en la cláusula WHERE. Consulte la sección Copia en paralelo desde Oracle para ver un ejemplo. |
No |
partitionUpperBound | El valor máximo de la columna de partición para copiar datos. Se aplica si la opción de partición es DynamicRange . Si usa una consulta para recuperar datos de origen, enlace ?AdfRangePartitionUpbound en la cláusula WHERE. Consulte la sección Copia en paralelo desde Oracle para ver un ejemplo. |
No |
partitionLowerBound | El valor mínimo de la columna de partición para copiar datos. Se aplica si la opción de partición es DynamicRange . Si usa una consulta para recuperar datos de origen, enlace ?AdfRangePartitionLowbound en la cláusula WHERE. Consulte la sección Copia en paralelo desde Oracle para ver un ejemplo. |
No |
Ejemplo: copia de datos mediante una consulta básica sin partición
"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 como receptor
Si va a copiar datos en Oracle, establezca el tipo de receptor de la actividad de copia en OracleSink
. En la sección sink de la actividad de copia se admiten las siguientes propiedades.
Propiedad | Descripción | Obligatorio |
---|---|---|
tipo | La propiedad type del receptor de la actividad de copia debe establecerse en OracleSink . |
Sí |
writeBatchSize | Inserta datos en la tabla SQL cuando el tamaño del búfer alcanza el valor de writeBatchSize .Los valores permitidos son: enteros (número de filas). |
No (el valor predeterminado es 10 000) |
writeBatchTimeout | Tiempo de espera para que la operación de inserción por lotes se complete antes de que se agote el tiempo de espera. Los valores permitidos son intervalos de tiempo. Un ejemplo es 00:30:00 (30 minutos). |
No |
preCopyScript | Especifique una consulta SQL para que la actividad de copia se ejecute antes de escribir datos en Oracle en cada ejecución. Puede usar esta propiedad para limpiar los datos cargados previamente. | No |
máximo de conexiones concurrentes | Número máximo de conexiones simultáneas establecidas en el almacén de datos durante la ejecución de la actividad. Especifique un valor solo cuando quiera limitar las conexiones simultáneas. | No |
Ejemplo:
"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"
}
}
}
]
Copia en paralelo desde Oracle
El conector de Oracle proporciona creación de particiones de datos integrada para copiar datos de Oracle en paralelo. Puede encontrar las opciones de creación de particiones de datos en la pestaña Origen de la actividad de copia.
Al habilitar la copia con particiones, el servicio ejecuta consultas en paralelo en el origen de Oracle para cargar los datos mediante particiones. El grado en paralelo se controla mediante el valor parallelCopies
de la actividad de copia. Por ejemplo, si establece parallelCopies
en cuatro, el servicio genera y ejecuta al mismo tiempo cuatro consultas de acuerdo con la configuración y la opción de partición que ha especificado, y cada consulta recupera una porción de datos de la base de datos de Oracle.
Se le sugiere que habilite la copia en paralelo con la creación de particiones de datos, especialmente si carga grandes cantidades de datos de su base de datos de Oracle. Estas son algunas configuraciones sugeridas para diferentes escenarios. Cuando se copian datos en un almacén de datos basado en archivos, se recomienda escribirlos en una carpeta como varios archivos (solo especifique el nombre de la carpeta), en cuyo caso el rendimiento es mejor que escribirlos en un único archivo.
Escenario | Configuración sugerida |
---|---|
Carga completa de una tabla grande con particiones físicas. |
Opción de partición: particiones físicas de la tabla. Durante la ejecución, el servicio detecta automáticamente las particiones físicas y copia los datos por particiones. |
Carga completa de una tabla grande, sin particiones físicas, aunque con una columna de enteros para la creación de particiones de datos. |
Opciones de partición: partición por rangos dinámica. Columna de partición: especifique la columna usada para crear la partición de datos. Si no se especifica, se usa la columna de clave principal. |
Cargue una gran cantidad de datos mediante una consulta personalizada con particiones físicas. |
Opción de partición: particiones físicas de la tabla. Consulta: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause> .Nombre de la partición: especifique los nombres de las particiones desde las que se copiarán los datos. Si no se especifican, el servicio detecta automáticamente las particiones físicas en la tabla que ha especificado en el conjunto de datos de Oracle. Durante la ejecución, el servicio reemplaza ?AdfTabularPartitionName por el nombre real de la partición y se lo envía a Oracle. |
Carga de grandes cantidades de datos mediante una consulta personalizada, sin particiones físicas, aunque cuenta con una columna de enteros para la creación de particiones de datos. |
Opciones de partición: partición por rangos dinámica. Consulta: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause> .Columna de partición: especifique la columna usada para crear la partición de datos. Puede crear particiones en la columna con un tipo de datos entero. Límite de partición superior y límite de partición inferior: especifique si quiere filtrar en la columna de partición para recuperar solo los datos entre el intervalo inferior y el superior. Durante la ejecución, el servicio reemplaza ?AdfRangePartitionColumnName , ?AdfRangePartitionUpbound y ?AdfRangePartitionLowbound por el nombre real de la columna y los rangos de valores de cada partición y se los envía a Oracle. Por ejemplo, si establece la columna de partición "ID" con un límite inferior de 1 y un límite superior de 80, con la copia en paralelo establecida en 4, el servicio recupera los datos de 4 particiones. Los identificadores están comprendidos entre [1, 20], [21, 40], [41, 60] y [61, 80] respectivamente. |
Sugerencia
Al copiar datos de una tabla sin particiones, puede usar la opción de partición "Dynamic range" (Intervalo dinámico) para crear particiones en una columna de enteros. Si los datos de origen no tienen este tipo de columna, puede aprovechar la función ORA_HASH de la consulta de origen para generar una columna y usarla como columna de partición.
Ejemplo: consulta con partición física
"source": {
"type": "OracleSource",
"query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
"partitionOption": "PhysicalPartitionsOfTable",
"partitionSettings": {
"partitionNames": [
"<partitionA_name>",
"<partitionB_name>"
]
}
}
Ejemplo: consulta con partición por rangos dinámica
"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>"
}
}
Asignación de tipos de datos para Oracle
Al copiar datos desde y en Oracle, se usan las siguientes asignaciones de tipos de datos provisionales dentro del servicio. Para más información acerca de la forma en que la actividad de copia asigna el tipo de datos y el esquema de origen al receptor, consulte el artículo sobre asignaciones de tipos de datos y esquema.
Tipo de datos de Oracle | Tipo de datos de servicio provisional (para la versión 2.0) | Tipo de datos de servicio provisional (para la versión 1.0) |
---|---|---|
BFILE | Byte[] | Byte[] |
BINARY_FLOAT | Soltero | Soltero |
BINARY_DOUBLE | Doble | Doble |
BLOB | Byte[] | Byte[] |
CARBONIZAR | Cuerda | Cuerda |
CLOB | Cuerda | Cuerda |
FECHA | Fecha y hora | Fecha y hora |
FLOAT (P < 16) | Doble | Doble |
FLOAT (P >= 16) | Decimal | Doble |
INTERVALO AÑO A MES | Int64 | Cuerda |
INTERVALO DÍA A SEGUNDO | TimeSpan | Cuerda |
LARGO | Cuerda | Cuerda |
LONG RAW | Byte[] | Byte[] |
NCHAR | Cuerda | Cuerda |
NCLOB | Cuerda | Cuerda |
NUMBER (p,s) | Int16, Int32, Int64, Single, Double, Decimal | Decimal, String (si p > 28) |
NUMBER sin precisión ni escala | Decimal (256,130) | Doble |
NVARCHAR2 | Cuerda | Cuerda |
CRUDO | Byte[] | Byte[] |
TIMESTAMP | Fecha y hora | Fecha y hora |
MARCA DE TIEMPO CON ZONA HORARIA LOCAL | Fecha y hora | Fecha y hora |
MARCA DE TIEMPO CON ZONA HORARIA | Desplazamiento de Fecha y Hora | Fecha y hora |
VARCHAR2 | Cuerda | Cuerda |
XMLTYPE | Cuerda | Cuerda |
NUMBER(p,s) se asigna al tipo de datos de servicio provisional de la versión 2.0 adecuada según la precisión (p) y la escala (s):
Tipo de datos de servicio provisional | Condición |
---|---|
Int16 | escala <= 0 AND (precisión - escala) < 5 |
Int32 | escala <= 0 AND 5 <= (precisión - escala) < 10 |
Int64 | escala <= 0 AND 10 <= (precisión - escala) < 19 |
Soltero | precisión < 8 AND ((escala <= 0 AND (precisión - escala) <= 38) OR (escala > 0 AND escala <= 44)) |
Decimal | precision >= 16 |
Doble | Si no se cumple ninguna de las condiciones anteriores. |
Propiedades de la actividad de búsqueda
Para obtener información detallada sobre las propiedades, consulte Actividad de búsqueda.
Actualización del conector de Oracle
Estos son los pasos que le ayudarán a actualizar el conector de Oracle:
En la página Editar servicio vinculado , seleccione 2.0 en Versión y configure el servicio vinculado haciendo referencia a las propiedades del servicio vinculado versión 2.0.
Para las propiedades relacionadas con la autenticación, incluido el nombre de usuario y la contraseña, especifique los valores originales en los campos correspondientes de la versión 2.0. Otras propiedades de conexión, como host, puerto, y Nombre de Servicio de Oracle/Oracle SID en la versión 1.0, ahora son parámetros de la propiedad
server
en la versión 2.0.Por ejemplo, si configura el servicio vinculado versión 1.0, como se muestra a continuación:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }
La configuración idéntica de servicio vinculado de la versión 2.0 utilizando Easy Connect (Plus) Naming es:
{ "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" } } }
La idéntica configuración del servicio vinculado de la versión 2.0 mediante el descriptor del conector es:
{ "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" } } }
Sugerencia
Azure Key Vault es compatible con la
server
propiedad . Puede editar el JSON del servicio vinculado para agregar la referencia de Azure Key Vault, como se muestra a continuación:
Observe lo siguiente:
Si usa el nombre del servicio de Oracle en la versión 1.0, puede usar la nomenclatura de Easy Connect (Plus) o el descriptor del conector como formato de servidor en la versión 2.0.
Si usa el SID de Oracle en la versión 1.0, debe usar el descriptor del conector como formato de servidor en la versión 2.0.
Para algunas propiedades de conexión adicionales de la versión 1.0, proporcionamos propiedades o parámetros alternativos en una propiedad
server
en la versión 2.0. Puede consultar la tabla siguiente para actualizar las propiedades de la versión 1.0.Versión 1.0 Versión 2.0 método de cifrado PROTOCOL (parámetro en server
)tnsnamesfile TNS_ADMIN (variable de entorno compatible con el entorno de ejecución de integración autohospedado) nombre del servidor servidor enablebulkload
Valor: 1, 0enableBulkLoad
Valor: verdadero, falsofetchtswtzastimestamp
Valor: 1, 0fetchTswtzAsTimestamp
Valor: verdadero, falsoservidores alternativos DESCRIPTION_LIST (parámetro en server
)tamaño del array fetchSize cachedcursorlimit statementCacheSize connectionretrycount RETRY_COUNT (parámetro en server
)cadena de inicialización initializationString logintimeout CONNECT_TIMEOUT (parámetro en server
)cryptoprotocolversion SSL_VERSION (parámetro en server
)truststore WALLET_LOCATION (parámetro en server
)Por ejemplo, si usa
alternateservers
en la versión 1.0, puede establecer elDESCRIPTION_LIST
parámetro en la propiedad del servidor en la versión 2.0:Versión 1.0 del servicio vinculado mediante
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)" } } }
Versión 2.0 idéntica de servicio vinculado utilizando el parámetro
DESCRIPTION_LIST
en Descriptor del Conector:{ "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>" } } }
La asignación de tipos de datos para la versión 2.0 del servicio vinculado de Oracle es diferente de la de la versión 1.0. Para obtener información sobre la asignación de tipos de datos más reciente, consulte Asignación de tipos de datos para Oracle.
Una propiedad
supportV1DataTypes
de conexión adicional de la versión 2.0 puede reducir las dificultades de actualización causadas por cambios de tipo de datos. Establecer esta propiedad entrue
garantiza que el tipo de datos de la versión 2.0 sigue siendo coherente con la versión 1.0.
Diferencias entre la versión 2.0 y la versión 1.0 de Oracle
La versión 2.0 del conector de Oracle ofrece nuevas funcionalidades y es compatible con la mayoría de las características de la versión 1.0. En la tabla siguiente se muestran las diferencias de características entre la versión 2.0 y la versión 1.0.
Versión 2.0 | Versión 1.0 |
---|---|
Las siguientes asignaciones se utilizan desde tipos de datos de Oracle a tipos de datos de servicio provisionales utilizados por el servicio internamente. NUMBER(p,s):> Int16, Int32, Int64, Single, Double, Decimal FLOAT(p)-> Double o Decimal basado en su precisión NUMBER:> Decimal MARCA DE TIEMPO CON ZONA HORARIA:> DateTimeOffset INTERVAL AÑO A MES -> Int64 INTERVALO DÍA A SEGUNDO:> TimeSpan |
Las siguientes asignaciones se utilizan desde tipos de datos de Oracle a tipos de datos de servicio provisionales utilizados por el servicio internamente. NUMBER(p,s):> decimal o cadena en función de su precisión FLOAT(p)-> Double NUMBER -> Double MARCA DE TIEMPO CON ZONA HORARIA - > Fecha y hora INTERVAL YEAR TO MONTH -> String INTERVAL DAY TO SECOND -> String |
Admite convertDecimalToInteger en el origen de copia cuando supportV1DataTypes se establece en true . |
Admite convertDecimalToInteger en el origen de copia. |
No está soportado el uso de ? como marcador de posición para los parámetros de consulta de actividad de script. Puede usar el parámetro con nombre (como :paramA ) o el parámetro posicional (como :1 ) como reemplazo. |
Se admite el uso de ? como marcador de posición para los parámetros de consulta de actividad de script. |
Compatibilidad con TLS 1.3. | No se admite TLS 1.3. |
Se admite TLS/SSL bidireccional con la cartera de SSO de Oracle. Para más información, consulte este artículo. | No se admite TLS/SSL bidireccional con cartera de Oracle. |