0

我的MongoDB数据库中有 120 万条记录。我想以编程方式将所有这些数据存储在HBase中。基本上,我尝试将每个检索到的记录放到 HBase 循环中。操作完成后,我在 HBase 上只得到了 39912条记录。

这是我尝试过的:

Configuration config = HBaseConfiguration.create();
String tableName = "storedtweet";
String familyName = "msg";
String qualifierName = "msg";
HTable table = new HTable(config, tableName);
// using Spring Data MongoDB to interact with MongoDB
List < StoredTweet > storedTweetList = mongoDAO.getMongoTemplate().findAll(StoredTweet.class);
for (StoredTweet storedTweet: storedTweetList) {
    Put p = new Put(Bytes.toBytes(storedTweet.getTweetId()));
    p.add(Bytes.toBytes(familyName), Bytes.toBytes(qualifierName), Bytes.toBytes(storedTweet.getMsg()));
    table.put(p);
    table.flushCommits();
}
4

1 回答 1

2

如果存在某个行键并且您再次放置它,HBase Put 将覆盖前者。我认为您的数据中有一些记录具有相同的推文 ID(您将其设置为行键)。这就是为什么有些记录会消失的原因。

于 2013-08-27T09:51:39.373 回答