La transmisión de datos a Cloud Storage en Datastream te permite almacenar eventos de cambio de origen en Google Cloud dentro de contenedores de objetos llamados buckets. Cuando replicas datos en buckets de Cloud Storage, Datastream organiza los archivos por nombre de objeto y marca de tiempo del evento para consumirlos con la API de Cloud Storage.
Para configurar tu destino, habilita la API de Datastream y especifica el bucket de destino y el prefijo del archivo. Si tu bucket está en un proyecto diferente, también otorga permisos de cuenta de servicio entre proyectos.
Habilita la API
Habilitar la API de Datastream es suficiente cuando el bucket de Cloud Storage de destino está en el mismo proyecto que Datastream.
Si escribes en un bucket de un proyecto diferente, debes otorgar a la cuenta de servicio asociada a Datastream el permiso para acceder al bucket.
- Obtén la dirección de correo electrónico que se usa en la cuenta de servicio. Para esto, busca el número de proyecto en la página principal de la consola de Google Cloud . La dirección de correo electrónico de la cuenta de servicio será
service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com. - Otorga a esta dirección de correo electrónico los permisos necesarios para escribir en el bucket de destino (por lo general, los permisos
roles/storage.objectViewer,roles/storage.objectCreatoryroles/storage.legacyBucketReader).
Especifica el bucket de destino y el prefijo
Proporciona el nombre del proyecto, el nombre del bucket y el prefijo de archivo opcional en la configuración del flujo para determinar dónde se escriben los datos.
Comportamiento de escritura
- Los datos de una transmisión determinada se escriben en el bucket o prefijo de archivo proporcionado en:
[bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]. - El nombre del objeto en la ruta de acceso de las bases de datos de origen es el nombre del esquema seguido del nombre de la tabla (separado por un guion bajo “_”).
- La marca de tiempo en la ruta de acceso (hh/mm) es la marca de tiempo de origen de los metadatos del evento.
- En el caso de los eventos de reabastecimiento, la marca de tiempo representa el momento en que se recuperaron los datos de la fuente. En el caso de la fuente de Salesforce, la marca de tiempo representa la hora en que se modificó el registro por última vez.
- Para los eventos de CDC, la marca de tiempo representa cuándo se cambió el registro en la fuente.
- Los archivos se rotan siempre que se alcanza el tamaño de archivo máximo o el tiempo de espera máximo, lo que ocurra primero. Puedes ajustar el tamaño máximo del archivo y los valores de tiempo de espera máximo con la API de Datastream.
- Además, los archivos se rotan cada vez que se detecta un cambio en el esquema de origen (por ejemplo, se agrega una columna nueva).
- Puede haber varios archivos dentro de la misma ruta en el mismo minuto.
- Los datos se pueden consumir de acuerdo con la API de Cloud Storage.
- El tamaño máximo de los eventos cuando transmites datos a Cloud Storage es de 100 MB.
- Cada carácter no alfanumérico en el nombre de una columna de origen se reemplaza por un guion bajo (
_) en el archivo de destino.
En algunos casos, con mayor frecuencia cuando un flujo comienza a ejecutarse, hay una superposición entre el reabastecimiento y la CDC, lo que genera eventos duplicados. Esto sucede cuando Datastream comienza a leer desde el archivo de registro de la base de datos actual (que se creó antes de que se iniciara la transmisión) y este archivo de registro incluye algunos eventos que también captura el reabastecimiento. Este es un comportamiento previsto, y los eventos duplicados se pueden eliminar con los metadatos del evento, si es necesario.
¿Qué sigue?
- Obtén información para transmitir cambios en los datos casi en tiempo real con Datastream.