Diffusez les données de DataHub vers Hologres pour l'analyse en temps réel, la surveillance, la génération de rapports ou le traitement complexe des données. L'association des fonctionnalités de DataHub et de Hologres améliore l'efficacité et la précision de vos pipelines de données. Cette rubrique explique comment créer un DataConnector pour synchroniser les données depuis DataHub et propose des solutions aux problèmes courants.
Informations générales
DataHub peut servir de source ou de destination de données, ce qui vous permet de synchroniser les données d'un topic vers d'autres services Alibaba Cloud en temps réel/quasi temps réel. Cela simplifie le flux de données entre différents services. Pour plus d'informations sur la fonctionnalité de synchronisation des données DataHub, consultez la section Présentation.
Le tableau suivant décrit les correspondances entre les concepts de DataHub et de Hologres.
|
DataHub |
Hologres |
|
Project |
Database |
|
Topic |
Table |
Modes et politiques de synchronisation
Modes de synchronisation
Mode | Description |
Insertion ligne par ligne | Insère les données DataHub dans Hologres une par une. Ce mode convient si vous souhaitez synchroniser toutes les données de DataHub vers Hologres. |
Lecture | Réplique les opérations de modification effectuées sur le projet DataHub source dans la base de données Hologres de destination afin de garantir la cohérence des données. Vous pouvez obtenir les opérations de modification des données en analysant les journaux binaires. Ce mode est adapté si vous souhaitez synchroniser les données d'une source vers DataHub à l'aide de DTS (Data Transmission Service), puis les synchroniser vers Hologres. Dans ce cas, DataHub équivaut aux journaux binaires. Remarque Lorsque DTS est utilisé pour synchroniser les données vers DataHub, des colonnes supplémentaires sont ajoutées aux colonnes de données synchronisées pour décrire les opérations sur les données. Les noms des colonnes supplémentaires peuvent entrer en conflit avec les noms des colonnes existantes dans le topic DataHub de destination. Pour plus d'informations sur la prévention des conflits, consultez la section Modifier les règles de nommage des colonnes supplémentaires. |
Politiques de synchronisation
|
Politique |
Description |
|
Replace |
En cas de conflit de clé primaire lors de l'écriture des données, les nouvelles données écrasent les données d'origine. Cela garantit la cohérence des données entre les bases de données source et de destination. |
|
Ignore |
En cas de conflit de clé primaire lors de l'écriture des données, le système ignore les nouvelles données. Les données ne sont pas mises à jour. Cela empêche l'écriture de données en double et garantit l'intégrité des données de la base de données de destination. |
Précautions
Seules les données des topics de type TUPLE dans DataHub peuvent être synchronisées vers Hologres.
Avant d'écrire des données dans une table partitionnée de l'instance Hologres, créez une table enfant. Pour plus d'informations, consultez la section CREATE PARTITION TABLE.
Chaque DataConnector utilise des connexions. Le nombre de connexions utilisées par chaque DataConnector correspond au nombre de shards dans le topic DataHub.
Préparatifs
Activez DataHub et préparez vos données. Pour plus d'informations, consultez la section Premiers pas avec DataHub.
-
Achetez une instance Hologres et créez une table. Cette rubrique utilise une table nommée
lineitemà titre d'exemple. Pour plus d'informations, consultez les sections Acheter une instance Hologres et Se connecter à Hologres via HoloWeb pour créer une table.Le tableau suivant décrit les correspondances entre les types de données dans DataHub et Hologres.
DataHub
Hologres
TINYINT
SMALLINT
SMALLINT
SMALLINT
INTEGER
INTEGER
BIGINT
BIGINT
FLOAT
REAL
DOUBLE
DOUBLE PRECISION
DECIMAL
DECIMAL
STRING
TEXT
BOOLEAN
BOOLEAN
TIMESTAMP
TIMESTAMPTZ
Par exemple, exécutez les instructions suivantes pour créer une table :
BEGIN; CREATE TABLE lineitem ( L_ORDERKEY BIGINT NOT NULL, L_PARTKEY BIGINT NOT NULL, L_SUPPKEY BIGINT NOT NULL, L_LINENUMBER BIGINT NOT NULL, L_QUANTITY DECIMAL(20,10), L_EXTENDEDPRICE DECIMAL(20,10), L_DISCOUNT DECIMAL(20,10), L_TAX DECIMAL(20,10), L_RETURNFLAG TEXT, L_LINESTATUS TEXT, L_SHIPDATE TIMESTAMPTZ, L_COMMITDATE TIMESTAMPTZ, L_RECEIPTDATE TIMESTAMPTZ, L_SHIPINSTRUCT TEXT, L_SHIPMODE TEXT, L_COMMENT TEXT ); CALL set_table_property('lineitem', 'orientation', 'column'); COMMIT;
Créer un DataConnector
Connectez-vous à la console DataHub et cliquez sur le topic que vous avez créé pour accéder à la page des détails du topic.
Dans le coin supérieur droit, cliquez sur + Connector.
-
Cliquez sur Hologres et configurez les paramètres dans le panneau Create connector.
Paramètre
Description
Instance
ID de l'instance Hologres. Accédez à la console Hologres pour obtenir l'Instance ID.
Database
Nom de la base de données Hologres vers laquelle vous souhaitez synchroniser les données DataHub.
Table
Nom de la table Hologres qui reçoit les données de DataHub. Cet exemple utilise
lineitem.Primary Key Conflict Policy
Politique de mise à jour des données en cas de conflit de clé primaire. Valeurs possibles :
replace : En cas de conflit de clé primaire lors de l'écriture des données, les nouvelles données écrasent les données d'origine. Il s'agit de la valeur par défaut.
ignore : En cas de conflit de clé primaire lors de l'écriture des données, le système ignore les nouvelles données. Les données ne sont pas mises à jour et les données d'origine sont conservées.
Pour plus d'informations sur les politiques de synchronisation des données, consultez la section Politiques de synchronisation de cette rubrique.
Replication Scenario
Mode utilisé pour la synchronisation des données. Valeurs possibles :
default : Les données sont insérées une par une. Il s'agit de la valeur par défaut.
-
dts : Sélectionnez cette option si vous utilisez DTS pour synchroniser les données vers DataHub et avez activé les nouvelles règles de nommage pour les colonnes supplémentaires.
dts_old : Utilisez ce mode lorsque vous utilisez DTS pour synchroniser les données vers DataHub sans activer les nouvelles règles de nommage pour les colonnes supplémentaires.
Pour plus d'informations sur les modes de synchronisation des données, consultez la section Modes de synchronisation de cette rubrique.
Import Fields
Champs que vous souhaitez synchroniser vers Hologres. Vous pouvez synchroniser tout ou partie des champs du topic DataHub en fonction de vos besoins métier.
Authentication Mode
Mode d'authentification de l'accès à l'instance Hologres. Valeur par défaut : AccessKey.
Access Key ID
AccessKey ID du compte Alibaba Cloud utilisé pour accéder à l'instance Hologres. Vous pouvez obtenir l'AccessKey ID depuis la page AccessKey Pair.
AccessKey secret
AccessKey secret du compte Alibaba Cloud utilisé pour accéder à l'instance Hologres. Vous pouvez obtenir l'AccessKey secret depuis la page AccessKey Pair.
Timestamp Unit
Unité d'horodatage utilisée par le DataConnector pour la synchronisation des données. Valeurs possibles :
MICROSECOND : Il s'agit de la valeur par défaut.
MILLISECOND.
SECOND.
-
Cliquez sur Create pour démarrer la synchronisation des données.
Une fois le DataConnector créé, consultez l'état de la synchronisation en temps réel dans l'onglet Data Synchronization Tasks de la page des détails du topic.
-
Interrogez les données synchronisées dans Hologres.
Connectez l'instance Hologres à un outil de développement et vérifiez si les données sont synchronisées vers l'instance Hologres en temps réel. Pour plus d'informations sur les outils de développement, consultez la section Présentation. Par exemple, exécutez l'instruction suivante pour interroger les données synchronisées :
SELECT COUNT(*) FROM lineitem;
Erreurs courantes et dépannage
Cette section décrit les erreurs courantes signalées lors de l'utilisation de Hologres et fournit les solutions à ces erreurs.
-
Erreur 1
-
Description du problème
ErrorMessage: Import field not found in dest schema. -
Causes
La table Hologres de destination ne contient pas les champs spécifiés comme champs d'importation dans le DataConnector.
Le paramètre Synchronization Scenarios est défini sur default, mais les colonnes supplémentaires générées lors de la synchronisation des données vers DataHub à l'aide de DTS sont configurées comme champs d'importation dans le DataConnector.
-
Solutions
Créez une table Hologres et ajoutez les champs manquants. Vous pouvez également modifier le paramètre Import Fields du DataConnector pour supprimer les champs supplémentaires.
Créez un DataConnector et définissez le paramètre Synchronization Scenarios sur dts ou dts_old.
-
-
Erreur 2
-
Description du problème
ErrorMessage: Column type not match with Holo column. -
Cause
Les types de données des champs dans le topic DataHub ne correspondent pas aux types de données des champs dans la table Hologres.
-
Solution
Créez une table Hologres et spécifiez des types de données valides pour la table en fonction des correspondances de types de données.
-
-
Erreur 3
-
Description du problème
ErrorMessage: Not import column xxx not allow null and no default value. -
Cause
La table Hologres de destination contient certains champs qui ne sont pas spécifiés comme champs d'importation dans le DataConnector. Ces champs sont configurés avec la propriété not null et aucune valeur par défaut n'est configurée pour eux.
-
Solution
Créez une table Hologres. Pour les champs qui ne sont pas spécifiés comme champs d'importation dans le DataConnector, configurez des valeurs par défaut pour ces champs ou ne configurez pas la propriété not null.
-