Carga datos de ServiceNow en BigQuery

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

Limitaciones

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

  • El conector de ServiceNow solo admite la API de tabla de ServiceNow.
  • No recomendamos ejecutar transferencias de datos simultáneas en la misma instancia de ServiceNow. Esto puede provocar demoras o fallas debido a la carga en la instancia de ServiceNow.
    • Te recomendamos que programes las horas de inicio de las transferencias de forma separada para evitar que se superpongan las ejecuciones de transferencia.
  • Para mejorar el rendimiento de la transferencia de datos, te recomendamos que limites la cantidad de recursos a 20 elementos por transferencia.
  • El tiempo de intervalo mínimo entre transferencias de datos recurrentes es de 15 minutos. El intervalo predeterminado para una transferencia recurrente es de 24 horas.
  • Una sola configuración de transferencia solo puede admitir una ejecución de transferencia de datos a la vez. En el caso de que se programe una segunda transferencia de datos para que se ejecute antes de que se complete la primera, solo se completará la primera transferencia de datos, mientras que se omitirán las demás transferencias de datos que se superpongan con la primera.
    • Para evitar que se omitan transferencias dentro de una misma configuración de transferencia, te recomendamos que aumentes el intervalo de tiempo entre transferencias de datos grandes configurando la Frecuencia de repetición.
  • Para usar un adjunto de red con esta transferencia de datos, primero debes crear un adjunto de red definiendo una dirección IP estática.

Limitaciones de la transferencia incremental

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

  • Solo puedes elegir columnas DATETIME como columnas de marca de agua.
  • La transferencia incremental solo se admite para los recursos con columnas de marca de agua válidas.
  • Los valores de una columna de marca de agua deben aumentar de forma monótona.
  • Las transferencias incrementales no pueden sincronizar las operaciones de eliminación en la tabla de origen.
  • Una sola configuración de transferencia solo puede admitir la transferencia incremental o completa.
  • No puedes actualizar objetos en la lista asset después de la primera ejecución de la incorporación incremental.
  • No puedes cambiar el modo de escritura en una configuración de transferencia después de la primera ejecución de la transferencia incremental.
  • No puedes cambiar la columna de marca de agua ni la clave primaria después de la primera ejecución de transferencia incremental.
  • La tabla de BigQuery de destino se agrupa con la clave primaria proporcionada y está sujeta a las limitaciones de las tablas agrupadas.
  • Cuando actualizas una configuración de transferencia existente al modo de transferencia incremental por primera vez, la primera transferencia de datos después de esa actualización transfiere todos los datos disponibles de tu fuente de datos. Todas las transferencias de datos incrementales posteriores solo transferirán las filas nuevas y actualizadas de tu fuente de datos.

Opciones de transferencia de datos

En estas secciones, se describen las opciones de transferencia de datos para configurar una transferencia de datos de ServiceNow.

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 ServiceNow.

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

Como alternativa, puedes configurar una transferencia de datos incremental 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 actualización o inserción

El modo de escritura de actualización o inserción actualiza una fila o inserta una fila nueva en tu tabla de destino verificando una clave primaria. Puedes especificar una clave primaria para permitir que el conector de ServiceNow determine qué cambios se necesitan para mantener la tabla de destino actualizada con la 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 ServiceNow 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 ServiceNow inserta una fila nueva.

Cuando seleccionas el modo de actualización o inserción, 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 ServiceNow realice 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 columnas similares a la columna 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 ServiceNow determine si necesita insertar o actualizar una fila.

    Selecciona 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 una posible pérdida o daño de datos, las columnas de clave primaria que selecciones deben tener valores únicos. Si tienes dudas sobre la unicidad de la columna de clave primaria que elegiste, te recomendamos que uses la transferencia completa.

Comportamiento de 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
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 de esta columna borrada se propagan con valores nulos.
Cambiar el tipo de datos en una columna El conector solo admite conversiones de tipos de datos que admite la sentencia DDL ALTER COLUMN. Cualquier otra conversión de tipo de datos hace que falle la transferencia de datos.

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

Cambia 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.

Antes de comenzar

Antes de crear una transferencia de datos de ServiceNow, haz lo siguiente para ServiceNow y BigQuery.

Requisitos previos de ServiceNow

  • Para acceder a las APIs de ServiceNow, crea credenciales de OAuth.
  • Todas las aplicaciones de ServiceNow deben estar habilitadas en la instancia de ServiceNow:

  • Para iniciar una transferencia de ServiceNow, debes tener las credenciales correctas para conectarte a la instancia de ServiceNow.

    • Para obtener tus credenciales de una instancia de desarrollador de ServiceNow, accede al portal para desarrolladores de ServiceNow. Puedes usar el nombre de usuario y la contraseña que se indican en la página Administra la contraseña de la instancia. Para obtener información sobre cómo restablecer tu contraseña de ServiceNow, consulta Restablecer la contraseña
    • Para obtener tus credenciales de una instancia de producción o subproducción de ServiceNow, comunícate con tu administrador de clientes de ServiceNow y solicita el nombre de usuario y la contraseña.

Requisitos previos de BigQuery

Roles de BigQuery requeridos

Para obtener los permisos que necesitas para crear una transferencia de datos del Servicio de transferencia de datos de BigQuery, pídele a tu administrador que te otorgue el rol de IAM de administrador de BigQuery (roles/bigquery.admin) en tu proyecto. 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 de datos del Servicio de transferencia de datos de BigQuery. 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 de datos del Servicio de transferencia de datos de BigQuery:

  • Permisos del Servicio de transferencia de datos de BigQuery:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Permisos de BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

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

Para obtener más información, consulta Cómo otorgar acceso a bigquery.admin.

Configura una transferencia de datos de ServiceNow

Agrega datos de ServiceNow a BigQuery configurando una transferencia 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, en Fuente, selecciona ServiceNow.

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

    • (Opcional) En Adjunto de red, selecciona un adjunto de red en el menú desplegable o haz clic en Crear adjunto de red.
      • Selecciona un adjunto de red para configurar esta transferencia de datos de manera que use una dirección IP única y coherente. Puedes utilizar esta opción si tu instancia de ServiceNow está configurada para aceptar tráfico solo desde direcciones IP específicas.
      • Para obtener más información sobre cómo crear un adjunto de red, consulta Configura conexiones con adjuntos de red.
      • Para obtener más información sobre cómo definir direcciones IP en ServiceNow, consulta Define direcciones IP internas permitidas de ServiceNow.
    • En ID de instancia, ingresa el ID de la instancia de ServiceNow. Puedes obtenerlo desde la URL de ServiceNow, por ejemplo, https://INSTANCE_ID.service-now.com.
    • (Opcional) En ServiceNow Cloud Type, selecciona el tipo de nube para tu cuenta de ServiceNow:
      • Selecciona Comercial si la URL de tu instancia de ServiceNow sigue el patrón https://INSTANCE_ID.service-now.com. Este es el valor predeterminado.
      • Selecciona Government Community Cloud (GCC) si la URL de tu instancia de ServiceNow sigue el patrón https://INSTANCE_ID.servicenowservices.com.
    • En Nombre de usuario, ingresa el nombre de usuario de ServiceNow que se usará para la conexión.
    • En Contraseña, ingresa la contraseña de ServiceNow.
    • En ID de cliente, ingresa el ID de cliente de tus credenciales de OAuth. Para generar credenciales, consulta Crea credenciales de OAuth.
    • En Secreto del cliente, ingresa el secreto del cliente de tus credenciales de OAuth.
    • En Enable legacy mapping, selecciona true (predeterminado) para usar la asignación de tipos de datos heredada. Selecciona false para usar la asignación de tipos de datos actualizada. Para obtener más información sobre las actualizaciones de asignación de tipos de datos, consulta 16 de marzo de 2027.
    • En Ingestion type, selecciona Full o Incremental.
    • En ServiceNow tables to transfer, haz clic en Explorar:
      • Selecciona los objetos que se transferirán al conjunto de datos de destino de BigQuery. También puedes ingresar de forma manual cualquier objeto que quieras incluir en la transferencia de datos en este campo.
      • Si seleccionaste Upsert como modo de escritura incremental, debes seleccionar una columna como columna de marca de agua y, luego, seleccionar una o más columnas como clave primaria.
    • En Tipo de valor, elige una de las siguientes opciones:
      • Para transferir los valores almacenados en la base de datos, elige Real.
      • Para transferir los valores de visualización de las columnas, elige Mostrar.
  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 de datos 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 activar o desactivar Notificación por correo electrónico. Cuando habilitas esta opción, el administrador de transferencias recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
    • Si quieres habilitar las notificaciones de ejecución de transferencias de Pub/Sub para esta transferencia de datos, 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'

Reemplaza lo siguiente:

  • PROJECT_ID (opcional): Tu ID del proyecto de Google Cloud . Si no se especifica un ID del proyecto, se usa el proyecto predeterminado.
  • DATA_SOURCE: Es la fuente de datos (por ejemplo, servicenow).
  • 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 ServiceNow:

    Parámetro ServiceNow Obligatorio u opcional Descripción
    connector.networkAttachment Opcional Nombre del adjunto de red que se usará para garantizar la conectividad con la instancia de ServiceNow.
    connector.instanceId Obligatorio ID de la instancia de ServiceNow
    connector.authentication.username Obligatorio Nombre de usuario de la instancia de ServiceNow del usuario.
    connector.authentication.password Obligatorio Contraseña de la instancia de ServiceNow del usuario.
    connector.authentication.oauth.clientId Obligatorio Es el ID de cliente para la autenticación de OAuth con la instancia de ServiceNow.
    connector.authentication.oauth.clientSecret Obligatorio Es el secreto del cliente para la autenticación de OAuth con la instancia de ServiceNow.
    connector.instanceCloudType Opcional Especifica el tipo de nube de tu cuenta de ServiceNow. Los valores admitidos son los siguientes:
    • COMMERCIAL_CLOUD, si la URL de tu instancia de ServiceNow sigue el patrón https://INSTANCE_ID.service-now.com
    • GOVERNMENT_COMMUNITY_CLOUD si la URL de tu instancia de ServiceNow sigue el patrón https://INSTANCE_ID.servicenowservices.com
    ingestionType Opcional Define el método para transferir datos desde la instancia de ServiceNow de origen hasta el destino, lo que determina si se realiza una recarga completa del conjunto de datos o una actualización incremental eficiente.
    writeMode Opcional Si se usa la transferencia incremental, determina la estrategia de sincronización para la transferencia incremental. Este campo es obligatorio para las transferencias incrementales. El valor admitido es WRITE_MODE_UPSERT.
    assets Obligatorio Es la lista de los nombres de las tablas de ServiceNow que se transferirán desde ServiceNow como parte de la transferencia.
    watermarkColumns Opcional Si se usa la transferencia incremental, es el campo de la tabla de origen (por lo general, fecha y hora) que se usa para hacer un seguimiento del último punto de sincronización exitoso, lo que permite que el conector consulte y transfiera de manera eficiente solo los registros que se crearon o modificaron desde ese momento específico. Este campo es obligatorio para las transferencias incrementales.
    primaryKeys Opcional Si usas la transferencia incremental, la columna única o la combinación de columnas que se usan para identificar de forma inequívoca cada fila de la tabla de origen. Este campo es obligatorio para las transferencias incrementales.
    valueType Opcional Controla cómo se asignan tipos de datos específicos de ServiceNow a tipos de datos de BigQuery.
    connector.legacyMapping Obligatorio Establécelo en true (predeterminado) para usar la asignación de tipos de datos heredada. Establece en false para usar la asignación de tipos de datos actualizada. Si realizas una transferencia incremental, este valor debe ser false. Para obtener más información sobre las actualizaciones de asignación de tipos de datos, consulta 16 de marzo de 2027.

    Cuando se especifican varios recursos durante una transferencia incremental, los valores de los campos watermarkColumns y primaryKeys corresponden a la posición de los valores en el campo assets. Asegúrate de que el orden de las tablas y sus respectivas columnas se mantenga de manera coherente en todas las listas de configuración relacionadas.

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

      bq mk
        --transfer_config
        --target_dataset=mydataset
        --data_source=servicenow
        --display_name='My Transfer'
        --params='{"connector.authentication.oauth.clientId": "1234567890",
            "connector.authentication.oauth.clientSecret":"ABC12345",
            "connector.authentication.username":"user1",
            "connector.authentication.password":"abcdef1234",
            "connector.instanceId":"dev-instance",
            "connector.networkAttachment": "projects/dev-project1/regions/us-central1/networkattachments/na1"}'
    

    Con el siguiente comando, se crea una transferencia de datos incremental de ServiceNow en el proyecto predeterminado y se usa el modo de escritura UPSERT.

      bq mk
          --transfer_config
          --target_dataset=mydataset
          --data_source=servicenow
          --display_name='My Transfer'
          --params='{"assets": ["incident", "change_request"],
              "connector.authentication.oauth.clientId": "1234567890",
              "connector.authentication.oauth.clientSecret":"ABC12345",
              "connector.authentication.username":"user1",
              "connector.authentication.password":"abcdef1234",
              "connector.instanceId":"dev-instance",
              "ingestionType":"incremental",
              "writeMode":"WRITE_MODE_UPSERT",
              "watermarkColumns":["sys_updated_on","sys_updated_on"],
              "primaryKeys":[["sys_id"], ["sys_id"]]}'
    

API

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

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

Para ejecutar una transferencia de datos de forma manual fuera de tu programa habitual, puedes iniciar una ejecución de reabastecimiento.

Asignación de tipos de datos

En la siguiente tabla, se muestra cómo se asignan los tipos de datos en una transferencia de datos de ServiceNow:

Tipo de datos de ServiceNow Tipo de datos de BigQuery Tipo de datos de BigQuery actualizado
decimal FLOAT64
integer INTEGER
boolean BOOLEAN
glide_date DATE
glide_date_time DATETIME
glide_list STRING ARRAY
glide_time INT64
reference STRING
currency STRING
sys_class_name STRING
domain_id STRING
domain_path STRING
guid STRING
translated_html STRING
journal STRING
string STRING
list STRING ARRAY

Cómo solucionar problemas de transferencia

En las siguientes secciones, se detallan los problemas habituales que surgen cuando se configura una transferencia de datos de ServiceNow.

Para obtener más información, consulta Soluciona problemas relacionados con la configuración de transferencia.

La transferencia falla debido a la habilitación de ServiceNow

Se produce un problema que provoca que las transferencias de datos fallen cuando las aplicaciones de Adquisición, Catálogo de productos o Administración de contratos no están habilitadas en ServiceNow. Para solucionarlo, habilita las tres aplicaciones:

El problema se produce durante la ejecución de la transferencia

Se produce un problema que hace que la ejecución de la transferencia no se cree según lo previsto. Para solucionar el problema, haz lo siguiente:

  • Verifica que las credenciales de la cuenta de ServiceNow sean correctas, como los valores Nombre de usuario, Contraseña, ID de cliente y Secreto de cliente.
  • Verifica que el ID de la instancia sea el ID válido de tu instancia de ServiceNow.

Otros errores

Para obtener información sobre otros errores que se produjeron durante una transferencia de datos de ServiceNow, consulta Problemas de transferencia de ServiceNow.

Precios

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

¿Qué sigue?