1

我想同步mongodb和hadoop,但是当我从mongodb中删除文档时,这个文档一定不能在hadoop中删除。

我尝试使用 mongo-hadoop 和 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 是否有任何选项,不处理文档删除?或者,有没有其他工具可以解决这个问题?

提前致谢。

4

1 回答 1

1

如果您像正在做的那样直接查询 mongo,是的,您将看到 mongo 中发生的所有文档突变。这就是像这样查询 mongo 的全部意义所在。如果您想要 mongo 数据的快照视图,则需要执行 mongodump 之类的操作,并将 bson 文件放在磁盘上的某个位置(例如 HDFS)。否则,您将始终查询实时的变异数据。

于 2015-11-13T12:08:26.687 回答