Cargar datos de Oracle en BigQuery

Puedes cargar datos de Oracle en BigQuery mediante el conector de BigQuery Data Transfer Service para Oracle. Con BigQuery Data Transfer Service, puede programar tareas de transferencia periódicas que añadan sus datos más recientes de Oracle a BigQuery.

Limitaciones

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

  • El número máximo de conexiones simultáneas a una base de datos Oracle es limitado, por lo que el número de ejecuciones de transferencia simultáneas a una sola base de datos Oracle también está limitado a ese número máximo.
  • Debes configurar un archivo adjunto de red en los casos en los que no haya disponible una IP pública 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 se encuentra el archivo adjunto de red.
    • El archivo de red no debe estar en la subred dentro del intervalo 240.0.0.0/24.
    • Los archivos adjuntos de red no se pueden eliminar si hay conexiones activas al archivo adjunto. Para eliminar un archivo adjunto de red, póngase en contacto con el servicio de asistencia de Google Cloud.
    • En el caso de la multirregión us, la conexión de red debe estar en la región us-central1. En el caso de la multirregión eu, la conexión de red debe estar en la región europe-west4.
  • La consola solo admite el uso del rol de usuario de Oracle para conectar Oracle a BigQuery Data Transfer Service. Google Cloud NORMAL Debes usar la CLI de BigQuery para conectarte con los roles de usuario de Oracle SYSDBA y SYSOPER.
  • El intervalo mínimo entre transferencias periódicas de Oracle es de 15 minutos. El intervalo predeterminado de una transferencia periódica es de 24 horas.
  • Una configuración de transferencia solo puede admitir una ejecución de transferencia de datos a la vez. Si se programa una segunda transferencia de datos para que se ejecute antes de que se complete la primera, solo se completará la primera transferencia de datos y se omitirán las demás transferencias de datos que se solapen con la primera.
    • Para evitar que se omitan transferencias en una misma configuración de transferencia, le recomendamos que aumente el tiempo que transcurre entre las transferencias de grandes cantidades de datos configurando la frecuencia de repetición.
  • Si la vinculación de red y la instancia de máquina virtual (VM) configuradas se encuentran en regiones diferentes, puede que haya movimiento de datos entre regiones al transferir datos de Oracle.

Antes de empezar

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

Requisitos previos de Oracle

También debe tener la siguiente información de la base de datos de Oracle al crear una transferencia de Oracle.

Nombre del parámetro Descripción
database 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

El modo de cifrado. Puede ser FULL para la validación completa de SSL al conectarse a la base de datos de Oracle o DISABLE para no validar SSL.

oracleObjects

Lista de objetos de Oracle que se van a transferir.

Requisitos previos de BigQuery

Roles de BigQuery necesarios

Para obtener los permisos que necesitas para crear una transferencia, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de BigQuery (roles/bigquery.admin). Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear una transferencia. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear una transferencia, se necesitan los siguientes permisos:

  • 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 u otros roles predefinidos.

Cargar datos de Oracle en BigQuery

Añada datos de Oracle a BigQuery configurando una configuración de transferencia con una de las siguientes opciones:

Consola

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

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

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

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

    • En Red adjunta, seleccione una red adjunta o haga clic en Crear red adjunta.
    • En Host, introduce el nombre de host o la IP de la base de datos.
    • En Puerto, introduce el número de puerto que usa la base de datos de Oracle para las conexiones entrantes, como 1521.
    • En Database name (Nombre de la base de datos), introduce el nombre de la base de datos de Oracle.
    • En Tipo de conexión, introduce el tipo de URL de conexión: SERVICE, SID o TNS.
    • En Nombre de usuario, introduce el nombre de usuario del usuario que inicia la conexión a la base de datos de Oracle.
    • En Contraseña, introduce la contraseña del usuario que inicia la conexión a la base de datos de Oracle.
    • En Encryption mode (Modo de cifrado), selecciona FULL (Completo) en el menú desplegable para habilitar la validación SSL completa al conectarte a la base de datos de Oracle, o DISABLE (Inhabilitar) para no usar la validación SSL.
    • En Objetos de Oracle que se van a transferir, haga clic en BUSCAR para seleccionar las tablas que se van a transferir al conjunto de datos de destino de BigQuery. También puedes introducir manualmente los objetos que quieras incluir en la transferencia de datos en este campo.

      Configurar la configuración de transferencia de Oracle

  5. En la sección Configuración de destino, en Conjunto de datos, seleccione el conjunto de datos que ha creado para almacenar sus datos.

  6. En la sección Nombre de la configuración de transferencia, en Nombre visible, indica un nombre para la transferencia de datos.

  7. En la sección Opciones de programación:

    • En la lista Frecuencia de repetición, selecciona una opción para especificar con qué frecuencia se realiza esta transferencia de datos. Para especificar una frecuencia de repetición personalizada, selecciona Personalizar. Si seleccionas Bajo demanda, la transferencia se realizará cuando la inicies manualmente.
    • Si procede, selecciona Empezar ahora o Empezar a una hora determinada y proporciona una fecha de inicio y un tiempo de ejecución.
  8. Opcional: En la sección Opciones de notificación, haz lo siguiente:

    • Para habilitar las notificaciones por correo, haz clic en el interruptor Notificación por correo. Si habilitas esta opción, el administrador de la transferencia recibirá una notificación por correo cuando falle una ejecución de transferencia.
    • Para habilitar las notificaciones de Pub/Sub sobre la transferencia, haz clic en el interruptor 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

Introduce el comando bq mk y proporciona la marca de creación de transferencia --transfer_config:

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

Donde:

  • PROJECT_ID (opcional): el ID de tu proyecto Google Cloud . Si no se proporciona --project_id para especificar un proyecto concreto, se usará el proyecto predeterminado.
  • DATA_SOURCE: la fuente de datos oracle.
  • DISPLAY_NAME: el nombre visible de la configuración de la transferencia. El nombre de la transferencia de datos puede ser cualquier valor que te permita identificar la transferencia si necesitas modificarla más adelante.
  • DATASET: el conjunto de datos de destino de la configuración de la transferencia.
  • PARAMETERS: los parámetros de la configuración de transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}'. Estos son los parámetros de una transferencia de datos de Oracle:

    • connector.networkAttachment (opcional): nombre del archivo de red al que conectarse a la base de datos de Oracle.
    • connector.authentication.Username: nombre de usuario de la cuenta de Oracle.
    • connector.authentication.Password: contraseña de la cuenta de Oracle.
    • connector.database: 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: número de puerto que usa la base de datos de Oracle para las conexiones entrantes, como 1520.
    • connector.connectionType: el tipo de URL de conexión, que puede ser SERVICE, SID o TNS.
    • assets: ruta a los objetos de Oracle que se van a transferir a BigQuery. El formato es el siguiente: 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 proporciona una instancia del recurso TransferConfig.

Cuando guardas la configuración de la transferencia, el conector de Oracle activa automáticamente una ejecución de la transferencia según la opción de programación que hayas elegido. En cada ejecución de transferencia, el conector de Oracle transfiere todos los datos disponibles de Oracle a BigQuery.

Para ejecutar manualmente una transferencia de datos fuera de tu programación habitual, puedes iniciar una ejecución de rellenado.

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

Solucionar problemas de configuración de transferencias

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

Precios

No hay ningún coste por transferir datos de Oracle a BigQuery mientras esta función esté en vista previa.

Siguientes pasos