2017-07-31 2 views
0

J'ai un fichier journal avec des documents similaires à cegénérer automatiquement row_key dans HBase

11,xxx ,dav,300000,mumbai 
12,YYY ,IIT,800000,bang 

Quand j'importer à Hbase en utilisant l'importation TSV ie ~

ImportTsv -Dimporttsv.separator=, 
-Dimporttsv.columns="HBASE_ROW_KEY,id,name,school,sal,place" 
table_name <file_loc> 

résultats:

hbase> scan table_name 
11      column=cf:id, timestamp=1501438942080, value=xxx 
11      column=cf:name, timestamp=1501438942080, value=dav 
11      column=cf:sal, timestamp=1501438942080, value=mumbai 
11      column=cf:school, timestamp=1501438942080,value=300000 
12      column=cf:id, timestamp=1501438942080, value= yyy 
12      column=cf:name, timestamp=1501438942080, value=IIT 

Comme l'ID de valeur est maintenant ROW pour HBASE, colonne: id assorti d'une valeur erronée xxx .. et ainsi de suite sur les colonnes suivantes, comment puis-je (auto générer un HBASE_ROW_KEY) afin que mes colonnes ne soient pas remplacées? Comment puis-je résoudre ce problème?

Répondre

0

A ce jour, il n'est pas prévu de créer des clés de ligne composites basées sur les valeurs de colonnes. Il se peut que vous ayez prétraité votre fichier TSV et créé la clé composite, puis chargez-la dans HBase en utilisant la clé composite nouvellement créée comme rowKey.

Vérifiez le JIRA élevé pour la même https://issues.apache.org/jira/plugins/servlet/mobile#issue/HBASE-5339

+0

prétraiter chaque fichier tsv avant de le charger dans hbase .... ?? Toute autre solution pour créer une ligne générée automatiquement dans hbase de sorte que l'importation de données dans une table à partir d'un fichier externe soit directement chargée dans ses colonnes respectives. –

0

Je ne avez pas besoin d'ajouter la (colonne -> ID) lors de la création de la table de HBase, seules les colonnes qui ne doivent pas être déclarés PRIMARY_KEY devraient être donnés en shell pour créer la table . Maintenant, importer tsv importera des colonnes avec une valeur particulière dans chaque ROW_KEY.