Carga datos de Oracle en BigQuery

Puedes cargar datos de Oracle en BigQuery con el conector del Servicio de transferencia de datos de BigQuery para Oracle. Con el Servicio de transferencia de datos de BigQuery, puedes programar trabajos de transferencia recurrentes que agreguen tus datos más recientes de Oracle a BigQuery.

Limitaciones

Las transferencias de Oracle están sujetas a las siguientes limitaciones:

  • La cantidad máxima de conexiones simultáneas a una base de datos de Oracle es limitada y, como resultado, la cantidad de ejecuciones de transferencias simultáneas a una sola base de datos de Oracle se limita a esa cantidad máxima.
  • Debes configurar un adjunto de red en los casos en que una IP pública no esté disponible para una conexión de base de datos de Oracle, con los siguientes requisitos:
    • Se debe poder acceder a la fuente de datos desde la subred en la que reside el adjunto de red.
    • El adjunto de red no debe estar en la subred dentro del rango 240.0.0.0/24.
    • Los adjuntos de red no se pueden borrar si hay conexiones activas con el adjunto. Para borrar un adjunto de red, comunícate con la Atención al cliente de Cloud.
    • Para la multirregión us, el adjunto de red debe estar en la región us-central1. Para la multirregión eu, el adjunto de red debe estar en la región europe-west4.
  • La consola de Google Cloud solo admite el uso del rol de usuario NORMALde Oracle para conectar Oracle al Servicio de transferencia de datos de BigQuery. Debes usar la CLI de BigQuery para conectarte con los roles de usuario de Oracle SYSDBA y SYSOPER.
  • El tiempo de intervalo mínimo entre transferencias recurrentes de Oracle es de 15 minutos. El intervalo predeterminado para una transferencia recurrente es de 24 horas.
  • Si la conexión de red configurada y la instancia de máquina virtual (VM) se encuentran en regiones diferentes, es posible que haya movimiento de datos entre regiones cuando transfieras datos desde Oracle.

Antes de comenzar

En las siguientes secciones, se describen los pasos que debes seguir antes de crear una transferencia de Oracle.

Requisitos previos de Oracle

También debes tener la siguiente información de base de datos de Oracle cuando crees una transferencia de Oracle.

Nombre del parámetro Descripción
database Es el nombre de la base de datos.
host

Nombre de host o dirección IP de la base de datos.

port

Número de puerto de la base de datos.

username

Nombre de usuario para acceder a la base de datos.

password

Contraseña para acceder a la base de datos.

connectionType

El tipo de conexión. Puede ser SERVICE, SID, o TNS.

encryptionMode

Modo de encriptación. Puede ser FULL para la validación completa de SSL cuando se conecta a la base de datos de Oracle, o DISABLE para no realizar la validación de SSL.

oracleObjects

Lista de objetos de Oracle para transferir.

Requisitos previos de BigQuery

Roles de BigQuery requeridos

Para obtener los permisos que necesitas para crear una transferencia, pídele a tu administrador que te otorgue el rol de IAM de administrador de BigQuery (roles/bigquery.admin). Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear una transferencia. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear una transferencia:

  • bigquery.transfers.update en el usuario
  • bigquery.datasets.get en el conjunto de datos de destino
  • bigquery.datasets.update en el conjunto de datos de destino

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Carga datos de Oracle en BigQuery

Para agregar datos de Oracle a BigQuery, puedes configurar una transferencia de datos de Oracle con una de las siguientes opciones:

Console

  1. Ve a la página Transferencia de datos en la Google Cloud consola.

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

  3. En la sección Tipo de fuente, para Fuente, selecciona Oracle.

  4. En la sección Detalles de fuente de datos, haz lo siguiente:

    • En Adjunto de red, selecciona un adjunto de red existente o haz clic en Crear adjunto de red.
    • En Host, ingresa el nombre de host o la IP de la base de datos.
    • En Puerto, ingresa el número de puerto que usa la base de datos de Oracle para las conexiones entrantes, como 1521.
    • En Nombre de la base de datos, ingresa el nombre de la base de datos de Oracle.
    • En Tipo de conexión, ingresa el tipo de URL de conexión, ya sea SERVICE, SID o TNS.
    • En Nombre de usuario, ingresa el nombre del usuario que inicia la conexión de la base de datos de Oracle.
    • En Contraseña, ingresa la contraseña del usuario que inicia la conexión de la base de datos de Oracle.
    • En Modo de encriptación, selecciona COMPLETO en el menú desplegable para habilitar la validación completa de SSL cuando te conectes a la base de datos de Oracle, o bien INHABILITAR para no realizar una validación de SSL.
    • En Objetos de Oracle para transferir, haz clic en EXPLORAR para seleccionar las tablas que se transferirán al conjunto de datos de destino de BigQuery. También puedes ingresar de forma manual cualquier objeto que desees incluir en la transferencia de datos en este campo.

      Establece la configuración de transferencia de Oracle

  5. En la sección Configuración de destino, en Conjunto de datos, selecciona el conjunto de datos que creaste para almacenar tus datos.

  6. En la sección Nombre de configuración de la transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia de datos.

  7. En la sección Opciones de programación, haz lo siguiente:

    • En la lista Frecuencia de repetición, selecciona una opción para especificar la frecuencia con la que se ejecuta esta transferencia de datos. Para especificar una frecuencia de repetición personalizada, selecciona Personalizada. Si seleccionas Según demanda, esta transferencia se ejecuta cuando activas la transferencia de forma manual.
    • Si corresponde, selecciona Comenzar ahora o Comenzar a una hora determinada y proporciona una fecha de inicio y una hora de ejecución.
  8. Opcional: En la sección Opciones de notificación, haz lo siguiente:

    • Para habilitar las notificaciones por correo electrónico, haz clic en el botón de activación Notificación por correo electrónico. Si habilitas esta opción, el administrador de transferencias recibirá una notificación por correo electrónico cuando falle la ejecución de una transferencia.
    • Si quieres habilitar las notificaciones de ejecución de transferencias de Pub/Sub para esta transferencia, haz clic en el botón de activar Notificaciones de Pub/Sub. Puedes seleccionar el nombre del tema o hacer clic en Crear un tema para crear uno.
  9. Haz clic en Guardar.

bq

Ingresa el comando bq mk y suministra la marca de creación de transferencias --transfer_config.

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

Aquí:

  • PROJECT_ID (opcional): Tu ID del proyecto de Google Cloud . Si no se proporciona --project_id para especificar un proyecto en particular, se usa el proyecto predeterminado.
  • DATA_SOURCE: La fuente de datos: oracle.
  • DISPLAY_NAME es el nombre visible de la configuración de transferencia. El nombre de la transferencia de datos puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.
  • DATASET es el conjunto de datos de destino para la configuración de transferencia.
  • PARAMETERS son los parámetros de la configuración de transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}' Los siguientes son los parámetros para una transferencia de datos de Oracle:

    • connector.networkAttachment (opcional): nombre del adjunto de red para conectarse a la base de datos de Oracle.
    • connector.authentication.Username: el nombre de usuario de la cuenta de Oracle
    • connector.authentication.Password: la contraseña de la cuenta de Oracle.
    • connector.database: Es el nombre de la base de datos de Oracle.
    • connector.endpoint.host: El nombre de host o la IP de la base de datos.
    • connector.endpoint.port: El número de puerto que usa la base de datos de Oracle para las conexiones entrantes, como 1520.
    • connector.connectionType: Es el tipo de URL de conexión, ya sea SERVICE, SID o TNS.
    • assets: La ruta de acceso a los objetos de Oracle que se transferirán a BigQuery, mediante el siguiente formato: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

Por ejemplo, el siguiente comando crea una transferencia de datos de Oracle en el proyecto predeterminado con todos los parámetros obligatorios:

bq mk
    --transfer_config
    --target_dataset=mydataset
    --data_source=oracle
    --display_name='My Transfer'
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
        "connector.authentication.username": "User1",
        "connector.authentication.password":"ABC12345",
        "connector.database":"DB1",
        "connector.endpoint.host":"192.168.0.1",
        "connector.endpoint.port":1520,
        "connector.connectionType":"SERVICE",
        "connector.networkAttachment":
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

Usa el método projects.locations.transferConfigs.create y suministra una instancia del recurso TransferConfig.

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

Soluciona problemas con la configuración de una transferencia

Si tienes problemas para configurar tu transferencia de datos, consulta Problemas de transferencia de Oracle.

Precios

No se aplican costos por transferir datos de Oracle a BigQuery mientras esta función está en vista previa.

¿Qué sigue?