如何在通过 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 年后的你)必须修改管道,如果你不在(或忘记了),这种方式可以清楚地说明它是如何工作的,以及您应该修改的内容。
希望对您有所帮助!!
我有以下格式的 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 年后的你)必须修改管道,如果你不在(或忘记了),这种方式可以清楚地说明它是如何工作的,以及您应该修改的内容。
希望对您有所帮助!!