Cette rubrique explique comment archiver de manière incrémentielle les données depuis HBase vers MaxCompute.
Avis
La fonctionnalité d'archivage incrémentiel pour MaxCompute a été interrompue le 16 juin 2023. Les instances Lindorm Tunnel Service (LTS) achetées après le 16 juin 2023 ne peuvent pas utiliser cette fonctionnalité. Les instances LTS achetées avant cette date peuvent continuer à l'utiliser.
Prérequis
Le service Lindorm Tunnel Service (LTS) est activé.
Une source de données HBase a été ajoutée.
Une source de données MaxCompute a été ajoutée.
Versions prises en charge
HBase 1.x et 2.x autogérés.
E-MapReduce HBase.
ApsaraDB for HBase Standard Edition, ApsaraDB for HBase Performance-enhanced Edition et Lindorm.
Limites
La fonctionnalité d'archivage incrémentiel repose sur les journaux HBase. Par conséquent, vous ne pouvez pas exporter les données importées via un chargement en masse (bulk loading).
Cycle de vie des journaux
Après avoir activé l'archivage, si les données ne sont pas consommées, les journaux sont conservés par défaut pendant 48 heures. Au-delà de ce délai, le système annule automatiquement l'abonnement et supprime les données conservées.
La consommation des données peut échouer si le cluster LTS est libéré avant la fin de la tâche ou si la tâche de synchronisation est suspendue.
Soumettre une tâche d'archivage
Dans la console LTS, accédez à Lindorm/HBase Export > Incremental archive to MaxCompute dans le volet de navigation de gauche.
-
Cliquez sur Create Task. Sur la page Incremental archive to MaxCompute, configurez les paramètres requis. Sélectionnez les champs Source Cluster et Destination Cluster, puis spécifiez le mappage des tables dans Table Mapping. Cliquez sur Parameter Description pour obtenir des détails, tels que la définition de
tableModesurwideTable. Vous pouvez également fournir un Task Name (facultatif) et définir les Advanced Configurations. Avant de soumettre la tâche, confirmez que la période de conservation des journaux (hbase.master.logcleaner.ttl) du cluster source est suffisante pour éviter l'échec de la tâche. Une fois la configuration terminée, cliquez sur Create. La configuration de cet exemple archive les données en temps réel depuis la table HBasewal-testvers MaxCompute.Les colonnes à archiver sont
cf1:a,cf1:b,cf1:cetcf1:d.mergeIntervalspécifie l'intervalle d'archivage en millisecondes. La valeur par défaut est86400000, soit un jour.mergeStartAtspécifie l'heure de début de l'opération de fusion au formatyyyyMMddHHmmss. Par exemple, la valeur20190930000000indique que l'opération commence le 30 septembre 2019 à 00:00:00. Vous pouvez spécifier une heure passée.
Après avoir soumis la tâche d'archivage, vous pouvez surveiller l'état du workflow sur la page des détails de la tâche. Cette page comporte trois sections. La section Table Creation Details affiche l'état de création de la table. Un statut
SUCCEEDEDindique que la table a été créée. La section Real-time Synchronization Channel affiche l'état du canal (par exemple,RUNNING), la latence de synchronisation et le point de contrôle (offset) de la synchronisation des journaux. La section Table Merge affiche l'état (par exemple,RUNNING) et la progression (par exemple,47.50%) des tâches de fusion. Une fois la fusion terminée, vous pouvez interroger la dernière partition dans MaxCompute.Connectez-vous à MaxCompute pour interroger les données archivées. Après la fin de la fusion, exécutez l'instruction
SELECT * FROM wal_test WHERE pt = 'xxxxxx'dans MaxCompute pour interroger les données archivées. Le résultat inclut des colonnes telles que rowkey, cf1_string, cf1_long, cf1_boolean, cf1_short, cf1_bigdecimal, cf1_double, cf1_float, cf1_null et pt. Cela confirme que la synchronisation des données de HBase vers MaxCompute a réussi.
Paramètres
La table exportée est spécifiée selon le format suivant :
hbaseTable/odpsTable {"cols": ["cf1:a|string", "cf1:b|int", "cf1:c|long", "cf1:d|short","cf1:e|decimal", "cf1:f|double","cf1:g|float","cf1:h|boolean","cf1:i"], "mergeInterval": 86400000, "mergeStartAt": "20191008100547"}
hbaseTable/odpsTable {"cols": ["cf1:a", "cf1:b", "cf1:c"], "mergeStartAt": "20191008000000"}
hbaseTable {"mergeEnabled": false} // Disables the merge operation.
L'expression de mappage de table se compose de trois parties : {{hbaseTable}}, {{odpsTable}} et {{tbConf}}. {{hbaseTable}} spécifie la table HBase source. {{odpsTable}} est facultatif et spécifie le nom de la table de destination. Par défaut, le nom est identique à celui de la table HBase. Notez que MaxCompute convertit les caractères non pris en charge, tels que . et -, dans les noms de table en _. {{tbConf}} spécifie le comportement d'archivage pour la table. Le tableau suivant décrit les paramètres pris en charge par {{tbConf}}.
|
Paramètre |
Description |
Exemple |
|
cols |
Spécifie les colonnes et leurs types de données à exporter. Par défaut, les données sont converties au format |
"cols": ["cf1:a", "cf1:b", "cf1:c"] |
|
mergeEnabled |
Indique s'il faut convertir la table clé-valeur (KV) en table large. La valeur par défaut est |
"mergeEnabled": false |
|
mergeStartAt |
L'heure de début de l'opération de fusion. Le format est |
"mergeStartAt": "20191008000000" |
|
mergeInterval |
L'intervalle pour l'opération de fusion, en millisecondes. La valeur par défaut est |
"mergeInterval": 86400000 |