我想同步mongodb和hadoop,但是当我从mongodb中删除文档时,hadoop中不能删除这个文档。
我试过使用mongohadoop和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集合同步的表。通过这个查询,mongohadoop也可以处理文档删除。
MongoHadoop有没有任何选项,不处理文档删除?或者,有没有其他工具可以解决这个问题?
提前谢谢。
1条答案
按热度按时间jucafojl1#
如果您像现在这样直接查询mongo,是的,您将看到mongo中发生的所有文档突变。这就是为什么要这样质疑蒙哥。如果您想要mongo数据的快照视图,则需要执行mongodump之类的操作,并将bson文件放在磁盘上的某个位置(如hdfs)。否则,您将始终查询活动的、突变的数据。