Azure Data Factory - Изменение имени файла путем удаления даты и времени - PullRequest
1 голос
/ 17 марта 2020

У меня есть конвейерная установка, которая получает список имен файлов из BLOB-объекта, устанавливает для этого переменную ARAY, а затем просто копирует в новое место с новым именем. Например, файл в может быть scottdatetest_01_01_20.txt, и мне нужен scottdatetest.txt.

Мой JSOn выглядит следующим образом, и вывод показывает, что он сделал то, что я хотел, однако файл поступил в приемник с тем же имя в качестве источника. Чего мне не хватает, чтобы заставить его написать имя, отображаемое в выводе?

       "typeProperties": {
                "source": {
                    "type": "DelimitedTextSource",
                    "storeSettings": {
                        "type": "AzureBlobStorageReadSettings",
                        "recursive": true,
                        "wildcardFileName": "*",
                        "enablePartitionDiscovery": false
                    },
                    "formatSettings": {
                        "type": "DelimitedTextReadSettings"
                    }
                },
                "sink": {
                    "type": "DelimitedTextSink",
                    "storeSettings": {
                        "type": "AzureBlobStorageWriteSettings",
                        "copyBehavior": {
                            "value": "@substring(string(variables('Filenames')),0,indexof(string(variables('Filenames')),'_'))",
                            "type": "Expression"
                        }
                    },
                    "formatSettings": {
                        "type": "DelimitedTextWriteSettings",
                        "quoteAllText": true,
                        "fileExtension": ".txt"
                    }
                },
                "enableStaging": false
            },
            "inputs": [
                {
                    "referenceName": "DelimitedText1",
                    "type": "DatasetReference"
                }
            ],
            "outputs": [
                {
                    "referenceName": "DelimitedText2",
                    "type": "DatasetReference"
                }
            ]
        },

OUTPUT from Debug:

},
"sink": {
    "type": "DelimitedTextSink",
    "storeSettings": {
        "type": "AzureBlobStorageWriteSettings",
        "copyBehavior": "[{\"name\":\"scottdatetest"
    },
    "formatSettings": {
        "type": "DelimitedTextWriteSettings",
        "quoteAllText": true,
        "fileExtension": ".txt"
    }

Также я хочу запустить это для нескольких файлов, я попытался и получил следующий вывод, который выглядит как попытка записать его в 1 файл, а не в папку:

{"source": {"type": "DelimitedTextSource", "storeSettings": { "type": "AzureBlobStorageReadSettings", "recursive": true, "enablePartitionDiscovery": false, "prefix": "[{\ \ name \": \ "BUPAUKStandardInvoicePartnerConnectorExpense_1252_01102020.csv \", \ "type \": \ "type \" \ "}, {\" name \ ": \" BUPAUKStandardInvoicePartnerConnectorMiscFee_1254_01102020.csv \ ", \" type \ ": \" File \ "}]"}, "formatSettings": {"type": "DelimitedTextReadSettings"}}, "раковина": {"тип": "DelimitedTextSink", "storeSettings": {"type": "AzureBlobStorageWriteSettings", "copyBehavior": "[{\ \ name \": \ "BUPAUKStandardInvoicePartnerConnectorExpense.csv"} "format" : {"type": "DelimitedTextWriteSettings", "quoteAllText": true, "fileEx tension ":" .csv "}}," enableStaging ": false}

...