Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用azure data factory v2(adf)在文件夹中查找最新文件_Azure_Azure Data Factory_Azure Data Factory 2 - Fatal编程技术网

如何使用azure data factory v2(adf)在文件夹中查找最新文件

如何使用azure data factory v2(adf)在文件夹中查找最新文件,azure,azure-data-factory,azure-data-factory-2,Azure,Azure Data Factory,Azure Data Factory 2,我正在尝试使用azure data factory v2读取最新的blob文件(csv)。文件名还包含日期(YYYY-MM-DD MM:ss abcd.csv)。我需要从当前的最新文件中读取数据并加载到表存储器中。请您帮助我如何使用ADF阅读最新文件,谢谢您的提问。您选择的日期格式具有字典排序与时间排序相匹配的有用功能。这意味着,一旦您有了一个blob列表,就只需要提取日期并进行比较了 如果您有一个非常大的blob列表,那么这可能不实用。在这种情况下,无论何时编写新blob,都要在某个地方跟踪它

我正在尝试使用azure data factory v2读取最新的blob文件(csv)。文件名还包含日期(YYYY-MM-DD MM:ss abcd.csv)。我需要从当前的最新文件中读取数据并加载到表存储器中。请您帮助我如何使用ADF阅读最新文件,谢谢您的提问。您选择的日期格式具有字典排序与时间排序相匹配的有用功能。这意味着,一旦您有了一个blob列表,就只需要提取日期并进行比较了

如果您有一个非常大的blob列表,那么这可能不实用。在这种情况下,无论何时编写新blob,都要在某个地方跟踪它,比如说“maxBlobName.txt”,并让管道读取它以获取最近的文件名

下面是一些用于比较blob名称的日期部分的示例代码。为了适应您的需要,您需要使用GetMetadata活动获取blob名称,并使用一些字符串函数仅提取名称的日期部分进行比较

{
"name": "pipeline9",
"properties": {
    "activities": [
        {
            "name": "ForEach1",
            "type": "ForEach",
            "dependsOn": [
                {
                    "activity": "init array",
                    "dependencyConditions": [
                        "Succeeded"
                    ]
                }
            ],
            "typeProperties": {
                "items": {
                    "value": "@variables('list')",
                    "type": "Expression"
                },
                "isSequential": true,
                "activities": [
                    {
                        "name": "If Condition1",
                        "type": "IfCondition",
                        "typeProperties": {
                            "expression": {
                                "value": "@greater(item(),variables('max'))",
                                "type": "Expression"
                            },
                            "ifTrueActivities": [
                                {
                                    "name": "write new max",
                                    "type": "SetVariable",
                                    "typeProperties": {
                                        "variableName": "max",
                                        "value": {
                                            "value": "@item()",
                                            "type": "Expression"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "init array",
            "type": "SetVariable",
            "typeProperties": {
                "variableName": "list",
                "value": {
                    "value": "@split(pipeline().parameters.input,',')",
                    "type": "Expression"
                }
            }
        }
    ],
    "parameters": {
        "input": {
            "type": "string",
            "defaultValue": "'2019-07-25','2018-06-13','2019'-06-24','2019-08-08','2019-06-23'"
        }
    },
    "variables": {
        "max": {
            "type": "String",
            "defaultValue": "0001-01-01"
        },
        "list": {
            "type": "Array"
        }
    }
}

}你好,法兹·拉赫曼,谢谢你的提问。您选择的日期格式具有字典排序与时间排序相匹配的有用功能。这意味着,一旦您有了一个blob列表,就只需要提取日期并进行比较了

如果您有一个非常大的blob列表,那么这可能不实用。在这种情况下,无论何时编写新blob,都要在某个地方跟踪它,比如说“maxBlobName.txt”,并让管道读取它以获取最近的文件名

下面是一些用于比较blob名称的日期部分的示例代码。为了适应您的需要,您需要使用GetMetadata活动获取blob名称,并使用一些字符串函数仅提取名称的日期部分进行比较

{
"name": "pipeline9",
"properties": {
    "activities": [
        {
            "name": "ForEach1",
            "type": "ForEach",
            "dependsOn": [
                {
                    "activity": "init array",
                    "dependencyConditions": [
                        "Succeeded"
                    ]
                }
            ],
            "typeProperties": {
                "items": {
                    "value": "@variables('list')",
                    "type": "Expression"
                },
                "isSequential": true,
                "activities": [
                    {
                        "name": "If Condition1",
                        "type": "IfCondition",
                        "typeProperties": {
                            "expression": {
                                "value": "@greater(item(),variables('max'))",
                                "type": "Expression"
                            },
                            "ifTrueActivities": [
                                {
                                    "name": "write new max",
                                    "type": "SetVariable",
                                    "typeProperties": {
                                        "variableName": "max",
                                        "value": {
                                            "value": "@item()",
                                            "type": "Expression"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "init array",
            "type": "SetVariable",
            "typeProperties": {
                "variableName": "list",
                "value": {
                    "value": "@split(pipeline().parameters.input,',')",
                    "type": "Expression"
                }
            }
        }
    ],
    "parameters": {
        "input": {
            "type": "string",
            "defaultValue": "'2019-07-25','2018-06-13','2019'-06-24','2019-08-08','2019-06-23'"
        }
    },
    "variables": {
        "max": {
            "type": "String",
            "defaultValue": "0001-01-01"
        },
        "list": {
            "type": "Array"
        }
    }
}

}

我想,您可能已经创建了用于保存输入文件的blob存储。要获取要执行的最新文件,最简单的解决方案是创建另一个文件夹,比如说
Success
,并将执行的文件移动到
Success
文件夹。因此,一旦文件被执行,并且任何新文件被上传到
input
文件夹中,该文件夹将始终为空,该文件夹将自动拾取以进行处理。我猜,您可能已经创建了用于保存输入文件的blob存储。要获取要执行的最新文件,最简单的解决方案是创建另一个文件夹,比如说
Success
,并将执行的文件移动到
Success
文件夹。因此,一旦文件被执行,并且任何新文件被上传到
input
文件夹(该文件夹将自动拾取以进行处理),那么
input
文件夹将始终为空。