如何在通过 Azure 数据工厂将数据从 Azure Cosmos DB 复制到 ADLS Gen 2 时设置输出路径

How to set up output path while copying data from Azure Cosmos DB to ADLS Gen 2 via Azure Data Factory

我有以下格式的 cosmos DB 集合:

{
    "deviceid": "xxx",
    "partitionKey": "key1",
    .....
    "_ts": 1544583745
}

我正在使用 Azure 数据工厂将数据从 Cosmos DB 复制到 ADLS Gen 2。如果我使用副本 activity 进行复制,则非常简单。然而,我主要关心的是 ADLS Gen 2 中的输出路径。我们的要求声明我们需要具有特定格式的输出路径。这是要求的示例:

outerfolder/version/code/deviceid/year/month/day

现在由于 deviceid、年、月、日都在负载本身中,我找不到使用它们的方法,除了创建查找 activity 并使用查找的输出 activity 在副本 activity.

这就是我使用数据集 属性:

设置输出文件夹的方式

我在 Cosmos DB 上使用 SQL API 来查询数据。

有没有更好的方法可以做到这一点?

我认为你的方法可行,但不是最干净的。我要做的是在管道内为每个变量创建一个不同的变量:版本、代码、deviceid 等。然后,在查找之后您可以分配变量,最后执行复制 activity 引用管道变量.

它可能看起来有点多余,但想想某人(或 2 年后的你)必须修改管道,如果你不在(或忘记了),这种方式可以清楚地说明它是如何工作的,以及您应该修改的内容。

希望对您有所帮助!!