如何通过使用Azure Data Factory中的复制活动将常量值更新到sql表字段中

时间:2019-08-15 20:06:55

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

我有一个SQL表,其中包含不同的字段以及Load_date。 我有CSV格式的数据,并将其存储在Blob存储中。现在的工作是使用复制活动通过azure数据工厂将数据从CSV复制到SQL表。在执行此活动时,我想动态填充Load_date字段,因为该字段在CSV中不可用。

2 个答案:

答案 0 :(得分:0)

除非您使用数据流,否则您不能这样做:https://docs.microsoft.com/en-us/azure/data-factory/data-flow-derived-column

如果数据流太昂贵,则可以先将数据插入表中,然后使用存储过程用getdate()或所需的任何数据填充此Load_date字段中的所有空值。

我将为您的SP的更新逻辑举例:

function ChangeQueryString ($add, $remove) {

    if (empty($_SERVER['QUERY_STRING'])){

        $final_url = $_SERVER['PHP_SELF']."?".$add;

    } else {

        $query_string_url_addition = $_SERVER['QUERY_STRING'].'&'.$add;

        parse_str($query_string_url_addition, $query_array);

        $final_url = $_SERVER['PHP_SELF']."?".http_build_query($query_array);

    }

    return $final_url;

}

然后在数据工厂中添加一个存储过程活动,该活动将在复制活动完成后运行。

希望这对您有帮助!

答案 1 :(得分:0)

如果“ Load_date”字段表示当前时间,则可以尝试使用以下方法为目标表中的该字段设置默认值:“ getdate()”,如下所示: enter image description here

因此,您无需考虑源CSV文件是否具有此字段,当在目标表中插入行时,该字段将自动填充为默认值。