Cette fonctionnalité n'est plus disponible pour les instances Lindorm Tunnel Service (LTS) achetées après le 16 juin 2023. Si votre instance LTS a été achetée avant cette date, vous pouvez toujours l'utiliser.
Utilisez LTS pour exporter un instantané complet de vos données HBase vers MaxCompute à des fins d'archivage ou d'analyse à grande échelle. LTS prend en charge deux modes de sortie : le mode KV et le mode table large. Choisissez le schéma qui correspond le mieux à votre charge de travail en aval.
Versions prises en charge
Les sources HBase suivantes sont prises en charge :
HBase V1.x et V2.x auto-gérés
E-MapReduce HBase
ApsaraDB for HBase Standard Edition
ApsaraDB for HBase Performance-enhanced Edition (mode cluster)
ApsaraDB for Lindorm (Lindorm)
Prérequis
Avant de commencer, assurez-vous d'avoir :
Acheté une instance LTS, configuré un nom d'utilisateur et un mot de passe pour l'interface web LTS, et effectué la connexion. Pour plus de détails, consultez Activer LTS et se connecter à l'interface web LTS.
Ajouté une source de données HBase
Ajouté une source de données MaxCompute
Choisir un mode d'exportation
LTS propose deux modes pour exporter les données HBase vers MaxCompute. Examinez le tableau comparatif ci-dessous avant de créer une tâche.
| Mode KV | Mode table large | |
|---|---|---|
| Schéma de sortie | Une ligne par paire clé-valeur (KV) — inclut rowkey, version, type d'opération, famille de colonnes, qualificateur et valeur | Une ligne par ligne HBase — chaque colonne spécifiée devient une colonne MaxCompute |
| Sélection des colonnes | Non requise | Requise — spécifiez explicitement les colonnes |
| Contrôle des types de données | Valeurs exportées au format HexString | Spécifiez les types par colonne (string, int, long, short, decimal, double, float, boolean) ; HexString par défaut |
| Cas d'utilisation idéal | Conservation de l'historique complet des mutations, cas d'usage de type CDC | Analyses structurées où chaque colonne correspond à un type connu |
Créer une tâche d'exportation
Dans l'interface web LTS, accédez à Data Export > Archive Full Data to MaxCompute dans le volet de navigation de gauche.
Sur la page Lindorm/HBase archive to MaxCompute, cliquez sur create new job.
-
Sélectionnez le cluster source et le cluster de destination, saisissez la table à migrer, puis cliquez sur Create.
La page de configuration contient également une zone de texte Task Name (optional) et une zone de texte Advanced Configuration. Le champ Table Mapping prend en charge les formats suivants :
table1 {"tableMode": "KVTable"}hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a|string", "f1:b|int", "f1:c|boolean"]}Vous pouvez ajouter les paramètres
startKey,endKey,startTsetendTspour limiter la portée de la migration.
Pour plus de détails sur le format, cliquez sur le lien Parameter Description.
Cliquez sur le nom de la tâche pour surveiller la progression de la migration.
-
Une fois la tâche terminée, connectez-vous à la console MaxCompute pour interroger les données exportées.
Dans la console de développement de données MaxCompute, exécutez la requête
SELECT * from hbase2odps.bdsTest1;. Le résultat renvoie des données avec quatre colonnes : A (rowkey), B (cf1_string), C (cf1_int) et D (cf1_double), ce qui indique que les données HBase ont été migrées avec succès vers MaxCompute.
Configurer les paramètres d'exportation
La tâche accepte les paramètres sous forme d'objet JSON après le mappage de table. La syntaxe de base est la suivante :
<hbaseTable>[/<odpsTable>] <json-parameters>
<hbaseTable>: nom de la table HBase source.<odpsTable>(facultatif) : nom de la table MaxCompute cible. Si omis, le nom de la table HBase est utilisé par défaut, les traits d'union (-) et les points (.) étant remplacés par des underscores (_).
Mode KV
tablexxx {"tableMode": "KVTable"}
Chaque ligne exportée représente une paire KV dans HBase. La table MaxCompute contient les colonnes suivantes :
| Colonne | Description |
|---|---|
rowkey |
Rowkey de la paire KV |
version |
Version de la paire KV |
op |
Type d'opération. Valeurs valides : Put, DeleteFamily, DeleteColumn |
family |
Famille de colonnes |
qualifier |
Nom de la colonne |
value |
Valeur, convertie au format HexString |
Mode table large
hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["cf1:string|string", "cf1:int|int", "cf1:double|double"]}
Spécifiez les colonnes à exporter dans le tableau cols. Chaque entrée utilise le format <family>:<qualifier> ou <family>:<qualifier>|<type>. Si vous omettez le type, les valeurs sont exportées au format HexString par défaut.
Types pris en charge : string, int, long, short, decimal, double, float, boolean
Exemples :
Exporter des colonnes avec l'encodage HexString par défaut :
hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a", "f1:b", "f1:c"]}
Exporter des colonnes avec conversion de type explicite :
hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a|string", "f1:b|boolean"]}
Filtrer par plage de rowkeys ou plage horaire
Ajoutez startKey, endKey, startTs ou endTs aux paramètres de la tâche pour limiter les données exportées. Ces filtres sont pris en charge par le mode KV et le mode table large.
table1 {"startKey": "xxx", "endKey": "zzz", "startTs": "20191001153000", "endTs": "20191001233000"}
| Paramètre | Description | Format |
|---|---|---|
startKey |
Début de la plage de rowkeys | Chaîne |
endKey |
Fin de la plage de rowkeys | Chaîne |
startTs |
Début de la plage horaire | yyyyMMddHHmmss |
endTs |
Fin de la plage horaire | yyyyMMddHHmmss |
Exemple complet avec tous les filtres appliqués en mode table large :
hbaseTable/odpsTable {"tableMode": "wideTable", "cols":["f1:a|string", "f1:b|boolean"], "startTs": "20190101000000", "endTs": "20200101000000", "startKey": "a", "endKey": "z"}
Exporter vers une table MaxCompute portant un nom différent
Par défaut, le nom de la table MaxCompute correspond au nom de la table HBase, les traits d'union (-) et les points (.) étant remplacés par des underscores (_). Pour utiliser un nom différent, spécifiez explicitement odpsTable :
hbaseTable/odpsTable {"tableMode": "KVTable"}
Remplacez hbaseTable par le nom de la table HBase source et odpsTable par le nom de la table MaxCompute cible.