如何可变地命名要写入Blob存储的Azure数据工厂文件?

时间:2016-10-31 11:16:46

标签: azure azure-data-factory

我使用向导创建了一个ADF,它将数据从Azure SQL复制到Blob存储。

在指定输出文件名的选项(见截图)中,我想附加文件名,文件创建日期或其他变量值。有没有办法做到这一点?

ADF Screenshot

2 个答案:

答案 0 :(得分:2)

除了使用the Data Factory Copy Wizard之外,您还可以通过编辑控制文件创建的OutputDataset的json配置来更改blob文件的文件路径和/或文件名(在设置了复制管道之后),这样:

  1. 转到OutputDataset表源(json配置)。要做到这一点,你可以,例如,
    1. 打开数据工厂的数据工厂刀片。
    2. 在“内容”下,单击“数据集”以打开“数据集刀片”。
    3. 单击要调整其命名的OutputDataset。这将打开OutputDataset刀片。
    4. 单击“表源”磁贴。您将被定向到OutputDataset的json配置设置。
  2. 在partitionedBy属性下添加或调整变量,如下所示 以下示例。 (参见例如" firstCustomVariable"。)
  3. 根据您的要求调整fileName和/或filePath以使用变量,如下例所示。 (参见例如" blobFileName- {firstCustomVariable} .json.gz"。)
  4. 另见:
    V1:Azure Data Factory - Functions and System Variables
    V2:System variables supported by Azure Data Factory
    V2:How to read or write partitioned data in Azure Data Factory version 2
    Custom Date and Time Format Strings

    示例:

    {
        "name": "OutputDataset-abc",
        "properties": {
            "published": false,
            "type": "AzureBlob",
            "linkedServiceName": "Destination-BlobStorage-abc",
            "typeProperties": {
                "fileName": "blobFileName-{firstCustomVariable}.json.gz",
                "folderPath": "folderName-{secondCustomVariable}",
                "format": {
                    "type": "JsonFormat",
                    "filePattern": "arrayOfObjects"
                },
                "partitionedBy": [
                    {
                        "name": "firstCustomVariable",
                        "value": {
                            "type": "DateTime",
                            "date": "SliceStart",
                            "format": "yyyyMMddHH"
                        }
                    },
                    {
                        "name": "secondCustomVariable",
                            "value": {
                            "type": "DateTime",
                            "date": "SliceStart",
                            "format": "MM"
                        }
                    }
                ],
                "compression": {
                    "type": "GZip",
                    "level": "Fastest"
                }
            },
            "availability": {
                "frequency": "Day",
                "interval": 1
            },
            "external": false,
            "policy": {}
        }
    }
    

答案 1 :(得分:1)

是的,支持在ADF复制向导上指定变量。支持的变量包括:{year},{month},{day},{hour},{minute}和{custom}。有关这些变量的详细信息,请参阅Data Movement Activities文章。示例:inputfolder / {year} / {month} / {day}。