如何创建从OData到Azure DocumentDB的定期数据拷贝
我试图每天将OData查询返回的所有数据定期复制到documentDB集合中 使用复制向导可以很好地进行复制,这对于简单任务来说是一个非常好的选择。谢谢 但对我不起作用的是:副本每次只添加数据,我无法通过documentDB接收器“预删除”集合中的数据(与SQL接收器相比,SQL接收器具有sqlWriterCleanupScript,我可以将其设置为类似于“表”中的delete*) 我知道我可以创建Azure批处理并执行我需要的操作,但在这一点上,我不确定是否最好执行一个函数并放弃Azure数据工厂(ADF)来执行此移动。我使用ADF在prem SQL上进行复制,因为它有编写器清理脚本 在这一点上,我只想使用DocumentDB,但鉴于我的数据工作方式,我看不到一种方法可以做到这一点 以下是我的管道:如何创建从OData到Azure DocumentDB的定期数据拷贝,azure,azure-cosmosdb,azure-data-factory,Azure,Azure Cosmosdb,Azure Data Factory,我试图每天将OData查询返回的所有数据定期复制到documentDB集合中 使用复制向导可以很好地进行复制,这对于简单任务来说是一个非常好的选择。谢谢 但对我不起作用的是:副本每次只添加数据,我无法通过documentDB接收器“预删除”集合中的数据(与SQL接收器相比,SQL接收器具有sqlWriterCleanupScript,我可以将其设置为类似于“表”中的delete*) 我知道我可以创建Azure批处理并执行我需要的操作,但在这一点上,我不确定是否最好执行一个函数并放弃Azure数据
{
"name": "R-------ProjectToDocDB",
"properties": {
"activities": [
{
"type": "Copy",
"typeProperties": {
"source": {
"type": "RelationalSource",
"query": " "
},
"sink": {
"type": "DocumentDbCollectionSink",
"nestingSeparator": ".",
"writeBatchSize": 0,
"writeBatchTimeout": "00:00:00"
/// this is where a cleanup script would be great.
},
"translator": {
"type": "TabularTranslator",
"columnMappings": "ProjectId:ProjectId,.....:CostClassification"
}
},
"inputs": [
{
"name": "InputDataset-shc"
}
],
"outputs": [
{
"name": "OutputDataset-shc"
}
],
"policy": {
"timeout": "1.00:00:00",
"concurrency": 1,
"executionPriorityOrder": "NewestFirst",
"style": "StartOfInterval",
"retry": 3,
"longRetry": 0,
"longRetryInterval": "00:00:00"
},
"scheduler": {
"frequency": "Day",
"interval": 1
},
"name": "Activity-0-_Custom query_->---Project"
}
],
"start": "2017-04-26T20:13:27.683Z",
"end": "2099-12-31T05:00:00Z",
"isPaused": false,
"hubName": "r-----datafactory01_hub",
"pipelineMode": "Scheduled"
}
}
也许管道中有一个更新在SQL输出和DocumentDB之间创建奇偶校验。您可以使用一个运行在计时器触发器上的逻辑应用程序 Azure Data Factory今天不支持DocDB的清理脚本。这是我们积压的东西。如果您能为E2E场景多描述一点,可以帮助我们确定优先级。例如,为什么附加到同一集合不起作用?这是因为无法在每次运行后识别增量记录吗?对于清理要求,将始终是删除*或它可能是基于时间戳等。谢谢。在支持清理脚本之前,自定义活动是现在解决问题的唯一方法,对不起 在我的数据管道中已经有几个“希望”调度的实例。我知道我可以在计时器上使用逻辑应用程序或函数,但我们在这里寻找的是一个可预测的管道,它不会要求多件事情“碰巧工作”。谢谢。要回答有关该场景的问题,请考虑与复制到SQL DB的场景相同的场景,并尝试与之相关。SQL db output允许一个清理脚本,它标识一些宏,如时间窗口。JSON有SQL清理脚本,我的具体要求是今天从“表”中删除*,但正如您所提到的,它可能在将来基于windows的时间。我的输入数据没有时间戳,所以我只能做有限的事情。我希望这有帮助