我想同步mongodb和hadoop,但是当我从mongodb中删除文档时,不能在hadoop中删除此文档。
我尝试使用mongo-hadoop和hive。这是hive查询:
CREATE EXTERNAL TABLE SubComponentSubmission
(
id STRING,
status INT,
providerId STRING,
dateCreated TIMESTAMP,
subComponentId STRING,
packageName STRING
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES('mongo.columns.mapping'=
'{"id":"_id", "status":"Status",
"providerId":"ProviderId",
"dateCreated":"DateCreated",
"subComponentId":"SubComponentPackage.SubComponentId",
"packageName":"SubComponentPackage.PackageName"}'
)
TBLPROPERTIES('mongo.uri'='mongodb://<host>:27017/<db name>.<collection name>');
此查询创建与同步mongodb集合同步的表。通过这个查询,mongo-hadoop也可以处理文件删除。
mongo-hadoop有没有选择,不处理文件删除? 或者,还有其他工具可以解决这个问题吗?
提前感谢。
答案 0 :(得分:1)
如果您直接查询mongo,就像您正在做的那样,是的,您将会看到mongo中发生的所有文档突变。这就是像这样查询mongo的全部要点。如果你想要你的mongo数据的快照视图,你需要做一些像mongodump这样的事情并将bson文件放在某个地方的磁盘上(比如HDFS)。否则,您将始终查询实时变异数据。