Preguntas frecuentes

Descripción general

En esta página, encontrarás respuestas a las preguntas frecuentes sobre el uso de Datastream. Esta pregunta frecuente está asociada con:

  • Preguntas generales sobre Datastream y la captura de datos modificados (CDC)
  • Comportamiento y limitaciones generales de la fuente
  • Comportamiento y limitaciones de la fuente de MySQL
  • Comportamiento y limitaciones de la fuente de Oracle
  • Comportamiento y limitaciones de la fuente de PostgreSQL (incluida AlloyDB para PostgreSQL)
  • Comportamiento y limitaciones de la fuente de SQL Server
  • Comportamiento de destino de BigQuery
  • Comportamiento del destino de Cloud Storage
  • Casos de uso comunes de Datastream
  • Cómo se integra Datastream en los servicios de datos de Google Cloud
  • Seguridad y conectividad
  • Supervisión de Datastream
  • Precios
  • Información adicional sobre Datastream

Preguntas generales sobre Datastream y la captura de datos modificados (CDC)

Pregunta Respuesta
¿Qué es Datastream?

Datastream es un servicio de replicación y captura de datos modificados (CDC) sin servidores fácil de usar. Datastream permite una replicación sin interrupciones de datos de fuentes de base de datos relacional, como AlloyDB para PostgreSQL, PostgreSQL, MySQL, SQL Server y Oracle, directamente en BigQuery. Datastream ofrece el escalamiento, la velocidad, la seguridad y la simplicidad que necesitan las empresas modernas. Con una arquitectura sin servidores y con ajuste de escala automático, Datastream te permite configurar con facilidad una canalización ELT (extracción, carga y transformación) para la replicación de datos de baja latencia, lo que permite obtener estadísticas casi en tiempo real.

Datastream también tiene la capacidad de sincronizar flujos de datos entre bases de datos y aplicaciones heterogéneas de manera confiable y con una latencia mínima. El servicio te ofrece una integración optimizada en plantillas de Dataflow para replicar bases de datos en Cloud SQL o Spanner para la sincronización de bases de datos, o aprovechar la transmisión de eventos directamente desde Cloud Storage para crear arquitecturas controladas por eventos. Además, se integra en Cloud Data Fusion para los clientes que desean compilar canalizaciones de datos con transformaciones a BigQuery.

¿Cuáles son los métodos con los que Datastream transmite datos? Datastream transmite datos de un origen a un destino con uno de estos dos métodos:
  • CDC: captura cambios continuos de la fuente en tiempo real.
  • Reabastecimiento: proporciona una instantánea histórica de datos que existen en una tabla.
¿Qué es CDC?

La CDC es un enfoque para la integración de datos que te permite integrar y analizar datos más rápido, usando menos recursos del sistema. Es un método para extraer solo los últimos cambios (actualizaciones, inserciones o eliminaciones) de una fuente de datos, a menudo mediante la lectura del registro de cambios que la fuente conserva para su propia integridad transaccional interna.

La CDC es un mecanismo altamente eficiente para limitar el impacto en la fuente cuando se cargan nuevos datos en almacenes de datos operativos y almacenes de datos. Además, elimina la necesidad de actualizar la carga masiva y de períodos por lotes poco convenientes, ya que permite la carga incremental o la transmisión casi en tiempo real de los cambios de datos en un destino de datos.

La CDC puede usarse en muchos casos de uso que derivan valor del acceso constante a cambios en los datos a medida que ocurren, como la analítica, la sincronización de datos en sistemas distribuidos geográficamente y las arquitecturas basadas en eventos.

¿Qué es el reabastecimiento?

Además de los cambios en curso, Datastream también usa el reabastecimiento para extraer todos los datos existentes de una fuente y, luego, transmitirlos a un destino. Como resultado, el destino se "reabastece" con todos los datos históricos de la fuente. Existen dos tipos de reabastecimiento:

  • Incremental: Es el tipo de reabastecimiento predeterminado para las tablas. Durante el reabastecimiento incremental, Datastream recupera datos de rangos de filas en múltiples lotes y los transmite a un lote de destino por lote.
  • Volcado completo: Durante el reabastecimiento de volcado completo, Datastream extrae todos los datos a la vez y los transmite a un destino.
¿Hay alguna limitación que debas tener en cuenta cuando realices un reabastecimiento?

Para obtener información sobre las restricciones de reabastecimiento, consulta las páginas de limitaciones conocidas de los tipos de fuente respectivos:

¿Cuál es el orden recomendado para las operaciones de CDC y reabastecimiento? En la mayoría de los casos, no hay una consideración especial aquí. Cuando se habilita el reabastecimiento en una transmisión, Datastream realiza el reabastecimiento y la CDC al mismo tiempo. En algunos casos extremos, por ejemplo, cuando se replican tablas muy grandes que no se pueden reabastecer con Datastream, es posible que debas cargar los datos en BigQuery antes de iniciar la transmisión.
¿Puedo supervisar el estado de las CDC y las operaciones de reabastecimiento?

Puedes supervisar el estado de reabastecimiento por objeto:

  1. En la consola de Google Cloud, ve a la página Transmisiones.
  2. Haz clic en la transmisión que quieres supervisar.
  3. Haz clic en la pestaña Objetos.

El estado CDC es, de hecho, el estado de transmisión. Si la operación de CDC falla, falla toda la transmisión.

Las métricas a nivel de objeto adicionales están disponibles en Cloud Monitoring. Para obtener más información, consulta la documentación de Cloud Monitoring.

¿Qué es un flujo de cambios frente a una replicación?

Un flujo de cambios es una secuencia de eventos que Datastream emite a un destino para fines de consumo descendente. El resultado de la escritura de un flujo de cambios en Cloud Storage es un conjunto de archivos que contienen eventos de registro de cambios de una tabla específica durante un período. Los eventos representan inserciones, actualizaciones y eliminaciones en esa tabla, y los servicios pueden consumirlos y procesarlos de manera descendente de Cloud Storage a través de servicios como Dataflow para casos de uso como las arquitecturas controladas por eventos.

La replicación en el contexto de Datastream significa una representación actualizada 1:1 de la tabla de origen en el destino. Por ejemplo, una tabla de Oracle cuyos cambios se replican de forma continua en una tabla de BigQuery, en la que la tabla de BigQuery se mantiene actualizada mediante los cambios que se transmiten desde la tabla de Oracle. La replicación aprovecha los flujos de cambios, ya que consume cada evento de cambio y lo usa para actualizar el destino. Datastream permite la replicación directa en BigQuery y admite destinos adicionales como Cloud SQL y Spanner a través de la integración con Dataflow, ya que aprovecha las plantillas que extraen los eventos de flujos de cambios de Cloud Storage y actualiza las tablas de destino según corresponda.

¿Datastream requiere un agente en la fuente? No es necesario que instales un agente en la fuente. Datastream usa interfaces existentes (como Oracle LogMiner) para obtener los datos de la fuente.
¿Cuántas tablas puedo incluir en una sola transmisión? Datastream puede manejar hasta 10,000 tablas en una sola transmisión. No hay un motivo técnico para dividir una base de datos en varias transmisiones. Puede haber algunas consideraciones empresariales para usar diferentes transmisiones para diferentes flujos lógicos, pero cada transmisión agrega carga a la base de datos de origen. Esa carga es insignificante para las CDC, pero puede ser significativa para el reabastecimiento.
¿Qué ocurre con el impacto en el rendimiento que tiene el uso de Datastream en una base de datos de producción?

La CDC es un mecanismo altamente eficiente para limitar el impacto en la fuente cuando se cargan datos nuevos en almacenes de datos de destino. La CDC también elimina la necesidad de actualizar la carga masiva y los períodos de lotes poco convenientes, ya que permite la carga incremental o la transmisión de cambios de datos casi en tiempo real en un destino.

Además, para minimizar el impacto de un reabastecimiento inicial, Datastream limita la cantidad de tareas de reabastecimiento simultáneas y te ofrece el control para decidir qué objetos reabastecer y cuándo hacerlo.

¿Puedes copiar los archivos de registro de la fuente a Google Cloud? No. Datastream consulta los registros directamente en el servidor de la base de datos y solo los cambios en las tablas especificadas se escriben en el destino.
¿Datastream también puede transferir datos históricos? Sí. De forma predeterminada, Datastream obtiene todos los datos históricos de las tablas de base de datos de la fuente que especifiques, en paralelo a la transmisión de CDC. Datastream te brinda la flexibilidad de obtener datos históricos de algunas o todas las tablas de base de datos en tu fuente. Además, cuando configures la transmisión, podrás inhabilitar el reabastecimiento histórico.
¿Datastream garantiza la entrega exactamente una vez? No. Datastream se entrega al menos una vez. Los metadatos adicionales que Datastream escribe en cada evento se pueden usar para quitar los datos duplicados.
¿Datastream puede manejar bases de datos encriptadas? Sí.
¿Datastream puede transmitir tablas y columnas específicas desde una fuente? Sí. Con Datastream, puedes especificar listas de inclusión y exclusión de tablas y esquemas para transmitir solo los datos que deseas de un origen a un destino. En el caso de las tablas incluidas, puedes excluir columnas específicas para definir mejor los datos que deseas transmitir al destino. Sin embargo, las vistas materializadas no se pueden replicar.
¿Cómo se mueve una transmisión a otro proyecto o región?
  1. Crea una transmisión en una región o proyecto nuevo con la misma configuración que la transmisión existente, pero no selecciones la casilla de verificación Reabastecer datos históricos.
  2. Inicia la transmisión que creaste.
  3. Después de que la transmisión que creaste tenga el estado RUNNING, pausa la transmisión existente.
  4. De forma opcional, puedes seleccionar la casilla de verificación Reabastecer datos históricos para modificar la nueva transmisión. Los datos existentes en las tablas que se agreguen a la transmisión en el futuro se transmitirán desde el origen hacia el destino.
¿Cómo maneja Datastream las transacciones no confirmadas en los archivos de registro de la base de datos? Cuando los archivos de registro de la base de datos contienen transacciones no confirmadas, si alguna transacción se revierte, la base de datos refleja esto en los archivos de registro como operaciones de lenguaje de manipulación de datos (DML) “invertidas”. Por ejemplo, una operación INSERT revertida tendrá una operación DELETE correspondiente. Datastream lee estas operaciones de los archivos de registro.
¿Cuál es la disponibilidad regional de Datastream?

Para ver una lista de las regiones en las que Datastream está disponible, consulta Listas de IP permitidas y regiones.

Comportamiento y limitaciones generales de la fuente

Pregunta Respuesta
¿Qué fuentes admite Datastream?

Datastream admite datos de transmisión de fuentes de Oracle, MySQL, PostgreSQL, AlloyDB para PostgreSQL y SQL Server, tanto alojadas en la nube como autoadministradas. Para obtener información sobre las versiones específicas de la fuente, consulta las siguientes páginas:

¿Datastream puede manejar bases de datos encriptadas? Sí.
¿Cómo extrae Datastream datos de las fuentes?

En MySQL, Datastream procesa el registro binario de MySQL para extraer eventos de cambio.

En el caso de Oracle, Datastream usa LogMiner y la configuración de registro complementaria para extraer datos de los registros para rehacer de Oracle.

Para PostgreSQL y AlloyDB para PostgreSQL, Datastream se basa en la función de decodificación lógica de PostgreSQL. La decodificación lógica expone todos los cambios confirmados en la base de datos y permite consumirlos y procesarlos.

En SQL Server, Datastream hace un seguimiento de los cambios en el lenguaje de manipulación de datos (DML) con registros de transacciones.

¿Puedes copiar archivos de registro directamente de una fuente a Google Cloud? Datastream no copia la totalidad de los archivos de registro, sino que los consulta directamente desde el servidor de la base de datos y solo replica los cambios de las tablas especificadas en el destino.
¿Cuáles son las limitaciones de los datos que Datastream puede procesar?

Hay limitaciones y limitaciones generales que se aplican a fuentes de bases de datos específicas.

Entre las limitaciones generales, se incluyen las siguientes:

  • Capacidad de procesamiento: ~5 MBPS con un límite de tamaño de fila máximo de 30 MB para el destino de Cloud Storage y un límite de tamaño de fila de 20 MB para BigQuery
  • Algunas operaciones del lenguaje de definición de datos (DDL) no son compatibles durante la replicación, incluidas las siguientes:
    • Eliminar una columna del medio de una tabla Esto puede causar una discrepancia en los datos porque los valores están asociados a la columna incorrecta.
    • Cambiar el tipo de datos de una columna. Esto puede causar una discrepancia en los datos, ya que no están asignados correctamente al tipo unificado de Datastream correcto y se pueden dañar.
    • Se ignoran las eliminaciones en cascada.
    • El truncamiento de tablas se ignora.

Para conocer las limitaciones específicas de la fuente, consulta las siguientes páginas:

¿Qué datos se incluyen en todos los eventos que genera Datastream? Cada evento generado (para inserciones, actualizaciones y eliminaciones) incluye la fila completa de datos de la fuente, con el valor y el tipo de datos de cada columna. Cada evento también incluye metadatos de eventos que se pueden usar para establecer el ordenamiento y garantizar que las entregas se realicen exactamente una vez.
¿Datastream garantiza el orden? Aunque Datastream no garantiza el orden, proporciona metadatos adicionales para cada evento. Estos metadatos se pueden usar para garantizar la coherencia eventual en el destino. Según la fuente, la frecuencia, la frecuencia de los cambios y otros parámetros, por lo general, se puede lograr la coherencia eventual en un período de 1 hora.
¿Datastream garantiza la entrega exactamente una vez? Datastream se entrega al menos una vez. Para eliminar los datos duplicados, puedes usar metadatos adicionales que Datastream escribe en cada evento.
¿Cómo representa Datastream los tipos de datos de la fuente para usarlos en el procesamiento posterior?

Cuando se escribe en un destino sin esquema, como Cloud Storage, Datastream simplifica el procesamiento posterior de los datos entre fuentes mediante la normalización de los tipos de datos en todas las fuentes. Datastream toma el tipo de datos de origen original (por ejemplo, un tipo NUMERIC de MySQL o PostgreSQL o un tipo NUMBER de Oracle) y lo normaliza en un tipo unificado de Datastream.

Los tipos unificados representan un superconjunto sin pérdidas de todos los tipos de fuente posibles, y la normalización significa que los datos de diferentes fuentes se pueden procesar con facilidad y consultar con posterioridad sin importar su fuente.

¿Cómo maneja Datastream los cambios de estructura (de esquema) en la fuente? Datastream recupera el esquema de la fuente de forma periódica. Los esquemas se almacenan en el registro de esquemas interno de Datastream, y cada evento hace referencia al esquema en el momento en que se generó. Esto permite que Datastream realice un seguimiento de los cambios de esquema y se ajuste en función de estos cambios, lo que garantiza que todos los datos se transmitan y carguen en el destino de manera correcta. Sin embargo, entre las recuperaciones de esquemas, algunos cambios de esquema pueden pasar desapercibidos, lo que podría causar discrepancias en los datos.
Eliminé (descarté) una columna de la base de datos de origen, pero aún aparece en mi destino. ¿Por qué? Datastream no borra las columnas de destino. Debes borrar columnas de forma manual. Este comportamiento es intencional porque, en algunos casos, es posible que prefieras mantener la columna borrada en el destino. Por ejemplo, Datastream interpreta que cambiar el nombre de una columna en la fuente es borrar una columna y agregar otra. En este caso, no quieres perder la columna original en el destino.
No se puede iniciar la transmisión debido a un error de validación, pero creo que se trata de un error o, de todos modos, quiero intentar ejecutar la transmisión. ¿Cómo puedo superar esta validación? Puedes iniciar la transmisión con la API. Para ello, agrega la marca force=true y omite las verificaciones de validación. Ten en cuenta que omitir las validaciones no garantiza que la transmisión pueda ejecutarse. Aun así, puede fallar si la base de datos no tiene la configuración o los permisos necesarios.
¿Puedo reiniciar una transmisión con errores?

Para corregir una transmisión con el estado Failed, soluciona los errores informados por Datastream. Para obtener más información, consulta Cómo solucionar problemas de una transmisión.

También puedes recuperar una transmisión con el estado Failed permanently. Para obtener más información, consulta Cómo recuperar una transmisión.

¿Datastream bloquea las tablas de la base de datos?

No. Datastream no necesita bloquear las tablas.

En las páginas de limitación de cada fuente, se especifica que las transmisiones pueden tener hasta 10,000 tablas. ¿Significa que Datastream no puede ejecutar operaciones de CDC en paralelo para más de 10,000 tablas al mismo tiempo? No. El límite mencionado es por transmisión. Puedes tener varias transmisiones con una cantidad total de tablas que supere las 10,000.

Comportamiento y limitaciones de la fuente de MySQL

Pregunta Respuesta
¿Cómo obtiene Datastream los datos de MySQL? Datastream usa el registro binario de MySQL para extraer los eventos de cambio de MySQL
¿Datastream admite instancias de réplica de lectura de Cloud SQL para MySQL?

Sí, Datastream admite instancias de réplica de lectura en las versiones 5.7 y 8.0 de Cloud SQL para MySQL.

Puedes habilitar el registro binario en estas instancias. Para hacerlo, ejecuta el siguiente comando de gcloud:

gcloud sql instances patch INSTANCE_NAME -- enable-bin-log

Para obtener más información, consulta Registro binario en réplicas de lectura.

¿Qué permisos como mínimo necesita Datastream para replicar datos de una base de datos de MySQL de origen?

Debes otorgar los siguientes permisos al usuario de Datastream para replicar los datos de una base de datos de MySQL:

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
¿Datastream admite la compresión de registros binarios?

No, Datastream no admite la compresión de eventos de transacción con la compresión de transacciones de registros binarios. Inhabilita la compresión de transacciones de registros binarios para usar la funcionalidad de captura de datos modificados para MySQL en Datastream.

Tu organización no permite que se otorgue el permiso SELECT en todas sus tablas y bases de datos. ¿Puedes seguir usando Datastream?

Puedes otorgar el permiso SELECT a las tablas particulares que quieres replicar o al esquema completo de una base de datos. Para ello, ejecuta uno de los siguientes comandos:

GRANT SELECT ON DATABASE_NAME.TABLE_NAME TO USER_NAME@'%';
o
GRANT SELECT ON DATABASE_NAME.* TO USER_NAME@'%';

Reemplaza lo siguiente:

  • DATABASE_NAME: Es el nombre de la base de datos de MySQL.
  • TABLE_NAME: Es el nombre de la tabla a la que le otorgas el permiso SELECT.
  • USER_NAME: Es el nombre del usuario al que le otorgas el permiso SELECT.

Si deseas restringir los permisos a un nombre de host en particular, reemplaza el carácter % por la dirección IP o el rango de direcciones específicos.

Comportamiento y limitaciones de la fuente de Oracle

Pregunta Respuesta
¿Cómo obtiene Datastream los datos de Oracle? Datastream usa Oracle LogMiner para extraer los datos de los registros de rehacer de Oracle.
¿Datastream requiere una licencia GoldenGate de Oracle? No. Datastream no requiere una licencia de GoldenGate porque usa Oracle LogMiner para leer los datos de los registros de redo de la base de datos.
¿Qué sucederá cuando ya no se admita Oracle LogMiner? Oracle LogMiner sigue siendo compatible con todas las versiones de Oracle disponibles de forma general, y Datastream seguirá admitiendo LogMiner en todas las versiones futuras. Oracle descontinuó la compatibilidad con la opción CONTINUOUS_MINE de LogMiner. Sin embargo, Datastream no usa esta opción, por lo que esta baja no afecta a Datastream.
¿Datastream admite la encriptación de datos en tránsito desde bases de datos de Oracle?

Datastream admite la encriptación de datos en tránsito en función de Oracle Net Services. Datastream se ejecuta en modo REQUESTED.

¿Datastream admite la encriptación de capa de conexión segura (SSL) y seguridad de la capa de transporte (TLS)?

Sí, Datastream admite el protocolo TCPS para las conexiones con encriptación SSL/TLS a fuentes de Oracle.

¿Datastream admite la arquitectura multiusuario de Oracle, en particular las bases de datos de contenedores (CDB) y las bases de datos conectables (PDB)? Sí, Datastream admite la arquitectura multiusuario de Oracle (CDB/PDB). Sin embargo, solo puedes replicar una base de datos conectable y única en una transmisión.
Tu organización no permite que se otorgue el permiso GRANT SELECT ANY TABLE. ¿Puedes seguir usando Datastream?

Si no puedes otorgar el permiso GRANT SELECT ANY TABLE, puedes otorgar permisos SELECT a la siguiente lista de tablas:

  • ALL_COL_COMMENTS
  • ALL_CONS_COLUMNS
  • ALL_CONSTRAINTS
  • ALL_DB_LINKS
  • ALL_EXTERNAL_TABLES
  • ALL_IND_COLUMNS
  • ALL_INDEXES
  • ALL_LOG_GROUPS
  • ALL_MVIEWS
  • ALL_OBJECTS
  • ALL_PART_TABLES
  • ALL_SEQUENCES
  • ALL_SOURCE
  • ALL_SYNONYMS
  • ALL_TAB_COLS
  • ALL_TAB_COLUMNS
  • ALL_TAB_COMMENTS
  • ALL_TABLES
  • ALL_TRIGGERS
  • ALL_TRIGGER_COLS
  • ALL_TYPES
  • ALL_USERS
  • ALL_VIEWS
  • DATABASE_PROPERTIES
  • DBA_ROLE_PRIVS
  • DUAL
  • PRODUCT_COMPONENT_VERSION
  • ROLE_SYS_PRIVS
  • USER_ROLE_PRIVS
  • USER_TAB_PRIVS

Para transmitir cambios con Datastream, también necesitas acceso de lectura a todas las tablas incluidas en el flujo.

Para iniciar la transmisión, omite la validación con la API. Para obtener más información, consulta Cómo iniciar una transmisión.

¿Datastream admite la replicación desde instancias de réplica de lectura de Oracle? Datastream admite la replicación desde instancias de réplica de lectura de Oracle siempre que la instancia esté configurada según los lineamientos de configuración.
¿Datastream admite bases de datos de Oracle SCAN RAC? Sí. Sin embargo, no puedes establecer una conectividad directa a las bases de datos con la función de nombre de acceso de cliente único (SCAN) en entornos de clústeres de aplicaciones reales (RAC) de Oracle con Datastream. Para superar esta limitación, conéctate directamente a uno de los nodos o usa Oracle Connection Manager. También puedes crear una configuración de conectividad privada con soluciones de proxy inverso, como CMEK.

Comportamiento y limitaciones de la fuente de PostgreSQL

Pregunta Respuesta
¿Cómo obtiene Datastream datos de PostgreSQL? Datastream usa la función de decodificación lógica de PostgreSQL para extraer los eventos de cambio de PostgreSQL.
¿Datastream admite la replicación desde fuentes de AlloyDB para PostgreSQL o AlloyDB Omni? Sí. Datastream admite ambas fuentes. Para obtener información sobre la configuración de la base de datos de origen de AlloyDB para PostgreSQL, consulta Configura una base de datos de AlloyDB para PostgreSQL. Para obtener información sobre la configuración de tu base de datos de origen de AlloyDB Omni, consulta Configura una base de datos de PostgreSQL autoadministrada.
¿Datastream admite la replicación desde una instancia de réplica de lectura de PostgreSQL? Las instancias de réplica de lectura no pueden actuar como publicadores para la replicación lógica porque PostgreSQL no admite la decodificación lógica en las réplicas de lectura.
¿Datastream admite seguridad a nivel de fila (RLS)? Datastream no admite la replicación de tablas con RLS habilitado. Sin embargo, puedes omitir esta limitación con la cláusula BYPASSRLS:
ALTER USER USER_NAME BYPASSRLS;

Reemplaza USER_NAME por el nombre del usuario que Datastream usa para conectarse a la base de datos y para el que deseas omitir las políticas de RLS.

¿Datastream admite operaciones de CDC simultáneas cuando se replica desde una fuente de PostgreSQL? No. La replicación de PostgreSQL se basa en el concepto de ranuras de replicación, y las ranuras de replicación no admiten conexiones simultáneas. Solo puede haber una lectura de tarea de CDC en la ranura de replicación a la vez. Por ejemplo, si borras una gran cantidad de registros de la base de datos de origen, la ranura de replicación podría sobrecargarse con eventos de eliminación. Cualquier cambio posterior en la fuente se retrasa hasta que se procesan los eventos de eliminación que ya están en la cola de ranuras de replicación.
¿Datastream admite la encriptación de capa de conexión segura (SSL) y seguridad de la capa de transporte (TLS)?

Datastream admite conexiones encriptadas con SSL/TLS que no requieren certificados de cliente.

Comportamiento y limitaciones de la fuente de SQL Server

Pregunta Respuesta
¿Qué ediciones de SQL Server admite Datastream? Datastream admite las versiones de bases de datos de SQL Server que admiten la captura de datos modificados. Para obtener una lista completa de las versiones y ediciones compatibles de SQL Server, consulta Versiones.
¿Cómo funciona la replicación de CDC de Datastream para las fuentes de SQL Server? El proceso de transferencia de datos de Datastream utiliza registros de transacciones, a diferencia de las tablas basadas en los CDC de Microsoft. Este enfoque reduce la carga en la base de datos, a la vez que mantiene una recuperación rápida de los datos.
¿Qué permisos como mínimo necesita Datastream para replicar datos de una base de datos de origen de SQL Server?

Debes otorgar los siguientes roles y permisos al usuario de Datastream para replicar los datos de una base de datos de MySQL:

  • Los permisos SELECT en la base de datos, sys.fn_dblog y sys.fn_dump_dblog
  • VIEW DATABASE STATE
  • VIEW SERVER STATE
  • El usuario debe ser miembro del rol fijo de base de datos db_owner. Para obtener información sobre cómo agregar un usuario al rol, consulta las páginas de configuración de tu tipo de base de datos fuente de SQL Server.
¿Por qué necesitas ajustes, como cambiar los intervalos de sondeo y establecer una protección de truncamiento cuando configuras la fuente de SQL Server? Cuando replicas datos de una fuente de SQL Server, Datastream rastrea los cambios de DML mediante registros de transacciones. Si se trunca un registro antes de que Datastream lo lea, se pierden los datos. Cambiar los intervalos de sondeo y configurar la protección de truncamiento es opcional, pero proporciona una capa adicional de protección para garantizar que Datastream pueda leer los datos incluso en situaciones en las que ocurren problemas de conectividad o tiempo de inactividad. Para obtener más información, consulta Configura una base de datos de origen de SQL Server.

Comportamiento de destino de BigQuery

Pregunta Respuesta
¿Cómo funcionan Datastream y BigQuery en conjunto para replicar los cambios de la base de datos de origen? Datastream lee de manera continua el flujo de cambios desde la base de datos de origen y transmite los eventos de inserción y eliminación a las tablas de destino de BigQuery con la API de Storage Write. Luego, BigQuery aplica los cambios a la tabla según la configuración de inactividad de la tabla.
¿Cómo se aplican las operaciones UPDATE y DELETE en BigQuery? Cuando Datastream crea una tabla en BigQuery, configura las claves primarias en la tabla según las claves primarias definidas en la fuente. BigQuery procesa los eventos y aplica cambios a la tabla de BigQuery subyacente según las claves primarias de la tabla.
¿Cómo manejan Datastream y BigQuery las tablas que no tienen una clave primaria? Si la tabla de origen no tiene una clave primaria, las tablas se tratan como de solo agregar y cada evento de una fila determinada aparece como una fila separada en BigQuery.
¿Cómo manejan Datastream y BigQuery el orden de los eventos? BigQuery usa los metadatos del evento y un número de secuencia de cambio interno (CSN) para aplicar los eventos a la tabla en el orden correcto. Para obtener más información sobre los metadatos de eventos, consulta Eventos y transmisiones.
¿Cómo se calculan los costos de BigQuery cuando se usa con Datastream? Los costos de BigQuery se calculan y se cobran por separado de Datastream. Para obtener información sobre cómo controlar los costos de BigQuery, consulta los precios de los CDC de BigQuery.
¿Cuál es el tamaño máximo de fila que admite Datastream cuando transmite datos a BigQuery? El tamaño máximo de fila que admite Datastream es de 20 MB.
Cuando transmites a BigQuery, las tablas tienen el prefijo _. ¿Puedes cambiar este comportamiento para que las tablas de BigQuery sigan la misma estructura que tienen en la base de datos de origen? Cuando configuras conjuntos de datos para un destino de BigQuery, creas un conjunto de datos para cada esquema o un conjunto de datos único para todos los esquemas. Cuando creas un conjunto de datos para cada esquema, cada esquema del origen se asigna a un conjunto de datos en BigQuery, y todas las tablas del esquema de origen se asignan a las tablas del conjunto de datos. Cuando seleccionas la opción de conjunto de datos único para todos los esquemas, los nombres de las tablas tienen el prefijo _, según la convención de nombres de tablas en BigQuery.
¿La CDC puede capturar cambios en el esquema de origen, por ejemplo, cuando se inserta o borra una columna en la fuente? ¿Estos cambios se reflejan automáticamente en las tablas ya propagadas en los conjuntos de datos de BigQuery de destino? Datastream detecta columnas nuevas automáticamente y las agrega al esquema de destino para las filas nuevas, pero no las que ya están replicadas en el destino. Las columnas borradas se ignoran, y Datastream las propaga con valores NULL en el destino. Luego, puedes borrar estas columnas de forma manual en BigQuery.

Comportamiento del destino de Cloud Storage

Pregunta Respuesta
¿Cómo se crean los archivos en Cloud Storage? Datastream crea una carpeta para cada tabla. En cada carpeta, Datastream rota el archivo (o crea uno nuevo) cada vez que alcanza el umbral de tamaño o tiempo definido por el usuario. Datastream también rota el archivo cada vez que se detecta un cambio de esquema. El nombre de archivo estará compuesto por una clave de esquema única (basada en un hash del esquema), seguida de la marca de tiempo del primer evento en el archivo. Por motivos de seguridad, estos nombres de archivo no deben ser legibles ni entenderse para las personas.
Si los datos en Cloud Storage no están ordenados, ¿cómo se pueden reordenar los eventos antes de cargarlos en el destino?

Cada evento contiene varios campos de metadatos que identifican de manera única la fila en los archivos de registro y te permiten ordenar los eventos. Estos campos incluyen lo siguiente:

Para las fuentes de Oracle:

  • rs_id (ID del conjunto de registros), que, en realidad, está compuesto por tres valores (por ejemplo, 0x0073c9.000a4e4c.01d0). El rs_id identifica de forma única el registro dentro del registro de rehacer.
  • ssn (número de secuencia de SQL), que se usa cuando el registro en el registro de rehacer es demasiado largo. Debido a esto, Oracle LogMiner divide el registro en varias filas.

Para las fuentes de MySQL:

  • log_file, desde el cual Datastream extrae eventos en la replicación de CDC
  • log_position, que identifica el desplazamiento del registro en el registro binario de MySQL.

Para las fuentes de PostgreSQL:

  • source_timestamp, que es la marca de tiempo cuando el registro cambió en la fuente Si los valores de source_timestamp de los eventos que ordenas son idénticos, compara los valores de lsn.
  • lsn (número de secuencia de registro), que identifica el desplazamiento del registro en el archivo de registro del WAL.

Para obtener más información sobre los campos de metadatos, consulta Metadatos específicos de la fuente.

Si se crean varios archivos para la misma marca de tiempo, ¿en qué orden se deben procesar? Debido a que no se garantiza el orden dentro de los archivos y entre ellos, la mejor manera de determinar el orden en el que se procesarán los archivos para la fuente es obtener todos los eventos de todos los archivos para la marca de tiempo específica y, luego, aplicar el orden mediante el método mencionado anteriormente en esta sección.
¿Cómo se manejan las actualizaciones de clave primaria? ¿Hay información sobre el antes y el después del evento? Cuando cambia la clave primaria de una fila, Datastream genera dos eventos para el cambio: UPDATE-DELETE y UPDATE-INSERT. El evento UPDATE-DELETE representa los datos antes de la actualización y UPDATE-INSERT representa los datos después de esta. Para obtener más información sobre los metadatos específicos de la fuente, consulta Eventos y transmisiones.
¿Cuál es el tamaño máximo de fila que admite Datastream cuando transmite datos a Cloud Storage? El tamaño máximo de fila que admite Datastream es de 30 MB.

Casos de uso

Pregunta Respuesta
¿Cuáles son algunos casos de uso comunes de Datastream?

Datastream es un servicio de replicación y de CDC, lo que significa que es flexible en varios casos prácticos que pueden beneficiarse del acceso a datos de cambios en transmisión continua. Los casos de uso más comunes de Datastream son los siguientes:

  1. Análisis: Cuando los clientes replican los datos directamente en BigQuery, pueden acceder a datos operativos actualizados en BigQuery. Los clientes pueden usar estos datos que se actualizan continuamente en BigQuery para crear paneles actualizados sobre sus datos. Esto se puede usar, por ejemplo, para supervisar sistemas y obtener estadísticas actualizadas sobre el estado de su negocio.
  2. Situaciones de replicación y sincronización de bases de datos: Mediante la integración de Datastream con plantillas de Dataflow para cargar datos en Cloud SQL o Spanner, puedes obtener una replicación actualizada de tus datos de origen en estas bases de datos. Puedes usar estos datos actualizados de forma continua en las bases de datos de destino para una migración de base de datos con tiempo de inactividad bajo desde el origen hasta el destino, o para configuraciones de nube híbrida, en las que el origen y el destino residen en diferentes entornos de hosting.
  3. Arquitecturas controladas por eventos: Las arquitecturas modernas basadas en microservicios dependen de los concentradores de datos centrales que se actualizan con eventos continuamente de toda la organización para que sean controlados por eventos. A través de la escritura continua de datos de eventos en destinos como BigQuery y Cloud Storage, puedes crear arquitecturas controladas por eventos basadas en el consumo de datos de eventos de estos destinos.

Integraciones

Pregunta Respuesta
¿Cómo se integra Datastream en los servicios de datos de Google Cloud?

Datastream complementa y mejora el paquete de datos de Google Cloud, ya que proporciona replicación de datos de CDC de distintas fuentes para varios servicios de Google Cloud. Debido a que se integra a la perfección en estos servicios, Datastream se adapta al ecosistema más amplio de Google Cloud.

Datastream se integra en los siguientes servicios de datos:

  • BigQuery: Datastream usa la API de BigQuery Write para integrarse directamente a BigQuery. Datastream escribe los eventos de cambio directamente en el conjunto de datos de BigQuery, donde los cambios se combinan de forma continua (UPSERT) con los datos existentes.
  • Dataflow: Datastream se integra en Dataflow mediante plantillas de Dataflow. Estas plantillas leen datos de Cloud Storage y los cargan en BigQuery, Cloud SQL para PostgreSQL o Spanner. El propósito de estas plantillas es mantener tablas fuente replicadas actualizadas en los destinos. Las plantillas están disponibles en la IU de Dataflow y se crearon para archivos generados por Datastream a fin de lograr un procesamiento listo para usar.
  • Cloud Data Fusion: Datastream se integra en Cloud Data Fusion mediante la alimentación de un conector de Oracle a través de la función de replicación de Cloud Data Fusion. Puedes crear una fuente de replicación de Oracle a la que Datastream "potencia" de forma interna y transparente para compilar una canalización de datos con facilidad. Esta canalización incluye transformaciones enriquecidas para los datos de Oracle que Datastream transmite a Cloud Data Fusion.
  • Cloud Storage: Datastream se integra en Cloud Storage y escribe en él como un destino de transmisión de cambios.
  • Cloud SQL y Spanner: Con las plantillas de Datastream y Dataflow, puedes mantener tablas replicadas actualizadas en las bases de datos.
¿La plantilla de Datastream a BigQuery en Dataflow tiene alguna limitación para la cantidad de operaciones de lenguaje de manipulación de datos (DML)? No. La plantilla usa la API de inserción de transmisión para cargar datos en BigQuery. Como resultado, no hay límite para la cantidad de operaciones DML. Sin embargo, se aplican algunas limitaciones de cuota.

Seguridad y conectividad

Pregunta Respuesta
¿Datastream es un servicio seguro para los datos sensibles? Datastream admite múltiples parámetros de configuración de conectividad privada y segura para proteger los datos en tránsito mientras se transmiten de un origen a un destino. Después de que los datos se replican, se encriptan de forma predeterminada y se aprovechan los controles de seguridad de BigQuery o Cloud Storage. Todos los datos almacenados en el búfer de Datastream se encriptan en reposo.
¿Qué opciones de conectividad están disponibles para conectar tus fuentes a Datastream?

Hay tres tipos de métodos de conectividad que puedes configurar:

  • Lista de IP permitidas: Este método te proporciona conectividad pública mediante la inclusión de las direcciones IP regionales de Datastream en la lista de entidades permitidas de la fuente. Cuando creas tu transmisión, Datastream muestra estas direcciones IP en la IU.
  • Túnel SSH de reenvío: Este método proporciona conectividad segura a través de redes públicas, ya que aprovecha un bastión SSH configurado por el cliente, además de incluir direcciones IP regionales en la lista de IP permitidas.
  • Conectividad privada a través del intercambio de tráfico de VPC: Usa este método para conectarte a tus bases de datos alojadas en Google Cloud a través de la red interna de Google Cloud, o bien aprovecha una VPN o interconexión existente estableciendo el intercambio de tráfico de VPC entre la red privada de Datastream y la VPC de Google Cloud de tu organización.
¿Cómo puedo limitar el procesamiento de datos sensibles de Datastream?

Datastream permite especificar qué elementos de datos específicos (esquemas, tablas y columnas) de tu fuente deseas transmitir a un destino, y qué elementos deseas excluir de la transmisión.

Los registros de la base de datos pueden contener datos de cambios de elementos que se excluyeron en tu definición de transmisión. Debido a que no puedes filtrar estos elementos en la fuente, Datastream leerá, pero ignorará, los datos asociados con los elementos.

¿Cómo mantiene Datastream la seguridad de las credenciales de la base de datos? Todos los metadatos del usuario (incluidos el nombre de usuario y la contraseña utilizados para acceder a las fuentes de datos) se encriptan en tránsito y en reposo, y Google los almacena en sus sistemas de almacenamiento patentados. Se realiza un seguimiento y se auditan el acceso a estos metadatos.
¿Por qué en la página Crea una configuración de conectividad privada se indica que debes otorgar el rol roles/compute.networkAdmin a la cuenta de servicio de Datastream para crear una configuración de conectividad privada en una VPC compartida? La función networkAdmin solo se requiere para crear el intercambio de tráfico entre VPC. Una vez establecido el intercambio de tráfico, ya no necesitarás el rol. Si tu organización no permite que se otorgue el rol networkAdmin a la cuenta de servicio de Datastream, crea un rol personalizado con los siguientes permisos específicos:

Cómo seleccionar rangos de IP de forma dinámica

  • compute.routes.get
  • compute.routes.list
  • compute.subnetworks.get
  • compute.subnetworks.list

Crea redes con intercambio de tráfico

  • compute.globalOperations.get
  • compute.networks.addPeering
  • compute.networks.removePeering
  • compute.networks.get

Reserva direcciones IP

  • compute.globalAddresses.get
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.delete
  • compute.globalAddresses.deleteInternal
  • compute.networks.use
  • compute.networks.listPeeringRoutes
¿Puedo usar Private Service Connect para crear una configuración de conectividad privada? No, Datastream no es compatible con Private Service Connect.

Supervisa Datastream

Pregunta Respuesta
¿Cómo puedo saber cuándo se copiaron todos mis datos históricos en el destino? Datastream proporciona información sobre su estado actual en los archivos de registro. Se crea una entrada de registro para indicar cuándo se terminó de reabastecer una tabla.
En ocasiones, la latencia aumenta y, luego, disminuye de forma gradual con el tiempo. ¿Es esperable? Datastream escala verticalmente de forma automática cuando aumenta la capacidad de procesamiento de eventos que genera la fuente. Sin embargo, para proteger tanto la base de datos de origen como la Datastream, existen límites sobre la cantidad de conexiones y procesos simultáneos que Datastream puede abrir en cualquier momento. Se esperan aumentos repentinos de latencia temporales cuando hay un aumento significativo en la capacidad de procesamiento de los eventos, y se espera que disminuyan de forma gradual a medida que se procesa la acumulación de eventos.

Precios

Pregunta Respuesta
¿Cuáles son los precios de Datastream?

Datastream se cobra según el volumen (GB) de datos que se transmite desde tu origen hacia un destino.

Para obtener más información sobre los precios de Datastream, consulta Precios.

¿Cómo se calcula el tamaño de los datos? La facturación se calcula en función del tamaño de los datos sin procesar (sin comprimir) que se transmiten del origen al destino. Datastream solo cobra por los datos que se transmiten al destino.
Si usas Datastream con BigQuery, Dataflow o Cloud Data Fusion, ¿qué debes pagar? Cada servicio tiene un precio y se cobra por separado.

Información adicional

Pregunta Respuesta
¿Qué sucede si tengo más preguntas o problemas con el uso de Datastream? El equipo de asistencia al cliente de Google puede brindarte asistencia si tienes problemas para usar Datastream. Además, en la guía de solución de problemas se abordan problemas habituales que pueden surgir mientras usas Datastream.