Как найти последний файл в папке с помощью фабрики данных azure v2 (adf)

Я пытаюсь прочитать последний файл больших двоичных объектов (csv), используя фабрику данных azure v2. Имя файла также содержит дату (ГГГГ-ММ-ДД мм:сс-abcd.csv). Мне нужно прочитать данные из последнего файла и загрузить в хранилище таблиц. Не могли бы вы помочь мне с тем, как прочитать последний файл с помощью ADF

Я думаю, вы могли создать хранилище больших двоичных объектов для хранения входных файлов. Чтобы выполнить последний файл, самым простым решением было бы создать другую папку, скажем, Success, и переместить файл, который был выполнен, в папку Success. Таким образом, папка input всегда будет пустой, как только файл будет выполнен, и любой новый файл будет загружен в папку input, которая будет автоматически выбрана для обработки.

Vijay Dodamani 02.07.2019 13:34
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
1
3 414
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Привет Фаиз Рахман и спасибо за ваш вопрос. Выбранный формат даты имеет полезную функцию лексикографической сортировки, соответствующей хронологической сортировке. Это означает, что когда у вас есть список BLOB-объектов, достаточно извлечь дату и сравнить его.

Если у вас очень большой список больших двоичных объектов, это может оказаться нецелесообразным. В этом случае всякий раз, когда вы пишете новый большой двоичный объект, отслеживайте его где-нибудь, скажем, «maxBlobName.txt», и пусть конвейер читает его, чтобы получить имя самого последнего файла.

Ниже приведен пример кода для сравнения дат в именах больших двоичных объектов. Чтобы адаптироваться к вашим целям, вам потребуется использовать действие GetMetadata для получения имен больших двоичных объектов и некоторые строковые функции для извлечения только части даты имени для сравнения.

{
"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"
        }
    }
}

}

Другие вопросы по теме