Фабрика данных кодирует UTF-8 с спецификацией в Datalake - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть конвейер в фабрике данных Azure, который выполняет вызов API REST и сохраняет его в объекте json в Azure Data Lake Gen2. Он всегда кодирует файл как UTF-8 с спецификацией. Это вызывает проблемы в моем приложении логики, мне нужно, чтобы файл был закодирован как UTF-8 без спецификации.

При выборе кодировки в наборе данных в фабрике данных я могу выбирать между UTF-8 (по умолчанию) и UTF-8. Обе эти опции сохраняют файл json как UTF-8 с BOM.

Я пытался Base64ToString () преобразовать UTF-8 с файлом BOM в строку, но это по-прежнему не позволяет мне анализироватьJSON. Я предполагаю, что есть скрытые символы спецификации?

Это код набора данных озера данных:

 {
    "name": "Datalake",
    "properties": {
        "linkedServiceName": {
            "referenceName": "Datalake",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "datasetfolder": {
                "type": "string",
                "defaultValue": "@pipeline().parameters.folder"
            }
        },
        "annotations": [],
        "type": "Json",
        "typeProperties": {
            "location": {
                "type": "AzureBlobFSLocation",
                "fileName": {
                    "value": "@concat(formatDateTime(utcnow()), '.json')",
                    "type": "Expression"
                },
                "folderPath": {
                    "value": "@concat(formatDateTime(utcNow(),'yyyy-MM-dd'))",
                    "type": "Expression"
                },
                "fileSystem": {
                    "value": "@dataset().datasetfolder",
                    "type": "Expression"
                }
            }
        }
    },
    "type": "Microsoft.DataFactory/factories/datasets"
}

Это код конвейера:

    "name": "2 - Microsoft365_AuditData_to_Datalake",
    "properties": {
        "activities": [
            {
                "name": "Copy Data1",
                "type": "Copy",
                "dependsOn": [],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "source": {
                        "type": "RestSource",
                        "httpRequestTimeout": "00:01:40",
                        "requestInterval": "00.00:00:00.010",
                        "requestMethod": "GET",
                        "additionalHeaders": {
                            "Content-Type": "application/json; charset=utf-8"
                        }
                    },
                    "sink": {
                        "type": "JsonSink",
                        "storeSettings": {
                            "type": "AzureBlobFSWriteSettings",
                            "copyBehavior": "FlattenHierarchy"
                        },
                        "formatSettings": {
                            "type": "JsonWriteSettings",
                            "quoteAllText": true,
                            "filePattern": "arrayOfObjects"
                        }
                    },
                    "enableStaging": false
                },
                "inputs": [
                    {
                        "referenceName": "REST_Microsoft0365_Audit",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "Datalake",
                        "type": "DatasetReference",
                        "parameters": {
                            "datasetfolder": "@pipeline().parameters.folder"
                        }
                    }
                ]
            }
        ],
        "parameters": {
            "folder": {
                "type": "string",
                "defaultValue": "auditgeneral"
            }
        },
        "annotations": []
    },
    "type": "Microsoft.DataFactory/factories/pipelines"
}```

I expect the file to be encoded as UTF-8 Without BOM!
...