La diffusion de données vers Cloud Storage dans Datastream vous permet de stocker les événements de modification de la source dans Google Cloud , dans des conteneurs d'objets appelés buckets. Lorsque vous répliquez des données dans des buckets Cloud Storage, Datastream organise les fichiers par nom d'objet et code temporel d'événement pour qu'ils soient utilisés avec l'API Cloud Storage.
Pour configurer votre destination, activez l'API Datastream, puis spécifiez votre bucket cible et votre préfixe de fichier. Si votre bucket se trouve dans un autre projet, accordez également des autorisations de compte de service multiprojet.
Activer l'API
Il suffit d'activer l'API Datastream lorsque le bucket Cloud Storage de destination se trouve dans le même projet que Datastream.
Si vous écrivez dans un bucket situé dans un autre projet, vous devez autoriser le compte de service associé à Datastream à accéder au bucket.
- Obtenez l'adresse e-mail utilisée pour le compte de service. Pour ce faire, recherchez le numéro de projet sur la page d'accueil de la console Google Cloud . L'adresse e-mail du compte de service sera
service-[project_number]@gcp-sa-datastream.. - Accordez à cette adresse e-mail les autorisations requises pour écrire dans le bucket de destination (généralement les autorisations
roles/storage.objectViewer,roles/storage.objectCreatoretroles/storage.legacyBucketReader).
Spécifier le bucket et le préfixe de destination
Indiquez le nom du projet, le nom du bucket et, éventuellement, le préfixe du fichier dans la configuration du flux afin de déterminer l'emplacement dans lequel les données sont écrites.
Comportement d'écriture
- Les données d'un flux donné sont écrites dans le bucket ou le préfixe de fichier fourni à l'emplacement suivant :
[bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]. - Le nom de l'objet dans le chemin d'accès des sources de base de données est le nom du schéma suivi du nom de la table (séparés par un trait de soulignement "_").
- Le code temporel du chemin d'accès (hh/mm) est le code temporel source des métadonnées de l'événement.
- Pour les événements de remplissage, le code temporel représente l'heure à laquelle les données ont été récupérées à partir de la source. Pour la source Salesforce, le code temporel représente l'heure de la dernière modification de l'enregistrement.
- Pour les événements CDC, l'horodatage représente le moment où l'enregistrement a été modifié dans la source.
- Les fichiers sont alternés lorsque la taille maximale ou le délai avant expiration maximal est atteint, selon la première échéance atteinte. Vous pouvez ajuster la taille maximale des fichiers et les valeurs de délai d'expiration maximales à l'aide de l'API Datastream.
- De plus, une rotation des fichiers est effectuée chaque fois qu'une modification du schéma source est détectée (par exemple, l'ajout d'une colonne).
- Il peut y avoir plusieurs fichiers dans le même chemin d'accès pour la même minute.
- La consommation des données peut être effectuée conformément à l'API Cloud Storage.
- La taille maximale d'un événement lorsque vous transmettez des données en flux continu vers Cloud Storage est de 100 Mo.
- Chaque caractère non alphanumérique du nom d'une colonne source est remplacé par un trait de soulignement (
_) dans le fichier de destination.
Dans certains cas, le plus souvent lorsqu'un flux commence à s'exécuter, il existe un chevauchement entre le backfill et la CDC, ce qui entraîne des événements en double. Cela se produit lorsque Datastream commence à lire le fichier journal de la base de données actuelle (qui a été créé avant le démarrage du flux) et que ce fichier journal inclut des événements qui sont également capturés par le backfill. Ce comportement est normal, et les événements en double peuvent être éliminés à l'aide des métadonnées d'événement, si nécessaire.