Data Transmission Service (DTS) synchronise les données d'une base de données PostgreSQL — y compris les bases de données PostgreSQL gérées en interne et les instances RDS for PostgreSQL — vers une instance SelectDB pour l'analyse à grande échelle. Cette rubrique utilise une instance RDS for PostgreSQL comme source.
Fonctionnement
Une tâche de synchronisation DTS s'exécute en trois phases séquentielles :
Synchronisation du schéma — DTS réplique la structure des tables de la source vers la destination.
Synchronisation complète des données — DTS copie toutes les données existantes de la source vers la destination pour établir la référence initiale.
Synchronisation incrémentielle des données — DTS capture les modifications en cours depuis le journal des transactions anticipées (WAL) de PostgreSQL à l'aide de la réplication logique et les applique à la destination.
La synchronisation incrémentielle des données est facturée. La synchronisation du schéma et la synchronisation complète des données sont gratuites. Pour plus de détails, consultez Présentation de la facturation.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Une instance SelectDB de destination dont l'espace de stockage est supérieur à la taille des données utilisées par l'instance RDS for PostgreSQL source. Pour en créer une, consultez Créer une instance.
Le paramètre
wal_levelde l'instance RDS for PostgreSQL source défini surlogical. Pour définir ce paramètre, consultez Définir les paramètres d'instance.
Autorisations requises
| Base de données | Autorisations requises | Comment accorder |
|---|---|---|
| Instance RDS for PostgreSQL source | Un compte privilégié qui est le propriétaire (Owner) de la base de données à synchroniser | Créer un compte et Créer une base de données |
| Instance SelectDB de destination | Autorisations d'accès au cluster (Usage_priv) et autorisations de lecture/écriture sur la base de données (Select_priv, Load_priv, Alter_priv, Create_priv, Drop_priv) | Gestion des autorisations de cluster et Gestion des autorisations de base |
Opérations SQL prises en charge
| Type d'opération | Instructions SQL |
|---|---|
| LMD (Langage de manipulation de données) | INSERT, UPDATE, DELETE |
| LDD (Langage de définition de données) | ADD COLUMN, DROP COLUMN |
Les opérations LDD qui modifient plusieurs colonnes à la fois, ainsi que les opérations LDD consécutives sur la même table, ne sont pas prises en charge.
Limites
Passez en revue les limites suivantes avant de configurer la tâche de synchronisation.
Exigences relatives à la base de données source
-
Clés primaires et contraintes UNIQUE — Toutes les tables à synchroniser doivent posséder une clé primaire ou une contrainte UNIQUE afin d'éviter les doublons dans la destination.
Si la table de destination n'a pas été créée par DTS (c'est-à-dire si vous n'avez pas sélectionné Schema synchronization pour Synchronization types), assurez-vous que la table de destination dispose de la même clé primaire ou de la même contrainte UNIQUE non vide que la table source. Sinon, des données dupliquées peuvent apparaître dans la destination.
-
Pour les tables qui ne possèdent ni clé primaire ni contrainte UNIQUE : sélectionnez Schema synchronization pour Synchronization types, puis définissez Engine sur duplicate pour ces tables à l'étape Configurations for databases, tables, and columns. Si vous ignorez cette étape, la tâche peut échouer ou entraîner une perte de données.
RemarqueLors de la synchronisation initiale du schéma, DTS ajoute des colonnes à la table de destination. Pour plus de détails, consultez Colonnes supplémentaires.
Noms de base de données — Les noms des bases de données à synchroniser ne doivent pas contenir de tirets (-). Par exemple,
dts-testdatan'est pas valide.Grand nombre de tables — Si vous synchronisez au niveau de la table, modifiez des objets (comme le mappage des noms de colonnes) et que le nombre total de tables dans une seule tâche dépasse 5 000, répartissez les tables dans plusieurs tâches ou configurez la tâche pour synchroniser la base de données entière. Le dépassement de cette limite peut provoquer une erreur de requête lors de la soumission de la tâche.
-
Rétention des journaux WAL — DTS lit les modifications incrémentielles à partir du WAL. Si les journaux sont purgés avant que DTS ne les traite, la tâche échoue et peut entraîner une incohérence ou une perte de données non couverte par l'accord de niveau de service (SLA) de DTS. Vous pouvez modifier la période de rétention des journaux à plus de 24 heures une fois la synchronisation complète initiale des données terminée.
Type de synchronisation Période minimale de rétention du WAL Synchronisation incrémentielle des données uniquement Plus de 24 heures Synchronisation complète des données + synchronisation incrémentielle des données Au moins 7 jours Comportement lors du basculement — Si la source est une base de données PostgreSQL gérée en interne et qu'un basculement se produit, la tâche de synchronisation échoue. Pour les instances RDS for PostgreSQL, activez Logical Replication Slot Failover pour éviter les interruptions de réplication lors des basculements. Pour plus de détails, consultez Logical Replication Slot Failover.
Enregistrements incrémentiels volumineux — Si une modification incrémentielle unique dépasse 256 Mo après encodage, l'instance de synchronisation échoue et ne peut pas être récupérée. Reconfigurez l'instance de synchronisation.
-
Opérations LDD pendant la synchronisation — N'exécutez pas d'opérations de Langage de Définition de Données (LDD) qui modifient les schémas de base de données ou de tables pendant la synchronisation du schéma ou la synchronisation complète des données. De telles opérations entraînent l'échec de la tâche.
Pendant la synchronisation complète des données, DTS interroge la base de données source et acquiert des verrous de métadonnées. Cela peut bloquer les opérations LDD sur la source.
Transactions de longue durée — Si la base de données source contient des transactions de longue durée pendant la synchronisation incrémentielle, les journaux WAL générés avant la validation de ces transactions ne peuvent pas être effacés. Cela provoque l'accumulation des journaux WAL et peut épuiser l'espace disque de la base de données source.
Mises à jour majeures de version — N'effectuez pas de mise à niveau majeure de la version du moteur sur la base de données source pendant l'exécution d'une tâche de synchronisation. La tâche échoue et ne peut pas être récupérée. Reconfigurez l'instance de synchronisation.
Exigences relatives à la destination et à la configuration
Moteurs de table pris en charge — DTS ne peut synchroniser les données que vers des tables utilisant le moteur Unique ou Duplicate dans SelectDB.
Tables utilisant le moteur Unique — Toutes les clés uniques de la table de destination doivent également exister dans la table source et être incluses comme objets de synchronisation. Sinon, une incohérence des données peut survenir.
-
Tables utilisant le moteur Duplicate — Des données dupliquées peuvent apparaître dans la destination dans les scénarios suivants : utilisez les colonnes supplémentaires (
_is_deleted,_versionet_record_id) pour identifier et supprimer les doublons. Pour plus de détails sur les colonnes, consultez Colonnes supplémentaires.L'instance de synchronisation a fait l'objet d'une nouvelle tentative.
L'instance de synchronisation a été redémarrée.
Deux opérations LMD ou plus sont effectuées sur le même enregistrement de données après le démarrage de la tâche.
Lorsque la table de destination utilise le moteur Duplicate, DTS convertit les instructions UPDATE et DELETE en instructions INSERT.
Paramètre
bucket_count— Dans la zone Selected objects, vous pouvez uniquement définir le paramètrebucket_count. La valeur doit être un entier positif. La valeur par défaut est auto.Exigences de nommage — SelectDB ne prend en charge que les noms de bases de données et de tables commençant par une lettre. Si un nom ne commence pas par une lettre, utilisez la fonctionnalité de mappage pour le renommer. De même, si un nom d'objet de synchronisation (base de données, table ou colonne) contient des caractères chinois, utilisez la fonctionnalité de mappage pour le renommer avec un nom anglais. Sinon, la tâche peut échouer.
Une seule base de données par tâche — Une instance de synchronisation ne peut synchroniser qu'une seule base de données. Pour synchroniser plusieurs bases de données, configurez une instance distincte pour chaque base de données.
Types d'objets non pris en charge — DTS ne synchronise pas les tables d'extension TimescaleDB, les tables avec héritage inter-schéma ou les tables contenant des index uniques basés sur des expressions.
-
Exigence REPLICA IDENTITY FULL — Avant d'écrire des données dans les tables suivantes, exécutez la commande ci-dessous pour garantir la cohérence des données. N'effectuez pas d'opérations de verrouillage de table pendant l'exécution de cette commande, sinon les tables pourraient être verrouillées. Si vous ignorez les éléments de précontrôle associés, DTS exécute automatiquement cette commande lors de l'initialisation de l'instance. Exécutez cette commande lorsque :
L'instance s'exécute pour la première fois.
La granularité de synchronisation est le schéma, et une nouvelle table est créée dans le schéma synchronisé, ou une table est reconstruite à l'aide de RENAME.
Vous utilisez la fonctionnalité Modify objects.
ALTER TABLE schema.table REPLICA IDENTITY FULL;Remplacez
schemaettablepar les noms réels du schéma et de la table. Exécutez cette commande pendant les heures creuses. Charge liée à la synchronisation complète des données — Pendant la synchronisation complète des données, DTS utilise des ressources de lecture et d'écriture sur les bases de données source et de destination, ce qui augmente la charge de la base de données. Évaluez les performances des deux bases de données avant de commencer et planifiez la synchronisation pendant les heures creuses lorsque la charge CPU est inférieure à 30 %.
Modifications des nœuds backend — N'ajoutez pas de nœuds backend (BE) à la base de données SelectDB pendant la synchronisation. Cela entraîne l'échec de la tâche. Redémarrez l'instance de synchronisation pour reprendre.
Nouveaux clusters — Ne créez pas de nouveau cluster dans l'instance SelectDB de destination pendant la synchronisation. Cela entraîne l'échec de la tâche. Redémarrez l'instance de synchronisation pour reprendre.
Fusion multi-tables — Dans un scénario de fusion multi-tables où les données de plusieurs tables sources sont synchronisées vers une seule table de destination, toutes les tables sources doivent avoir le même schéma. Sinon, une incohérence des données ou un échec de la tâche peut survenir.
Validation des métadonnées — DTS valide le contenu des données mais ne valide pas les métadonnées telles que les séquences. Validez les métadonnées manuellement.
Tables partitionnées — Incluez à la fois la table parente et toutes ses tables enfants comme objets de synchronisation. La table parente d'une table partitionnée PostgreSQL ne stocke pas directement les données — toutes les données résident dans les tables enfants. L'omission des tables enfants entraîne une incohérence des données.
Tables temporaires — DTS crée les tables temporaires suivantes dans la base de données source pour capturer les instructions LDD, les structures de table et les informations de pulsation (heartbeat). Ne supprimez pas ces tables pendant la synchronisation, sinon la tâche deviendra anormale. Elles sont supprimées automatiquement lorsque l'instance DTS est libérée :
public.dts_pg_class,public.dts_pg_attribute,public.dts_pg_type,public.dts_pg_enum,public.dts_postgres_heartbeat,public.dts_ddl_command,public.dts_args_sessionetpublic.aliyun_dts_instance.-
Slots de réplication — DTS crée un slot de réplication avec le préfixe
dts_sync_dans la base de données source. DTS utilise ce slot pour récupérer les journaux incrémentiels de la base de données source dans un délai de 15 minutes. Lorsque la tâche échoue ou que l'instance est libérée, DTS tente de nettoyer ce slot automatiquement.ImportantSi vous modifiez le mot de passe du compte de base de données ou supprimez les adresses IP de DTS de la liste d'autorisation de la base de données source pendant la synchronisation, le slot de réplication ne peut pas être nettoyé automatiquement. Nettoyez-le manuellement pour éviter l'accumulation d'espace disque. En cas de basculement sur la base de données source, connectez-vous à la base de données secondaire pour nettoyer manuellement le slot de réplication.

-
Latence de synchronisation incrémentielle — DTS utilise une politique de synchronisation par lots pour réduire la charge sur la destination. Par défaut, DTS écrit les données au maximum une fois toutes les 5 secondes par objet de synchronisation, ce qui entraîne une latence typique inférieure à 10 secondes. Pour réduire la latence, modifiez le paramètre
selectdb.reservoir.timeout.millisecondsde l'instance DTS dans la console. La plage valide est de 1 000 à 10 000 millisecondes.La réduction de l'intervalle de regroupement augmente la fréquence d'écriture. Cela peut augmenter la charge et le temps de réponse en écriture de l'instance de destination, ce qui accroît à son tour la latence de synchronisation. Ajustez en fonction de la charge réelle de la destination.
Récupération de la tâche — En cas d'échec de la tâche, le support technique DTS tente une récupération sous 8 heures. Pendant la récupération, DTS peut redémarrer la tâche ou ajuster les paramètres de la tâche (et non les paramètres de la base de données). Les paramètres susceptibles d'être modifiés incluent ceux décrits dans Modifier les paramètres d'instance.
Cas particuliers
| Scénario | Exigence |
|---|---|
| La source est une instance RDS for PostgreSQL | Ne modifiez pas le point de terminaison ou la zone de l'instance pendant la synchronisation. Cela entraîne l'échec de la tâche. |
| La source est une base de données PostgreSQL gérée en interne | Assurez-vous que les valeurs de max_wal_senders et max_replication_slots sont chacune supérieures à la somme des slots de réplication existants et du nombre d'instances DTS utilisant cette base de données comme source. |
| La source est Google Cloud SQL for PostgreSQL | Le compte de base de données doit disposer de l'autorisation cloudsqlsuperuser et être autorisé à gérer tous les objets sélectionnés pour la synchronisation (ou obtenir l'autorisation Owner via GRANT <owner_of_the_object> TO <source_database_account>). Un compte disposant de l'autorisation cloudsqlsuperuser ne peut pas gérer les objets appartenant à un autre compte cloudsqlsuperuser. |
Créer une tâche de synchronisation
Étape 1 : Accéder à la liste des tâches de synchronisation des données
Utilisez l'une des méthodes suivantes pour accéder à la liste des tâches de synchronisation dans la région de destination.
Depuis la console DTS :
Connectez-vous à la console Data Transmission Service (DTS).
Dans le volet de navigation de gauche, cliquez sur Data Synchronization.
Dans le coin supérieur gauche, sélectionnez la région où réside l'instance de synchronisation.
Depuis la console DMS :
Les étapes réelles peuvent varier selon le mode et la disposition de la console DMS. Pour plus de détails, consultez Console en mode simple et Personnaliser la disposition et le style de l'interface utilisateur DMS .
Connectez-vous à Data Management (DMS).
Dans la barre de menu supérieure, choisissez Data + AI > Data Transmission (DTS) > Data Synchronization.
À droite de Data Synchronization Tasks, sélectionnez la région où réside l'instance de synchronisation.
Étape 2 : Configurer les bases de données source et de destination
Cliquez sur Create Task.
-
Configurez les bases de données source et de destination. Task name DTS génère automatiquement un nom de tâche. Spécifiez un nom descriptif pour faciliter l'identification. Le nom n'a pas besoin d'être unique.
Source database
Paramètre Description Select existing connection Sélectionnez une instance de base de données enregistrée dans la liste si vous l'avez ajoutée au système. Sinon, configurez la connexion manuellement. Dans la console DMS, ce paramètre est nommé Select a DMS database instance. Database type Sélectionnez PostgreSQL. Access method Sélectionnez Alibaba Cloud Instance. Instance region Sélectionnez la région où réside l'instance RDS for PostgreSQL source. Replicate data across Alibaba Cloud accounts Sélectionnez No si l'instance source appartient au compte Alibaba Cloud actuel. Instance ID Sélectionnez l'ID de l'instance RDS for PostgreSQL source. Database name Saisissez le nom de la base de données contenant les objets à synchroniser. Database account Saisissez le compte de base de données. Pour les autorisations requises, consultez Autorisations requises. Database password Saisissez le mot de passe du compte de base de données. Destination database
Paramètre Description Select existing connection Sélectionnez une instance de base de données enregistrée dans la liste si vous l'avez ajoutée au système. Sinon, configurez la connexion manuellement. Dans la console DMS, ce paramètre est nommé Select a DMS database instance. Database type Sélectionnez SelectDB. Access method Sélectionnez Alibaba Cloud Instance. Instance region Sélectionnez la région où réside l'instance SelectDB de destination. Replicate data across Alibaba Cloud accounts Sélectionnez No si l'instance de destination appartient au compte Alibaba Cloud actuel. Instance ID Sélectionnez l'ID de l'instance SelectDB de destination. Database account Saisissez le compte de base de données. Pour les autorisations requises, consultez Autorisations requises. Database password Saisissez le mot de passe du compte de base de données. -
Cliquez sur Test Connectivity and Proceed.
Assurez-vous que les plages d'adresses IP des serveurs DTS sont ajoutées aux paramètres de sécurité des bases de données source et de destination. Cela peut être fait automatiquement ou manuellement. Pour plus de détails, consultez Ajouter les plages d'adresses IP des serveurs DTS à une liste d'autorisation . Si la source ou la destination est une base de données gérée en interne (où Access method n'est pas Alibaba Cloud Instance ), cliquez également sur Test Connectivity dans la boîte de dialogue CIDR blocks of DTS servers .
Étape 3 : Configurer les objets de synchronisation
Sur la page Configure objects, définissez les paramètres suivants.
| Paramètre | Description |
|---|---|
| Synchronization types | Incremental Data Synchronization est sélectionné par défaut. Sélectionnez également Schema Synchronization et Full Data Synchronization. Après la réussite du précontrôle, DTS initialise tous les objets sélectionnés depuis la source et les utilise comme référence pour la synchronisation incrémentielle. Important
Lors de la synchronisation de PostgreSQL vers SelectDB, les types de données sont convertis. Si vous ne sélectionnez pas Schema Synchronization, créez à l'avance des tables de modèle Unique ou Duplicate avec les schémas corrects dans l'instance SelectDB de destination. Pour plus de détails, consultez Mappage des types de données et Modèles de données. |
| Processing mode of conflicting tables | Precheck and report errors : DTS vérifie si une table portant le même nom existe dans la destination. Si c'est le cas, le précontrôle échoue et la tâche ne démarre pas. Pour résoudre ce problème sans supprimer la table, utilisez la fonctionnalité de mappage pour la renommer. Consultez Mapper les schémas, les tables et les colonnes. Ignore errors and proceed : Ignore la vérification. Avertissement
Cela peut entraîner une incohérence des données. Si les schémas correspondent, les enregistrements ayant la même clé primaire ou clé unique dans la destination sont écrasés. Si les schémas diffèrent, l'initialisation peut échouer ou seules des données partielles peuvent être synchronisées. |
| Capitalization of object names in destination instance | Configurez la politique de sensibilité à la casse pour les noms de bases de données, de tables et de colonnes synchronisés vers la destination. La valeur par défaut est la DTS default policy. Pour plus de détails, consultez Politique de sensibilité à la casse pour les noms d'objets de destination. |
| Source objects | Cliquez sur un objet dans la zone Source objects, puis cliquez sur |
| Selected objects | Cliquez avec le bouton droit sur un objet pour le renommer, définissez une clause WHERE pour filtrer les lignes ou sélectionnez les opérations SQL à inclure pour la synchronisation incrémentielle. Pour supprimer un objet, cliquez dessus puis cliquez sur bucket_count sous Parameter settings. Remarque
L'utilisation de la fonctionnalité de mappage de noms d'objets peut entraîner des échecs de synchronisation pour d'autres objets dépendant de l'objet renommé. |
Cliquez sur Next: Advanced Settings.
Étape 4 : Configurer les paramètres avancés (facultatif)
| Paramètre | Description |
|---|---|
| Dedicated cluster for task scheduling | Par défaut, DTS planifie les tâches sur un cluster partagé. Pour des performances plus stables, achetez un cluster dédié. Consultez Qu'est-ce qu'un cluster dédié DTS ?. |
| Retry time for failed connections | Après le démarrage de la tâche, si la connexion à la source ou à la destination échoue, DTS effectue des nouvelles tentatives pendant jusqu'à 720 minutes par défaut. Définissez une durée personnalisée entre 10 et 1 440 minutes. Définissez cette valeur à 30 minutes ou plus. Si la reconnexion réussit dans la période de nouvelle tentative, la tâche reprend automatiquement. Remarque
Si plusieurs instances DTS partagent la même source ou destination, la durée de nouvelle tentative la plus courte parmi ces instances s'applique à toutes. DTS facture le temps d'exécution de la tâche pendant la période de nouvelle tentative. |
| Retry time for other issues | Si des problèmes autres que la connectivité surviennent (tels que des erreurs d'exécution LDD ou LMD), DTS effectue des nouvelles tentatives pendant jusqu'à 10 minutes par défaut. Définissez une durée personnalisée entre 1 et 1 440 minutes. Définissez cette valeur à 10 minutes ou plus. Important
Cette valeur doit être inférieure à la durée de nouvelle tentative pour les connexions échouées. |
| Enable throttling for full data synchronization | Limitez le taux de lecture vers la source et le taux d'écriture vers la destination pendant la synchronisation complète pour réduire la charge de la base de données. Configurez Queries per second (QPS) to the source database, RPS of full data migration et Data migration speed for full migration (MB/s). Ce paramètre est disponible uniquement lorsque Full Data Synchronization est sélectionné. Vous pouvez également ajuster la vitesse de synchronisation complète une fois l'instance en cours d'exécution. |
| Enable throttling for incremental data synchronization | Limitez le taux d'écriture vers la destination pendant la synchronisation incrémentielle. Configurez RPS of incremental data synchronization et Data synchronization speed for incremental synchronization (MB/s). |
| Environment tag | Sélectionnez une balise d'environnement pour identifier l'instance. Ce paramètre est facultatif. |
| Configure ETL | Activez la fonctionnalité extract, transform, and load (ETL) pour transformer les données pendant la synchronisation. Sélectionnez Yes et saisissez les instructions de traitement dans l'éditeur de code. Pour plus de détails, consultez Configurer ETL dans une tâche de migration ou de synchronisation de données. |
| Monitoring and alerting | Configurez des alertes pour les échecs de tâche ou les dépassements de seuil de latence. Sélectionnez Yes, puis spécifiez le seuil d'alerte et les destinataires des notifications. Pour plus de détails, consultez Configurer la surveillance et les alertes lors de la configuration de la tâche. |
Étape 5 : Configurer les champs de base de données et de table (facultatif)
Si vous avez sélectionné Schema Synchronization, cliquez sur Next: Configure Database and Table Fields pour définir la Primary Key Column, la Distribution Key et le Engine pour chaque table de destination.
Définissez Definition status sur All pour afficher et modifier toutes les tables.
Sélectionnez une ou plusieurs colonnes pour Primary Key Column . La Distribution Key doit inclure au moins une colonne de la clé primaire.
Pour les tables sans clé primaire ni contrainte UNIQUE, définissez Engine sur duplicate . Sinon, la tâche peut échouer ou entraîner une perte de données.
Étape 6 : Exécuter le précontrôle et acheter l'instance
-
Cliquez sur Next: Save Task Settings and Precheck.
Pour prévisualiser les paramètres OpenAPI de cette tâche, survolez le bouton et cliquez sur Preview OpenAPI parameters avant de cliquer dessus.
-
Attendez que le précontrôle soit terminé. La tâche ne peut démarrer qu'après la réussite de tous les éléments de précontrôle.
Si un élément de précontrôle échoue, cliquez sur View Details, corrigez le problème et relancez le précontrôle.
Si un élément de précontrôle génère un avertissement pouvant être ignoré, cliquez successivement sur Confirm Alert Details, Ignore, OK et Precheck Again. Ignorer les avertissements peut entraîner une incohérence des données.
Lorsque le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.
-
Sur la page Purchase, sélectionnez la méthode de facturation et la spécification du lien.
Paramètre Description Billing method Subscription : Payez à l'avance pour une durée déterminée. Convient à une utilisation à long terme et est plus rentable que le paiement à l'utilisation. Les abonnements plus longs offrent des remises plus élevées. Pay-as-you-go : Facturé à l'heure. Convient à une utilisation à court terme. Libérez l'instance après utilisation pour arrêter les frais. Resource group configuration Le groupe de ressources auquel appartient l'instance. La valeur par défaut est le groupe de ressources par défaut. Consultez Qu'est-ce que Resource Management ?. Link specification Le niveau de performance de synchronisation. Des spécifications plus élevées prennent en charge des taux de synchronisation plus élevés. Consultez Spécifications des liens de synchronisation de données. Subscription duration (Abonnement uniquement) Choisissez mensuel (1 à 9 mois) ou annuel (1, 2, 3 ou 5 ans). Lisez les Data Transmission Service (Pay-as-you-go) Service Terms, puis cliquez sur Buy and Start. Dans la boîte de dialogue de confirmation, cliquez sur OK.
Vous pouvez surveiller la progression de la tâche sur la page Data Synchronization.
Mappage des types de données
| Catégorie | Type de données PostgreSQL | Type de données SelectDB |
|---|---|---|
| Numérique | SMALLINT | SMALLINT |
| INTEGER | INT | |
| BIGINT | BIGINT | |
| DECIMAL | DECIMAL | |
| NUMERIC | DECIMAL | |
| REAL | DOUBLE | |
| DOUBLE | DOUBLE | |
| SMALLSERIAL | SMALLINT | |
| SERIAL | INT | |
| BIGSERIAL | BIGINT | |
| Monétaire | MONEY | STRING |
| Caractère | CHAR(n), VARCHAR(n) | VARCHAR Important
Pour éviter la perte de données, CHAR(n) et VARCHAR(n) sont convertis en VARCHAR(4\*n). Si aucune longueur n'est spécifiée, la valeur VARCHAR(65533) par défaut de SelectDB est utilisée. Si la longueur des données dépasse 65 533 caractères, les données sont converties en STRING. |
| TEXT | STRING | |
| Binaire | BYTEA | STRING |
| Date et heure | TIMESTAMP [(P)] [WITHOUT TIME ZONE] | DATETIMEV2 |
| TIMESTAMP [(P)] WITH TIME ZONE | DATETIMEV2 | |
| DATE | DATEV2 | |
| TIME [(P)] [WITHOUT TIME ZONE] | VARCHAR(50) | |
| TIME [(P)] WITH TIME ZONE | VARCHAR(50) | |
| INTERVAL [FIELDS] [(P)] | STRING | |
| Booléen | BOOLEAN | BOOLEAN |
| Géométrique | POINT, LINE, LSEG, BOX, PATH, POLYGON, CIRCLE | STRING |
| Adresse réseau | CIDR, INET, MACADDR, MACADDR8 | STRING |
| Recherche textuelle | TSVECTOR | STRING |
| XML | XML | STRING |
| JSON | JSON | JSON |
Colonnes supplémentaires
DTS ajoute automatiquement les colonnes suivantes aux tables de destination utilisant le moteur Duplicate. Si la table n'a pas été créée par DTS, ajoutez ces colonnes manuellement.
| Colonne | Type de données | Valeur par défaut | Description |
|---|---|---|---|
_is_deleted |
Int | 0 | Indique si la ligne est supprimée. INSERT : 0. UPDATE : 0. DELETE : 1. |
_version |
Bigint | 0 | Pour la synchronisation complète des données : 0. Pour la synchronisation incrémentielle des données : l'horodatage (en secondes) issu du journal binaire source. |
_record_id |
Bigint | 0 | Pour la synchronisation complète des données : 0. Pour la synchronisation incrémentielle des données : l'ID d'enregistrement unique de l'entrée de journal incrémentielle. Cette valeur est unique et augmente de manière monotone. |