【问题标题】:How to set up output path while copying data from Azure Cosmos DB to ADLS Gen 2 via Azure Data Factory如何在通过 Azure 数据工厂将数据从 Azure Cosmos DB 复制到 ADLS Gen 2 时设置输出路径
【发布时间】:2019-07-11 20:29:29
【问题描述】:

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

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

我正在使用 Azure 数据工厂将数据从 Cosmos DB 复制到 ADLS Gen 2。如果我使用复制活动进行复制,则非常简单。但是,我主要关心的是 ADLS Gen 2 中的输出路径。我们的要求规定我们需要具有特定格式的输出路径。以下是需求示例:

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

现在,由于 deviceid、年、月、日都在有效负载本身中,我找不到使用它们的方法,只能创建一个查找活动并在复制活动中使用查找活动的输出。

这就是我使用数据集属性设置输出文件夹的方式:

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

有没有更好的方法可以实现这一目标?

【问题讨论】:

    标签: azure azure-data-factory azure-data-factory-2


    【解决方案1】:

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

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

    希望这有帮助!

    【讨论】:

    • 谢谢。但是,每当我在变量下的名称下使用设置变量活动时,下拉列表中没有任何内容。我该如何设置?
    • 在使用 set 变量之前,您必须在管道中创建变量。只需在任何活动之外单击,然后在管道中创建变量。
    • 我还想问是否有办法避免使用查找活动并从复制活动本身获取变量。源查询使用 SQL API 并具有数据。我可以以某种方式直接使用它吗?
    • 我不认为你可以避免查找 :( 可能有一些外部的东西并将参数传递给管道,但你仍然会使用 API。
    猜你喜欢
    • 2020-10-02
    • 2020-11-20
    • 1970-01-01
    • 2022-01-16
    • 2021-05-01
    • 2021-05-01
    • 2021-10-13
    • 2019-04-20
    • 1970-01-01
    相关资源
    最近更新 更多