Preguntas frecuentes

Descripción general

En esta página, encontrarás respuestas a preguntas frecuentes sobre el uso de Datastream. Estas preguntas frecuentes están relacionadas con lo siguiente:

  • 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 del destino de BigQuery
  • Comportamiento del destino de Cloud Storage
  • Casos de uso comunes de Datastream
  • Cómo se integra Datastream a 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 la 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 las empresas modernas necesitan. 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 lograr una 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 en bases de datos y aplicaciones heterogéneas con confianza y mínima latencia. El servicio te ofrece una integración optimizada en plantillas de Dataflow para replicar bases de datos en Cloud SQL o Spanner para sincronizar bases de datos. También puedes aprovechar la transmisión de eventos directamente desde Cloud Storage para crear arquitecturas controladas por eventos. Además, Datastream 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 una fuente a un destino mediante 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 con menos recursos del sistema. Es un método para extraer solo los cambios más recientes (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 datos nuevos en almacenes de datos operativos y almacenes de datos. Además, elimina la necesidad de actualizar la carga masiva y las ventanas por lotes incómodas, ya que habilita la carga incremental o la transmisión casi en tiempo real de los cambios de datos en un destino de datos.

Las CDC se pueden usar en muchos casos de uso que derivan valor del acceso constante a los cambios en los datos a medida que ocurren, como el análisis, la sincronización de datos en sistemas distribuidos geográficamente y las arquitecturas controladas por 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 predeterminado de reabastecimiento para las tablas. Durante el reabastecimiento incremental, Datastream recupera datos de rangos de filas en varios lotes y los transmite a un destino por lotes.
  • Volcado completo: Durante el reabastecimiento de volcado completo, Datastream extrae todos los datos a la vez y los transmite a un destino.
¿Existen limitaciones que debas considerar cuando realices un reabastecimiento?

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

¿Cuál es el orden recomendado para las operaciones de CDC y reabastecimiento? En la mayoría de los casos, no se requiere una consideración especial. Cuando el reabastecimiento está habilitado 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 primero los datos en BigQuery antes de iniciar la transmisión.
¿Puedo supervisar el estado de las operaciones de CDC y reabastecimiento?

Puedes supervisar el estado de reabastecimiento por objeto:

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

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

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

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

Un flujo de cambios es una secuencia de eventos que Datastream emite a un destino para fines de consumo descendente. El resultado de un flujo de cambios que se escribe 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 las inserciones, actualizaciones y eliminaciones en esa tabla, y los servicios como Dataflow pueden consumir y procesar los eventos en sentido descendente en Cloud Storage para casos de uso como 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 en 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 transmitidos 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 del flujo de cambios de Cloud Storage y actualizan las tablas de destino según corresponda.

¿Datastream requiere un agente en la fuente? No es necesario instalar un agente en la fuente. Datastream usa interfaces existentes (como Oracle LogMiner) para obtener los datos del origen.
¿Cuántas tablas puedo incluir en un solo flujo? Datastream puede manejar hasta 10,000 tablas en una sola transmisión. No hay una razón técnica para dividir una base de datos en varias transmisiones. Puede haber algunas consideraciones comerciales para usar diferentes transmisiones para distintos flujos lógicos, pero cada transmisión agrega carga a la base de datos de origen. Esa carga es insignificante para los 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 las ventanas por lotes incómodas, ya que permite la carga incremental o la transmisión casi en tiempo real de los cambios de datos en un destino.

Además, Datastream minimiza el impacto de un reabastecimiento inicial, ya que limita la cantidad de tareas de reabastecimiento simultáneas y le 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 la 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 la base de datos de tu fuente. Además, cuando configures la transmisión, puedes inhabilitar el reabastecimiento histórico.
¿Datastream garantiza que la entrega se realice 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 controlar 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 para 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 de las tablas para definir aún mejor los datos que quieres 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 un flujo en una región o proyecto nuevo con la misma configuración que el flujo 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 manera opcional, modifica el flujo nuevo seleccionando la casilla de verificación Reabastecer datos históricos. Los datos existentes en las tablas que se agreguen a la transmisión en el futuro se transmitirán del origen al 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 se revierte alguna transacción, la base de datos lo refleja en los archivos de registro como operaciones de lenguaje de manipulación de datos (DML) “revertidas”. 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 la transmisión de datos 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 controlar bases de datos encriptadas? Sí.
¿Cómo extrae Datastream los datos de las fuentes?

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

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

En el caso de 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 consumir y procesar estos cambios.

En SQL Server, Datastream realiza un seguimiento de los cambios del lenguaje de manipulación de datos (DML) mediante registros de transacciones.

¿Se pueden copiar archivos de registro directamente de una fuente a Google Cloud? Datastream no copia todos 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?

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

Las limitaciones generales incluyen lo siguiente:

  • 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 límite de tamaño de fila de 10 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 desde el medio de una tabla. Esto puede causar una discrepancia en los datos porque los valores están asociados a la columna equivocada.
    • Cambiar el tipo de datos de una columna. Esto puede causar una discrepancia en los datos porque los datos no están asignados correctamente al tipo unificado de Datastream correcto y los datos pueden dañarse.
    • 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 cada evento 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 tasa y la frecuencia de los cambios, y otros parámetros, la coherencia eventual suele lograrse en un período de 1 hora.
¿Datastream garantiza que la entrega se realice exactamente una vez? Datastream se entrega al menos una vez. Puedes eliminar los datos duplicados mediante el uso de metadatos adicionales que Datastream escribe en cada evento.
¿Cómo representa Datastream los tipos de datos de la fuente para su uso en el procesamiento posterior?

Cuando se escribe en un destino sin esquemas, 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 (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 ellos, lo que garantiza que todos los datos se transmitan y carguen al destino de forma correcta. Sin embargo, entre las recuperaciones de esquemas, es posible que algunos cambios en el esquema no se detecten, lo que podría causar discrepancias en los datos.
Eliminé (quité) una columna en mi base de datos de origen, pero aún aparece en mi destino. ¿Por qué? Datastream no borra columnas en el destino. Debes borrar las columnas de forma manual. Este comportamiento es intencional, ya que, 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. No querrás perder la columna original en el destino en este caso.
No se puede iniciar la transmisión debido a un error de validación, pero creo que se trata de un error o quiero intentar ejecutarla de todos modos. ¿Cómo puedo superar esta validación? Para iniciar la transmisión con la API, 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 y aún puede fallar si a la base de datos le faltan la configuración o los permisos necesarios.
¿Puedo reiniciar una transmisión con errores?

Puedes corregir los errores que informa Datastream para corregir una transmisión con el estado Failed. 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 Recupera una transmisión.

¿Datastream bloquea las tablas de la base de datos?

No. Datastream no necesita bloquear las tablas.

Las páginas de limitación de cada fuente especifican que las transmisiones pueden tener hasta 10,000 tablas. ¿Esto 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 que se menciona es por transmisión. Puedes tener varias transmisiones, y la cantidad total de tablas supera 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 para 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 MySQL de origen?

Debes otorgar los siguientes permisos a tu usuario de Datastream para replicar 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. ¿Se puede seguir usando Datastream?

Puedes otorgar el permiso SELECT a las tablas específicas que deseas replicar o a todo el esquema 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 quieres 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 redo 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 redo de la base de datos.
¿Qué sucederá cuando ya no se admita Oracle LogMiner? Oracle LogMiner aún es compatible con todas las versiones de Oracle disponibles a nivel general, y Datastream seguirá admitiendo a LogMiner en todas las versiones futuras. Oracle dejó de admitir la opción CONTINUOUS_MINE de LogMiner. Sin embargo, Datastream no usa esta opción, por lo que esta baja no tiene impacto en 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 según Oracle Net Services. Datastream se ejecuta en modo REQUESTED.

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

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

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

Si no puedes otorgar el permiso GRANT SELECT ANY TABLE, puedes otorgar los 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 la transmisión.

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 y cuando la instancia se configure de acuerdo con los lineamientos de configuración.
¿Datastream admite bases de datos 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 (Single Client Access Name, SCAN) en entornos de Oracle Real Application Clusters (RAC) que usan Datastream. Para superar esta limitación, conéctate directamente a uno de los nodos o usa el Administrador de conexiones de Oracle. También puedes crear una configuración de conectividad privada con soluciones de proxy inverso, como Aspera.

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 de fuentes de AlloyDB para PostgreSQL o AlloyDB Omni? Sí. Datastream admite ambas fuentes. Si deseas obtener información sobre cómo configurar la base de datos de origen de AlloyDB para PostgreSQL, consulta Cómo configurar una base de datos de AlloyDB para PostgreSQL. Para obtener información sobre cómo configurar tu base de datos fuente de AlloyDB Omni, consulta Cómo configurar 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 de la replicación lógica porque PostgreSQL no admite la decodificación lógica en las réplicas de lectura.
¿Datastream admite la seguridad a nivel de fila (RLS)? Datastream no admite la replicación de tablas con RLS habilitado. Sin embargo, puedes omitir esta limitación mediante 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 estas ranuras no admiten conexiones simultáneas. Solo puede haber una tarea de CDC que se lea de 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. Los cambios posteriores en la fuente se retrasan 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 la capa de conexión segura (SSL) y la 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 son compatibles con Datastream? Datastream admite versiones de base 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 usa registros de transacciones, a diferencia de las tablas basadas en CDC de Microsoft. Este enfoque reduce la carga en la base de datos y, al mismo tiempo, 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 a tu usuario de Datastream para replicar datos de una base de datos de MySQL:

  • 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 de base de datos fija db_owner. Para obtener información sobre cómo agregar un usuario al rol, consulta las páginas de configuración para tu tipo de base de datos de origen de SQL Server.
¿Por qué necesitas opciones de configuración, como cambiar los intervalos de sondeo y establecer una protección contra el truncamiento cuando configuras la fuente de SQL Server? Cuando replicas datos de una fuente de SQL Server, Datastream realiza un seguimiento de los cambios de DML mediante registros de transacciones. Si se trunca un registro antes de que Datastream lo lea, se producen pérdidas de 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 se producen problemas de tiempo de inactividad o conectividad. Para obtener más información, consulta Configura una base de datos de origen de SQL Server.

Comportamiento del destino de BigQuery

Pregunta Respuesta
¿Cómo funcionan en conjunto Datastream y BigQuery para replicar los cambios de la base de datos de origen? Datastream lee de forma continua el flujo de cambios de 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, establece 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 solo para 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 cobran por separado de Datastream. Si quieres aprender a controlar los costos de BigQuery, consulta los precios de CDC de BigQuery.
¿Cuál es el tamaño máximo de fila que admite Datastream cuando se transmiten datos a BigQuery? El tamaño máximo de la 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 en BigQuery sigan la misma estructura que 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 un único conjunto de datos 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 del esquema de origen, por ejemplo, cuando se inserta o se borra una columna en la fuente? ¿Estos cambios se reflejan automáticamente en las tablas ya propagadas en los conjuntos de datos de destino de BigQuery? Datastream detecta automáticamente las columnas nuevas y las agrega al esquema de destino para las filas nuevas, pero no de 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 tendrá 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 leídos ni interpretados por 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 inequívoca la fila en los archivos de registro y te permiten ordenar los eventos. Estos campos incluyen lo siguiente:

Para 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 rehacer.
  • ssn (número de secuencia de SQL), que se usa cuando el registro del registro para rehacer es demasiado largo. Debido a esto, Oracle LogMiner divide el registro en varias filas.

Para fuentes de MySQL:

  • log_file, de la 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 fuentes de PostgreSQL:

  • source_timestamp, que es la marca de tiempo del momento en que cambió el registro en la fuente Si los valores de source_timestamp de los eventos que estás ordenando 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 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 de procesamiento de 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 usando 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: una UPDATE-DELETE y una 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 se transmiten datos a Cloud Storage? El tamaño máximo de la 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. Analytics: Cuando se replican directamente los datos en BigQuery, los clientes pueden acceder a los datos operativos actualizados en la plataforma. Los clientes pueden usar estos datos que se actualizan continuamente en BigQuery para crear paneles actualizados sobre sus datos. Esta información se puede usar, por ejemplo, para supervisar sistemas y obtener estadísticas actualizadas sobre el estado de su empresa.
  2. Situaciones de replicación y sincronización de bases de datos: Si integras Datastream a 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. Si escribes datos de eventos de forma continua en destinos como BigQuery y Cloud Storage, puedes crear arquitecturas controladas por eventos que se basen en el consumo de datos de eventos de estos destinos.

Integraciones

Pregunta Respuesta
¿Cómo se integra Datastream a 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 fuentes a varios servicios de Google Cloud. Mediante la integración continua con 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, en el que los cambios se combinan continuamente (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 las tablas fuente replicadas actualizadas en los destinos. Las plantillas están disponibles en la IU de Dataflow y se crearon para los archivos generados por Datastream a fin de realizar procesamientos listos para usar.
  • Cloud Data Fusion: Datastream se integra en Cloud Data Fusion mediante la tecnología 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 que Datastream “alimente” de forma interna con transparencia para compilar una canalización de datos con facilidad. Esta canalización incluye transformaciones enriquecidas de 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 Datastream-to-BigQuery en Dataflow tiene alguna limitación en cuanto a la cantidad de operaciones de lenguaje de manipulación de datos (DML)? No. La plantilla usa la API de inserciones 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 datos sensibles? Datastream admite varias opciones 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 replicar los datos, se encriptan de forma predeterminada y se aprovechan los controles de seguridad de BigQuery o Cloud Storage. Todos los datos que almacene en búfer Datastream se encriptan en reposo.
¿Qué opciones de conectividad están disponibles para conectar tus fuentes a Datastream?

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

  • Lista de IP permitidas: Este método te proporciona conectividad pública, ya que incluye en la lista de entidades permitidas las direcciones IP regionales de Datastream en 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 mediante 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 aprovecha una VPN o interconexión existentes si estableces 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 origen quieres transmitir a un destino y qué elementos quieres 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 que se utilizan para acceder a las fuentes de datos) se encriptan en tránsito y en reposo. Se realiza un seguimiento del acceso a estos metadatos y se audita.
¿Por qué la página Crea una configuración de conectividad privada 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? El rol networkAdmin solo es necesario para crear el intercambio de tráfico entre VPC. Una vez establecido el intercambio de tráfico, ya no necesitas la función. Si tu organización no permite otorgar el rol networkAdmin a la cuenta de servicio de Datastream, crea un rol personalizado con los siguientes permisos específicos:

Selecciona 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 admite 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 termina el reabastecimiento de una tabla.
En ocasiones, la latencia aumenta y, luego, disminuye gradualmente con el tiempo. ¿Es normal? 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 Datastream, existen límites sobre la cantidad de conexiones y procesos simultáneos que Datastream puede abrir en cualquier momento. Se esperan aumentos repentinos temporales en la latencia cuando hay un aumento significativo en la capacidad de procesamiento de eventos y se espera que disminuyan gradualmente 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 la información de 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é es lo que pagas? 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 con el uso de Datastream. Además, en la guía de solución de problemas, se abordan problemas habituales que puedes encontrar cuando usas Datastream.