7
votes

Récupérer l'horodatage de la rangée HBASE

Utilisation de l'API HBASE (GET / METT) ou HBQL API, est-il possible de récupérer l'horodatage d'une colonne particulière?


0 commentaires

4 Réponses :


13
votes

Assumer que votre client est configuré et que vous avez une configuration de table. Faire un get retourne un résultat

result_foo.raw()[0].getTimestamp()


2 commentaires

Est-ce que [0] indique la première colonne de HBASE? Y a-t-il un moyen d'atteindre l'horodatage pour un nom de colonne spécifié particulier?


Il a été assez long que je ne me souviens de détails de ces documents. Les choses ont probablement changé depuis lors. La meilleure chose à faire est de reposer une console pour votre configuration HBASE et de fouiller.



0
votes
result_foo.rawCells()(0).getTimestamp
is a good style

1 commentaires

toujours besoin d'accolades carrés autour de l'indice, par exemple RAWCELLS () [0]



1
votes

Je pense que le suivi sera meilleur:

public byte[] getValue(byte[] family, byte[] qualifier) {
        KeyValue kv = this.getColumnLatest(family, qualifier);
        return kv == null ? null : kv.getValue();
    }


0 commentaires

1
votes

@ La réponse de Codingfoo suppose que tous les horodatages sont les mêmes pour toutes les cellules, mais la question de OP était pour une colonne spécifique. À cet égard, similaire à la réponse de @peibin Wang, je proposerais ce qui suit si vous souhaitez que le dernier horodatage de votre colonne:

Utilisez le GetColumnLatestCell Méthode sur votre objet de résultat, puis appelez le gettiMestamp méthode comme: xxx

Si vous souhaitez accéder à un horodatage spécifique, vous pouvez utiliser le getcolumncells qui retourne toutes les cellules pour une colonne spécifiée, mais puis Vous devrez choisir entre les cellules avec un get (int index) , puis appelle gettiMestamp ()


0 commentaires