Ftp 使用Azure Data Factory(不带MapReduce)将存档导入并解压缩到Blob存储

Ftp 使用Azure Data Factory(不带MapReduce)将存档导入并解压缩到Blob存储,ftp,zip,compression,azure-data-factory,azure-blob-storage,Ftp,Zip,Compression,Azure Data Factory,Azure Blob Storage,我必须将各种zip文件从ftp服务器导入一些Azure SQL表。每个zip文件最多包含10个具有不同结构的文本(csv)文件,即第一个文本文件中的行的格式相同 “1 |星期一| 2017-03-20 | 345671” 第二个文本文件中的行的格式如下: “abc | 345894 | xyz | 2 | yyy | true | 3” 我不想使用MapReduce(或自定义活动),因为它既昂贵又缓慢(Microsoft Azure支持建议首先使用HDInsight(按需)MapReduce活动

我必须将各种zip文件从ftp服务器导入一些Azure SQL表。每个zip文件最多包含10个具有不同结构的文本(csv)文件,即第一个文本文件中的行的格式相同

“1 |星期一| 2017-03-20 | 345671”

第二个文本文件中的行的格式如下:

“abc | 345894 | xyz | 2 | yyy | true | 3”


我不想使用MapReduce(或自定义活动),因为它既昂贵又缓慢(Microsoft Azure支持建议首先使用HDInsight(按需)MapReduce活动来解压缩文件)。

为我定义必要的链接服务,即FTP链接服务,然后使用FileShare类型的数据集从源获取文件(FTP服务器)。在此数据集中,断言文件已压缩:

{
    "name": "myFTPFileInput",
    "properties": {
    "published": false,
    "type": "FileShare",
    "linkedServiceName": "myFTPLinkedService",
    "typeProperties": {
        "fileName": "xyz20170316.zip",
        "useBinaryTransfer": "true",
        "folderPath": "/Products/xyzProducts",
        "compression": {
            "type": "ZipDeflate",
            "level": "Optimal"
        }
    },
    "availability": {
        "frequency": "Day",
        "interval": 15
    },
    "external": true,
    "policy": {}
    }
}
使用Blobsink将文件写入blob存储:

{
    "name": "myAzureBlobOutput",
    "properties": {
    "published": false,
    "type": "AzureBlob",
    "linkedServiceName": "myAzureStorageLinkedService",
    "typeProperties": {
        "folderPath": "mytest/ftp/xyz/{Year}/{Month}",
        "format": {
            "type": "TextFormat",
            "rowDelimiter": "\n",
            "columnDelimiter": "|"
        },
        "partitionedBy": [
            {
                "name": "Year",
                "value": {
                    "type": "DateTime",
                    "date": "SliceStart",
                    "format": "yyyy"
                }
            },
            {
                "name": "Month",
                "value": {
                    "type": "DateTime",
                    "date": "SliceStart",
                    "format": "MM"
                }
            }
        ]
    },
    "availability": {
        "frequency": "Day",
        "interval": 15
    }
  }
}
数据将被解压并作为文本写入指定的文件夹。从那里我可以使用标准的ADF复制活动将每个文件导入相应的Azure SQL表

希望这有帮助