Preguntas frecuentes

Descripción general

En esta página, encontrarás respuestas a las preguntas frecuentes (FAQ) sobre el uso de Datastream. Esta pregunta frecuente está asociada 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 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 la replicación sin interrupciones de datos de fuentes de bases de datos relacionales, como AlloyDB para PostgreSQL, PostgreSQL, MySQL, SQL Server y Oracle, directamente en BigQuery. Datastream ofrece la escalabilidad, la velocidad, la seguridad y la simplicidad que necesitan las empresas modernas. Con una arquitectura sin servidores y de escalamiento automático, Datastream te permite configurar fácilmente una canalización ELT (es decir, de extracción, carga y transformación) para la replicación de datos de baja latencia con el objetivo de 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 con 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 basadas en eventos.

¿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 datos nuevos en almacenes de datos y repositorios de datos operativos, y elimina la necesidad de actualizar cargas masivas y ventanas de lotes inconvenientes, ya que habilita la carga incremental o la transmisión en tiempo real de los cambios de datos a 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 continuos, 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 varios lotes y los transmite a un 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 respectivos tipos de fuentes:

¿Cuál es el orden recomendado para las operaciones de CDC y reabastecimiento? En la mayoría de los casos, no hay consideraciones especiales. Cuando el reabastecimiento está habilitado en un flujo, Datastream realiza el reabastecimiento y el 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.

Hay métricas adicionales a nivel del objeto 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?

Una transmisión de cambios es una secuencia de eventos que Datastream emite a un destino para el consumo descendente. El resultado de una transmisión 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 inserciones, actualizaciones y eliminaciones en esa tabla, y los servicios como Dataflow para casos de uso como arquitecturas basadas en eventos pueden consumir y procesar los eventos en una etapa posterior a Cloud Storage.

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 las transmisiones de cambios porque 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 instalar un agente en la fuente. Datastream usa interfaces existentes (como Oracle LogMiner) para extraer 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 motivos técnicos para dividir una base de datos en varias transmisiones, aunque puede haber algunas consideraciones comerciales para usar diferentes transmisiones para diferentes flujos lógicos, por ejemplo, cuando se replican transacciones grandes de fuentes de PostgreSQL. Sin embargo, cada transmisión agrega carga a la base de datos de origen. Esa carga es insignificante para el 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 casi en tiempo real de los cambios de datos en un destino.

Además, Datastream minimiza el impacto de un reabastecimiento inicial limitando la cantidad de tareas de reabastecimiento simultáneas y ofreciéndote 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 con el flujo 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 tu transmisión, puedes 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 para tablas y esquemas para transmitir solo los datos que deseas de una fuente a un destino. En el caso de las tablas incluidas, puedes excluir columnas específicas para definir con mayor precisión qué datos 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 un proyecto nuevos 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 manera opcional, modifica la transmisión nueva seleccionando la casilla de verificación Reabastecer datos históricos. Los datos existentes en las tablas que se agreguen al flujo en el futuro se transmitirán desde la fuente al destino.
¿Cómo maneja Datastream las transacciones sin confirmar 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 “revertir” lenguaje de manipulación de datos (DML). 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 desde 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 de 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 realiza un seguimiento de los cambios en el lenguaje de manipulación de datos (DML) mediante registros de transacciones.

¿Puedes 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?

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

Entre las limitaciones generales, se incluyen las siguientes:

  • Tamaño del evento: Límite máximo de 100 MB de tamaño de fila para el destino de Cloud Storage y 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:
    • Quitar 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 de datos porque no se asignan correctamente al tipo unificado de Datastream correcto y 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 velocidad y la frecuencia de los cambios, y otros parámetros, la coherencia eventual se puede lograr, por lo general, en un período de 1 hora.
¿Datastream garantiza la entrega exactamente una vez? Datastream es una entrega al menos una vez. Puedes eliminar los datos duplicados con los 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 las fuentes, ya que normaliza los tipos de datos en todas ellas. 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 correctamente en el destino. 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, quizás 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.
La transmisión no se inicia debido a un error de validación, pero creo que es un error o quiero intentar ejecutar la transmisión 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 se pueda ejecutar y que aún puede fallar si a la base de datos le faltan la configuración o los permisos necesarios.
¿Puedo reiniciar una transmisión que falló?

Para corregir un flujo con el estado Failed, aborda los errores que informa Datastream. Para obtener más información, consulta Cómo solucionar problemas de 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. ¿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 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 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 mínimos necesita Datastream para replicar datos de una base de datos de 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 registro binario para usar la función de captura de datos de cambios para MySQL en Datastream.

Tu organización no permite que se otorgue el permiso SELECT en todas sus tablas y bases de datos. ¿Puedo 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 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 sigue siendo compatible con todas las versiones de Oracle disponibles de forma general, y Datastream seguirá admitiendo LogMiner en todas las versiones futuras. Oracle ya no admite la opción CONTINUOUS_MINE de LogMiner. Sin embargo, Datastream no usa esta opción, por lo que esta baja no tiene ningún 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 en función de 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 conexiones encriptadas con SSL/TLS a fuentes de Oracle.

¿Datastream admite la arquitectura multiusuario de Oracle, específicamente 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 sola base de datos conectable en una transmisión.
Tu organización no permite otorgar el permiso GRANT SELECT ANY TABLE. ¿Puedo 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
  • DOBLE
  • 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 y cuando la instancia esté configurada de acuerdo con los lineamientos de configuración.
¿Datastream admite bases de datos de Oracle SCAN RAC? Sí, es así. 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 el Oracle Connection Manager. También puedes crear una configuración de conectividad privada con soluciones de proxy inverso, como DaemonSet.

Comportamiento y limitaciones de la fuente de PostgreSQL

Pregunta Respuesta
¿Cómo obtiene datos Datastream 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 cómo configurar 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 estas no admiten conexiones simultáneas. Solo puede haber una tarea de CDC que lea desde la ranura de replicación a la vez. Por ejemplo, si borras una gran cantidad de registros de la base de datos de origen, es posible que el espacio de replicación se sobrecargue 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 la ranura de replicación.

Para obtener información sobre el enfoque sugerido cuando se replican datos de transacciones grandes, consulta Cómo diagnosticar problemas.

¿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 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 de SQL Server compatibles, 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 o tablas de cambios, según la configuración de origen. Para obtener más información, consulta Base de datos de SQL Server de origen.
¿Qué permisos mínimos necesita Datastream para replicar datos de una base de datos de SQL Server de origen?

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

Para el método de CDC de tablas de cambios, haz lo siguiente:

  • db_owner
  • db_denydatawriter

Además, para el método de CDC de registros de transacciones, haz lo siguiente:

  • Los permisos SELECT en la base de datos y para la función sys.fn_dblog
  • Permisos SELECT en la tabla dbo.sysjobs
  • VIEW SERVER STATE
  • Para obtener información detallada sobre cómo configurar tu fuente, consulta las páginas de configuración correspondientes de tu tipo de base de datos.

¿Por qué necesitas realizar configuraciones, como cambiar los intervalos de sondeo y establecer una protección contra la truncación cuando usas registros de transacciones? Cuando replicas datos de una fuente de SQL Server con registros de transacciones, si un registro se trunca antes de que Datastream lo lea, se produce una pérdida de datos. Cambiar los intervalos de sondeo y configurar la protección contra 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 produzcan problemas de conectividad o tiempo de inactividad. Para obtener más información, consulta Configura una base de datos de origen de SQL Server.
¿Qué método de CDC se debe seleccionar cuando se replica desde una fuente de SQL Server?

Puedes seleccionar uno de los dos métodos de CDC disponibles, según la configuración de la base de datos de origen de SQL Server:

  • Registros de transacciones: Selecciona este método para procesar los cambios directamente desde los registros de la base de datos. Este método brinda el mejor rendimiento y es más eficiente, pero requiere pasos de configuración adicionales que tu base de datos podría no admitir.
  • Tablas de cambios: Selecciona este método para procesar los cambios de las tablas de cambios exclusivas. Este método es más fácil de configurar y tiene menos limitaciones, pero admite una menor capacidad de procesamiento y aumenta la carga en tu base de datos.

Para obtener más información, consulta Descripción general de SQL Server como fuente.

Comportamiento del 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 forma continua el flujo de cambios de la base de datos de origen y transmite los eventos de inserción, actualizació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 del lenguaje de manipulación de datos (DML) en BigQuery?
  • En el modo Solo concatenación, los datos se agregan en BigQuery como un flujo de cambios, con una fila independiente para cada evento INSERT, UPDATE-INSERT, UPDATE-DELETE y DELETE.
  • En el modo Combinar (predeterminado), cuando Datastream crea una tabla en BigQuery, establece las claves primarias en la tabla en función de las claves primarias definidas en la fuente. BigQuery procesa los eventos y aplica cambios a la tabla subyacente de BigQuery según las claves primarias de la tabla de origen. Si la tabla de origen no tiene una clave primaria, se trata como si se usara el modo Solo agregar.
¿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 aprender a controlar los costos de BigQuery, consulta Precios de las 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 datos 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 de la fuente 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 a las que ya se replicaron 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 archivos no están diseñados para que las personas los lean o comprendan.
Si los datos de Cloud Storage no están ordenados, ¿cómo se pueden volver a ordenar los eventos antes de cargarlos en el destino?

Cada evento contiene varios campos de metadatos que identifican de forma exclusiva 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). 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 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 en la que cambió el registro 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 controlan las actualizaciones de las claves primarias? ¿Hay información antes y 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 la actualización. 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 fila que admite Datastream es de 100 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 actualizados de forma continua 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 las fuentes a varios servicios de Google Cloud. Debido a que se integra sin problemas con estos servicios, Datastream se ajusta 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 con 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 con 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 compilan para archivos generados por Datastream para el procesamiento listo para usar.
  • 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 se replican los datos, se encriptan de forma predeterminada y aprovechan los controles de seguridad de BigQuery o Cloud Storage. Los datos que Datastream almacena en búfer 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 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 aprovecha una VPN o Interconnect existente estableciendo un 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 te 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 que se usan para acceder a las fuentes de datos) se encriptan en tránsito y en reposo, y Google los almacena en sus sistemas de almacenamiento propios. Se realiza un seguimiento y se auditan el acceso a estos metadatos.
¿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 de VPC. Una vez establecido el intercambio de tráfico, ya no necesitarás el rol. 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:

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

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

Cómo crear redes en pares

  • 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? El flujo de datos 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 normal? Datastream se escala automáticamente 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 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 lista de tareas pendientes de eventos.

Precios

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

Datastream se cobra en función del volumen (GB) de datos procesados desde tu fuente hasta 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 que procesa Datastream. Datastream solo cobra por los datos que se transmiten al destino.
Si usas Datastream con BigQuery o Dataflow, ¿por qué pagas? Cada servicio tiene un precio y se cobra por separado.

Información adicional

Pregunta Respuesta
¿Qué debo hacer 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, la guía de solución de problemas aborda los problemas comunes que puedes enfrentar cuando usas Datastream.

¿Qué sigue?