Carga datos de Microsoft SQL Server en BigQuery

Nota: Para obtener asistencia o enviar comentarios sobre esta función, comunícate con dts-preview-support@google.com.

Para programar transferencias de datos recurrentes de Microsoft SQL Server a BigQuery, puedes crear una configuración de transferencia para especificar qué objetos de datos transferir y con qué frecuencia programar la transferencia de datos. Después de establecer la configuración de transferencia, el Servicio de transferencia de datos de BigQuery transfiere los datos más recientes a una tabla de BigQuery según la programación especificada.

Para obtener información sobre cómo funciona una transferencia de Microsoft SQL Server, consulta Introducción a las transferencias de datos de Microsoft SQL Server.

Limitaciones

Los trabajos de transferencia de datos de Microsoft SQL Server están sujetos a las siguientes limitaciones:

  • Hay una cantidad limitada de conexiones simultáneas a una base de datos de Microsoft SQL Server. Por lo tanto, la cantidad de ejecuciones de transferencias simultáneas a una sola base de datos de Microsoft SQL Server también es limitada. Asegúrate de que la cantidad de trabajos de transferencia simultáneos sea menor que la cantidad máxima de conexiones simultáneas que admite la base de datos de Microsoft SQL Server.
  • Algunos tipos de datos de Microsoft SQL Server se pueden asignar al tipo STRING en BigQuery para evitar la pérdida de datos. Por ejemplo, ciertos tipos numéricos en Microsoft SQL Server que no tienen precisión ni escala definidas podrían asignarse a STRING en BigQuery. Para obtener más información, consulta Asignación de tipos de datos.

Limitaciones de la transferencia incremental

Las transferencias incrementales de Microsoft SQL Server están sujetas a las siguientes limitaciones:

  • Solo puedes elegir TIMESTAMP columnas 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 los objetos de la lista asset después de la primera ejecución de transferencia incremental.
  • No puedes cambiar el modo de escritura en una configuración de transferencia después de la primera ejecución de 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. En cualquier transferencia de datos incremental posterior, solo se transferirán las filas nuevas y actualizadas de tu fuente de datos.
  • Te recomendamos que crees índices en la columna de marca de agua. Este conector usa columnas de marca de agua para los filtros en las transferencias incrementales, por lo que indexar estas columnas puede mejorar el rendimiento.
  • Cuando realices una transferencia incremental, debes usar la asignación de tipos de datos actualizada.

Antes de comenzar

Antes de programar una transferencia de datos de Microsoft SQL Server, debes cumplir con los siguientes requisitos previos.

Requisitos previos de Microsoft SQL Server

Debes haber creado una cuenta de usuario en la base de datos de Microsoft SQL Server. Para obtener más información, consulta Crea un usuario con un acceso.

Requisitos previos de BigQuery

Roles obligatorios

Para obtener los permisos que necesitas para crear una transferencia de datos de Microsoft SQL Server, 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 de Microsoft SQL Server. 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 de Microsoft SQL Server:

  • bigquery.transfers.update
  • bigquery.datasets.get

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

Configuración de red

Debes establecer parámetros de configuración de red específicos cuando no haya una dirección IP pública disponible para la conexión de la base de datos de Microsoft SQL Server. Si deseas obtener más información, consulta las siguientes secciones:

Configura una transferencia de datos de Microsoft SQL Server

Selecciona una de las siguientes opciones:

Console

  1. Ve a la página Transferencias de datos.

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

  3. En la sección Tipo de fuente, en Fuente, selecciona Microsoft SQL Server.

  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 dirección IP de la base de datos de Microsoft SQL Server.
    • En Número de puerto, ingresa el número de puerto de la base de datos de Microsoft SQL Server.
    • En Nombre de la base de datos, ingresa el nombre de la base de datos de Microsoft SQL Server.
    • En Nombre de usuario, ingresa el nombre de usuario de Microsoft SQL Server que inicia la conexión de la base de datos de Microsoft SQL Server.
    • En Contraseña, ingresa la contraseña del usuario de Microsoft SQL Server que inicia la conexión de la base de datos de Microsoft SQL Server.
    • En Modo TLS, selecciona una opción en el menú. Para obtener más información sobre los modos de TLS, consulta Configuración de TLS.
    • En Certificado PEM de confianza, ingresa el certificado público de la autoridad certificadora (AC) que emitió el certificado TLS del servidor de la base de datos. Para obtener más información, consulta Certificado de servidor de confianza (PEM).
    • 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. 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.
    • En Ingestion type, selecciona Full o Incremental.
    • En Objetos de Microsoft SQL Server que se transferirán, explora la tabla de Microsoft SQL Server o ingresa de forma manual los nombres de las tablas que se requieren para la transferencia.
  5. En la sección Configuración de destino, en Conjunto de datos, selecciona el conjunto de datos que creaste para almacenar tus datos o haz clic en Crear conjunto de datos nuevo y crea uno para usarlo como conjunto de datos de destino.

  6. En la sección Nombre de configuración de la transferencia, en Nombre visible, ingresa el nombre de la transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si necesitas modificarla más adelante.

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

    • Selecciona una frecuencia de repetición. Si seleccionas la opción Horas, Días (predeterminada), Semanas o Meses, también debes especificar una frecuencia. También puedes seleccionar la opción Personalizado para crear una frecuencia de repetición más específica. Si seleccionas la opción a pedido, esta transferencia de datos solo se ejecuta cuando activas la transferencia de forma manual.
    • Si corresponde, selecciona la opción 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 Notificaciones 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.
    • Para configurar las notificaciones de ejecución de Pub/Sub para tu transferencia, activa el botón de activación Notificaciones de Pub/Sub. Puedes seleccionar el nombre del tema o hacer clic en Crear un tema para crear uno.
  9. Opcional: En la sección Opciones avanzadas, selecciona un tipo de encriptación para esta transferencia. Puedes seleccionar una Google-owned and Google-managed encryption key o una clave de Cloud Key Management Service que sea propiedad del cliente. Para obtener más información sobre las claves de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).

  10. Haz clic en Guardar.

bq

Ingresa el comando bq mk y proporciona 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): Es el ID del proyecto de Google Cloud . Si no se proporciona la marca --project_id para especificar un proyecto en particular, se usa el proyecto predeterminado.
  • DATA_SOURCE: Es la fuente de datos, que es sqlserver.
  • DISPLAY_NAME: el nombre visible de la configuración de transferencia de datos. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.
  • DATASET: el conjunto de datos de destino para la configuración de transferencia de datos.
  • 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 Microsoft SQL Server:

    • connector.networkAttachment (opcional): Es el nombre del adjunto de red para conectarse a la base de datos de Microsoft SQL Server.
    • connector.database: Es el nombre de la base de datos de Microsoft SQL Server.
    • connector.endpoint.host: Es el nombre de host o la dirección IP de la base de datos.
    • connector.endpoint.port: Es el número de puerto de la base de datos.
    • connector.authentication.username: Es el nombre de usuario del usuario de la base de datos.
    • connector.authentication.password: Es la contraseña del usuario de la base de datos.
    • connector.legacyMapping: Se establece 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.
    • connector.tls.mode: Especifica una configuración de TLS para usar con esta transferencia:
      • ENCRYPT_VERIFY_CA_AND_HOST para encriptar datos y verificar la AC y el nombre de host
      • ENCRYPT_VERIFY_CA para encriptar datos y verificar solo la AC
      • ENCRYPT_VERIFY_NONE solo para la encriptación de datos
      • DISABLE para que no haya encriptación ni verificación
    • connector.tls.trustedServerCertificate: (opcional) Proporciona uno o más certificados codificados con PEM. Solo es obligatorio si el valor de connector.tls.mode es ENCRYPT_VERIFY_CA_AND_HOST o ENCRYPT_VERIFY_CA.
    • ingestionType: Especifica full o incremental. Las transferencias incrementales se admiten en la versión preliminar. Para obtener más información, consulta Transferencias completas o incrementales.
    • writeMode: Especifica WRITE_MODE_APPEND o WRITE_MODE_UPSERT.
    • watermarkColumns: Especifica columnas de tu tabla como columnas de marca de agua. Este campo es obligatorio para las transferencias incrementales.
    • primaryKeys: Especifica las columnas de tu tabla como claves primarias. Este campo es obligatorio para las transferencias incrementales.
    • assets: Es una lista de los nombres de las tablas de Microsoft SQL Server que se transferirán desde la base de datos de Microsoft SQL Server como parte de la transferencia.

Por ejemplo, con el siguiente comando, se crea una transferencia de Microsoft SQL Server llamada My Transfer:

bq mk \
    --transfer_config
    --target_dataset=mydataset
    --data_source=sqlserver
    --display_name='My Transfer'
    --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"],
        "connector.authentication.username": "User1",
        "connector.authentication.password":"ABC12345",
        "connector.database":"DB1",
        "connector.endpoint.host":"192.168.0.1",
        "connector.endpoint.port":"1520",
        "connector.networkAttachment":"projects/dev-project1/regions/us-central1/networkattachments/na1",
        "ingestionType":"incremental",
        "writeMode":"WRITE_MODE_APPEND",
        "watermarkColumns":["createdAt","createdAt"],
        "primaryKeys":[['dep_id'], ['report_by','report_title']],
        "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST",
        "connector.tls.trustedServerCertificate": "PEM-encoded certificate"}'

Cuando especificas 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. En el siguiente ejemplo, dep_id corresponde a la tabla DB1/DEPARTMENT, mientras que report_by y report_title corresponden a la tabla DB1/EMPLOYEES.

      "primaryKeys":[['dep_id'], ['report_by','report_title']],
      "assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"],
  

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

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

Solucionar problemas

Para solucionar problemas relacionados con la transferencia de datos, consulta Problemas de transferencia de Microsoft SQL Server.

Metadatos de transferencia

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

¿Qué sigue?