Introducción a las transferencias de datos de Oracle

Puedes cargar datos desde tu base de datos de Oracle en BigQuery con el conector del Servicio de transferencia de datos de BigQuery para Oracle. En este documento, se proporcionan opciones de configuración para tu transferencia de Oracle y se incluye información sobre la asignación de tipos de datos y la transferencia de metadatos.

Para obtener información sobre cómo programar una transferencia de Oracle, consulta Carga datos de Oracle en BigQuery.

Opciones de transferencia de datos

En las siguientes secciones, se proporciona más información sobre las opciones de transferencia de datos cuando configuras una transferencia de datos de Oracle.

Configuración de TLS

El conector de Oracle admite la configuración de seguridad a nivel de transporte (TLS) para encriptar tus transferencias de datos a BigQuery. El conector de Oracle admite los siguientes parámetros de configuración de TLS:

  • El modo Encriptar datos y verificar la CA y el nombre de host En este modo, se realiza una validación completa del servidor con TLS a través del protocolo TCPS. Encripta todos los datos en tránsito y verifica que el certificado del servidor de la base de datos esté firmado por una autoridad certificadora (AC) de confianza. Este modo también verifica que el nombre de host al que te conectas coincida exactamente con el nombre común (CN) o con un nombre alternativo del sujeto (SAN) en el certificado del servidor. Este modo evita que los atacantes usen un certificado válido para un dominio diferente y se hagan pasar por tu servidor de base de datos.

    Si tu nombre de host no coincide con el CN o el SAN del certificado, la conexión fallará. Debes configurar una resolución de DNS para que coincida con el certificado o usar un modo de seguridad diferente. Usa este modo para obtener la opción más segura y evitar ataques de intermediario (PITM).

  • El modo Encrypt data, and verify CA only En este modo, se encriptan todos los datos con TLS a través del protocolo TCPS y se verifica que el certificado del servidor esté firmado por una CA en la que confíe el cliente. Sin embargo, este modo no verifica el nombre de host del servidor. Este modo se conecta correctamente siempre que el certificado sea válido y lo haya emitido una CA de confianza, independientemente de si el nombre de host del certificado coincide con el nombre de host al que te conectas.

    Usa este modo si deseas asegurarte de conectarte a un servidor cuyo certificado esté firmado por una CA de confianza, pero el nombre de host no se puede verificar o no tienes control sobre la configuración del nombre de host.

  • El modo Solo encriptación. Este modo encripta todos los datos transferidos entre el cliente y el servidor con la encriptación de red nativa de Oracle a través del puerto TCP estándar. No realiza ninguna validación de certificado o nombre de host.

    Este modo proporciona cierto nivel de seguridad, ya que protege los datos en tránsito, pero puede ser vulnerable a los ataques de PITM.

    Usa este modo si necesitas asegurarte de que todos los datos estén encriptados, pero no puedes o no quieres verificar la identidad del servidor. Te recomendamos que uses este modo cuando trabajes con VPC privadas.

  • El modo Sin encriptación ni verificación Este modo no encripta ningún dato ni realiza ninguna verificación de certificados o nombres de host. Todos los datos se envían como texto sin formato.

    No recomendamos usar este modo en un entorno en el que se manejan datos sensibles. Solo recomendamos usar este modo para realizar pruebas en una red aislada en la que la seguridad no sea un problema.

Certificado de servidor de confianza (PEM)

Si usas el modo Encrypt data, and verify CA and hostname o el modo Encrypt data, and verify CA, también puedes proporcionar uno o más certificados codificados en PEM. Estos certificados son necesarios en algunos casos en los que el Servicio de transferencia de datos de BigQuery necesita verificar la identidad del servidor de la base de datos durante la conexión TLS:

  • Si usas un certificado firmado por una CA privada dentro de tu organización o un certificado autofirmado, debes proporcionar la cadena de certificados completa o el certificado autofirmado único. Esto es necesario para los certificados emitidos por las AC internas de los servicios administrados del proveedor de servicios en la nube, como el Servicio de Base de datos Relacionales de Amazon (RDS).
  • Si tu certificado de servidor de base de datos está firmado por una CA pública (por ejemplo, Let's Encrypt, DigiCert o GlobalSign), no es necesario que proporciones un certificado. Los certificados raíz de estas AC públicas están preinstalados y el Servicio de transferencia de datos de BigQuery los considera confiables.

Puedes especificar certificados con codificación PEM en el campo Certificado PEM de confianza de la configuración de transferencia, con los siguientes requisitos:

  • El certificado debe ser una cadena de certificados válida con codificación PEM.
  • El certificado debe ser completamente correcto. Si falta algún certificado en la cadena o el contenido es incorrecto, la conexión TLS fallará.
  • Para un solo certificado, puedes proporcionar un solo certificado autofirmado del servidor de la base de datos.
  • En el caso de una cadena de certificados completa emitida por una CA privada, debes proporcionar la cadena de confianza completa. Esto incluye el certificado del servidor de base de datos y cualquier certificado de CA intermedio y raíz.

Transferencias completas o incrementales

Para especificar cómo se cargan los datos en BigQuery, selecciona la preferencia de escritura Completa o Incremental en la configuración de transferencia cuando configures una transferencia de Oracle. Las transferencias incrementales son compatibles con la versión preliminar.

Puedes configurar una transferencia de datos completa para transferir todos los datos de tus conjuntos de datos de Oracle con cada transferencia de datos.

Como alternativa, puedes configurar una transferencia de datos incremental (versión preliminar) para transferir solo los datos que se modificaron desde la última transferencia de datos, en lugar de cargar el conjunto de datos completo con cada transferencia de datos. Si seleccionas Incremental para tu transferencia de datos, debes especificar los modos de escritura Append o Upsert para definir cómo se escriben los datos en BigQuery durante una transferencia de datos incremental. En las siguientes secciones, se describen los modos de escritura disponibles.

Modo de escritura de anexión

El modo de escritura de anexar solo inserta filas nuevas en tu tabla de destino. Esta opción agrega estrictamente los datos transferidos sin verificar si existen registros, por lo que este modo puede provocar la duplicación de datos en la tabla de destino.

Cuando seleccionas el modo de anexar, debes seleccionar una columna de marca de agua. Se requiere una columna de marca de agua para que el conector de Oracle haga un seguimiento de los cambios en la tabla de origen.

En el caso de las transferencias de Oracle, te recomendamos que selecciones una columna que solo se actualice cuando se cree el registro y que no cambie con las actualizaciones posteriores. Por ejemplo, la columna CREATED_AT.

Modo de escritura Upsert

El modo de escritura upsert actualiza una fila o inserta una nueva en la tabla de destino verificando si hay una clave primaria. Puedes especificar una clave primaria para permitir que el conector de Oracle determine qué cambios son necesarios para mantener tu tabla de destino actualizada con tu tabla de origen. Si la clave primaria especificada está presente en la tabla de BigQuery de destino durante una transferencia de datos, el conector de Oracle actualiza esa fila con datos nuevos de la tabla de origen. Si no hay una clave primaria durante una transferencia de datos, el conector de Oracle inserta una fila nueva.

Cuando seleccionas el modo de upsert, debes seleccionar una columna de marca de agua y una clave primaria:

  • Se requiere una columna de marca de agua para que el conector de Oracle haga un seguimiento de los cambios en la tabla de origen.
    • Selecciona una columna de marca de agua que se actualice cada vez que se modifique una fila. Te recomendamos que utilices columnas similares a las columnas UPDATED_AT o LAST_MODIFIED.
  • La clave primaria puede ser una o más columnas de tu tabla que son necesarias para que el conector de Oracle determine si debe insertar o actualizar una fila.

    Selecciona las columnas que contengan valores no nulos que sean únicos en todas las filas de la tabla. Te recomendamos que incluyas columnas con identificadores generados por el sistema, códigos de referencia únicos (por ejemplo, IDs de incremento automático) o IDs de secuencia inmutables basados en el tiempo.

    Para evitar la posible pérdida o corrupción de datos, las columnas de clave primaria que selecciones deben tener valores únicos. Si tienes dudas sobre la singularidad de la columna de clave primaria que elegiste, te recomendamos que uses el modo de escritura de anexar.

Comportamiento de la transferencia incremental

Cuando realizas cambios en el esquema de la tabla en tu fuente de datos, las transferencias de datos incrementales de esas tablas se reflejan en BigQuery de las siguientes maneras:

Cambios en la fuente de datos Comportamiento de la transferencia incremental
Cómo agregar una columna nueva Se agrega una columna nueva a la tabla de BigQuery de destino. Todos los registros anteriores de esta columna tendrán valores nulos.
Borrar una columna La columna borrada permanece en la tabla de BigQuery de destino. Las entradas nuevas en esta columna borrada se propagan con valores nulos.
Cómo cambiar el tipo de datos en una columna El conector solo admite conversiones de tipos de datos que admite la declaración DDL ALTER COLUMN. Cualquier otra conversión de tipo de datos provocará un error en la transferencia de datos.

Si tienes algún problema, te recomendamos que crees una nueva configuración de transferencia.

Cambiar el nombre de una columna La columna original permanece en la tabla de BigQuery de destino tal como está, mientras que se agrega una columna nueva a la tabla de destino con el nombre actualizado.

Asignación de tipos de datos

En la siguiente tabla, se asignan los tipos de datos de Oracle a los tipos de datos de BigQuery correspondientes:

Tipo de datos de Oracle Tipo de datos de BigQuery
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale lower than the BigQuery Numeric range) NUMERIC
NUMBER (with precision and scale lower than the BigQuery BigNumeric range) BIGNUMERIC
NUMBER (with precision and scale greater than the BigQuery BigNumeric range) STRING
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

Transferir metadatos

También puedes usar el conector de Oracle para transferir metadatos a Knowledge Catalog. Para obtener más información, consulta Carga metadatos de Oracle en Knowledge Catalog.

Precios

Para obtener información sobre los precios de las transferencias de Oracle, consulta Precios del Servicio de transferencia de datos.

¿Qué sigue?