Cette page contient des informations sur les éléments suivants :
- Comportement de Datastream lors du traitement des données extraites d'une base de données SQL Server source.
- Méthodes de capture de données modifiées (CDC) compatibles avec Datastream.
- Versions des bases de données SQL Server compatibles avec Datastream.
- Limites connues de l'utilisation de la base de données SQL Server en tant que source.
Comportement
Datastream suit les modifications du langage de manipulation de données (LMD) à l'aide de l'une des méthodes CDC suivantes :
Modifier les tables
La méthode CDC des tables de modifications permet aux utilisateurs de conserver les journaux pendant une durée plus courte et, par conséquent, d'économiser de l'espace de stockage. Toutefois, elle prend en charge un débit inférieur à celui de la méthode des journaux de transactions. Cette méthode présente moins de limites que les journaux de transactions. Par exemple, il élimine le risque de troncature des journaux entraînant l'échec permanent des flux et permet la réplication des tables chiffrées. Pour en savoir plus, consultez Limites connues.
Lorsque vous utilisez cette méthode CDC, les modifications apportées à la source sont suivies à l'aide de tables de modifications dédiées. Les journaux de transactions sont toujours utilisés, mais dans une mesure limitée. Vous n'avez pas besoin de les conserver pendant de longues périodes. À mesure que les événements LMD sont appliqués aux tables sources, les modifications sont répliquées dans les tables de modifications correspondantes. Les tables de modifications ont la même structure que les tables sources, mais avec des colonnes supplémentaires pour inclure les métadonnées des modifications. Seules les transactions validées sont ajoutées aux tables de modifications, ainsi que le numéro séquentiel dans le journal (LSN) de l'opération de validation.
Comment Datastream gère les modifications LDD apportées au schéma source
Lorsque vous utilisez la méthode CDC des tables de modifications, des instances de capture sont créées pour chaque table de modifications. Chaque instance de capture est associée à une liste de colonnes qu'elle capture et suit. Par défaut, lorsqu'une modification du langage de définition de données (LDD) se produit dans la source après la création de l'instance de capture, l'instance ignore la modification. Toutefois, vous pouvez configurer votre flux SQL Server pour répliquer les colonnes ajoutées au schéma source après la création du flux et de l'instance de capture.
Avant de commencer
- Assurez-vous que l'autorisation
db_owner
est attribuée à votre utilisateur Datastream.
Répliquer les colonnes ajoutées au schéma source
Pour que Datastream puisse répliquer les colonnes ajoutées au schéma source après la création d'un flux, vous devez ajouter le libellé enable_ddl_support_for_ct
à votre flux :
Accédez à la page Flux dans la console Google Cloud .
Cliquez sur le flux SQL Server que vous souhaitez modifier.
Sur la page Détails du flux, cliquez sur Mettre en veille.
Cliquez sur Modifier > Modifier les paramètres du flux.
Cliquez sur Ajouter une étiquette.
Dans le champ Clé, saisissez
enable_ddl_support_for_ct
.Dans le champ Value (Valeur), saisissez
true
.Cliquez sur Enregistrer.
Cliquez sur Démarrer pour reprendre votre diffusion.
Datastream vérifie la table cdc.ddl_history
toutes les cinq minutes pour détecter de nouveaux DDL. Si une colonne est ajoutée à une table incluse dans la configuration du flux, Datastream vérifie si la table comporte deux instances de capture :
Si ce n'est pas le cas, Datastream crée une instance de capture, lit les données de l'instance de capture d'origine jusqu'au moment où le LDD s'est produit, puis commence à lire à partir de la nouvelle instance de capture.
Si c'est le cas, une entrée de journal est ajoutée pour indiquer que la modification LDD ne peut pas être traitée, car le nombre maximal d'instances de capture est atteint.
Journaux de transactions
Lorsque vous utilisez cette méthode CDC, Datastream lit les modifications apportées à la source directement à partir des journaux de transactions. Cette méthode nécessite moins de ressources et permet de récupérer les données plus rapidement, mais elle présente plus de limites.
Pour éviter toute perte de données, il est important que les journaux ne soient pas tronqués avant que Datastream ne les lise. En revanche, si vous conservez les fichiers journaux trop longtemps, ils occupent de l'espace de stockage, ce qui peut finir par entraîner le passage de l'instance de base de données en mode lecture seule.
Pour vous assurer que le lecteur CDC dispose de suffisamment de temps pour lire les journaux tout en permettant la troncature des journaux afin de libérer de l'espace de stockage, vous devez appliquer des étapes de configuration supplémentaires, telles que la modification des intervalles d'interrogation et la configuration d'une protection contre la troncature. Ces étapes offrent une couche de protection supplémentaire pour s'assurer que Datastream peut lire les données même en cas d'indisponibilité de Datastream ou de problème de connectivité entre la base de données source et Datastream.
Pour obtenir des instructions détaillées sur l'application de ces mesures supplémentaires, consultez la page Configurer une base de données SQL Server source et sélectionnez votre type de base de données.
Versions
Datastream est compatible avec les versions et éditions suivantes des bases de données SQL Server :
- autogéré (sur site ou hébergé dans le cloud) avec les versions suivantes :
- Enterprise : 2008 et versions ultérieures
- Standard : 2016 SP1 et versions ultérieures
- Développeur : 2008 et versions ultérieures
- Amazon RDS pour SQL Server
Azure SQL Database (niveau S3 et supérieur).
Cloud SQL pour SQL Server
Datastream n'est pas compatible avec les versions suivantes des bases de données SQL Server :
- Édition SQL Server Standard de la version 2008 à la version 2014
- SQL Server Express
- SQL Server Web
Limitations connues
Les limites connues d'utilisation de la base de données SQL Server en tant que source incluent les suivantes :
- Les flux sont limités à 10 000 tables.
- Une table contenant plus de 500 millions de lignes ne peut pas être remplie, sauf si les conditions suivantes sont remplies :
- La table comporte un index unique.
- Aucune des colonnes d'index ne peut être laissée vide.
- Toutes les colonnes de l'index sont incluses dans le flux.
- Les bases de données pour lesquelles la durabilité retardée ou la récupération de base de données accélérée (ADR) sont activées ne sont pas compatibles.
- Le streaming des modifications apportées aux tables système n'est pas pris en charge.
- L'authentification Windows Active Directory (AD) n'est pas compatible.
- Les types de données suivants ne sont pas acceptés et ne sont pas répliqués dans la destination :
SQL_VARIANT
HIERARCHYID
GEOMETRY
GEOGRAPHY
- Datastream réplique les types de données définis par l'utilisateur. Toutefois, c'est le type de données de base à partir duquel vous dérivez votre type défini par l'utilisateur qui est stocké dans la destination. Par exemple, si vous définissez un type de données
USERNAME
basé sur le type de donnéesVARCHAR(50)
, les données sont stockées dans la destination en tant queVARCHAR(50)
. Datastream ne prend pas en charge la CDC pour les colonnes de grands objets (
TEXT
,NTEXT
,XML
,IMAGE
) et les colonnes de longueur de variable maximale (VARCHAR(MAX)
,VARBINARY(MAX)
,NVARCHAR(MAX)
) dans les tables sans index unique.Si les colonnes d'objets volumineux ne sont pas incluses dans le flux, la CDC est acceptée.
Datastream n'est pas compatible avec la réplication des modifications suivantes du schéma source lorsque vous utilisez la méthode CDC des tables de modifications :
- Suppression de colonnes : les données de ces colonnes sont remplacées par des valeurs
NULL
. - Modification des types de données : Datastream tente d'insérer les données dans la destination et génère une erreur si les données sont refusées.
- Renommer des colonnes : non compatible avec SQL Server lorsque la CDC est activée.
Ces modifications de schéma peuvent entraîner une corruption des données ou l'échec du traitement des événements.
- Suppression de colonnes : les données de ces colonnes sont remplacées par des valeurs
Datastream n'accepte pas le masquage des données. Les données sont répliquées sans masquage.
Datastream n'est pas compatible avec la réplication des modifications appliquées à la base de données à l'aide du package DACPAC (Data Tier Application Package).
Datastream ne réplique pas les modifications apportées à l'aide des instructions
WRITETEXT
ouUPDATETEXT
.Datastream n'est pas compatible avec la réplication des colonnes calculées, sauf si la colonne est marquée
PERSISTED
.Datastream n'accepte pas les types de compression
PAGE
,COLUMNSTORE
niCOLUMNSTORE ARCHIVE
.
Limites supplémentaires lors de l'utilisation de la méthode des journaux de transactions
Si vous utilisez la méthode CDC des journaux de transactions, les limites supplémentaires suivantes s'appliquent :
- Le chiffrement transparent des données (TDE) n'est pas compatible.
- Le chiffrement au niveau des colonnes n'est pas accepté. Les données de ces colonnes sont remplacées par des valeurs
NULL
. - Lorsque vous utilisez la méthode CDC des journaux de transactions, Datastream n'est pas compatible avec la réplication des colonnes ajoutées au schéma source après la création d'un flux. Les nouvelles colonnes ne sont pas répliquées dans la destination.
- Datastream n'est pas compatible avec l'instruction
ROLLBACK TO SAVEPOINT
. Ces événements de rollback sont ignorés et ne sont pas répliqués dans la destination. - Datastream ne prend pas en charge la CDC pour les lignes de plus de 8 Ko dans les types de tables suivants :
- Tables sans index unique
- Tables ne contenant qu'un index unique non clusterisé avec une ou plusieurs colonnes de longueur variable (
VARCHAR
,VARBINARY
,NVARCHAR
)
Datastream ne prend pas en charge la CDC pour les colonnes de grands objets (
TEXT
,NTEXT
,XML
,IMAGE
) dans les types de tables suivants :- Tables sans index unique
- Tables ne contenant qu'un index unique non clusterisé avec une ou plusieurs colonnes de longueur variable (
VARCHAR
,VARBINARY
,NVARCHAR
)
Si les colonnes d'objets volumineux ne sont pas incluses dans le flux, la CDC n'est compatible avec ces tables que si elles disposent d'index valides.
Étapes suivantes
- Découvrez comment configurer une source SQL Server pour l'utiliser avec Datastream.