Azure Blob文件夹路径中的自定义日期



我在创建Azure Blob时查看了一些有关如何指定自定义文件夹路径的文档(使用Azure数据工厂(。

官方文件:

https://learn.microsoft.com/en-us/azure/data-factory/v1/data-factory-azure-azure-blob-connector#used-partitioned by-property

论坛帖子:

https://dba.stackexchange.com/questions/180487/datafactory-tutorial-blob-does-not-exist

我能够成功地放入日期索引文件夹中,但是我无法做的是放入递增/减少日期文件夹中。

我尝试使用$$ text.format(如下(,但它给出了编译错误 -> text.format不是有效的blob路径。

    "folderPath": "$$Text.Format('MyRoot/{0:yyyy/MM/dd}/', Date.AddDays(SliceEnd,-2))",

我尝试使用分区的部分(如下(,但它也给出了编译错误 ->只有Slicestart和Sliceend是"日期"

的有效选项
    {
"name": "MyBlob",
"properties": {
    "published": false,
    "type": "AzureBlob",
    "linkedServiceName": "MyLinkedService",
    "typeProperties": {
        "fileName": "MyTsv.tsv",
        "folderPath": "MyRoot/{Year}/{Month}/{Day}/",
        "format": {
            "type": "TextFormat",
            "rowDelimiter": "n",
            "columnDelimiter": "t",
            "nullValue": ""
        },
        "partitionedBy": [
            {
                "name": "Year",
                "value": {
                    "type": "DateTime",
                    "date": "Date.AddDays(SliceEnd,-2)",
                    "format": "yyyy"
                }
            },
            {
                "name": "Month",
                "value": {
                    "type": "DateTime",
                    "date": "Date.AddDays(SliceEnd,-2)",
                    "format": "MM"
                }
            },
            {
                "name": "Day",
                "value": {
                    "type": "DateTime",
                    "date": "Date.AddDays(SliceEnd,-2)",
                    "format": "dd"
                }
            }
        ]
    },
    "availability": {
        "frequency": "Day",
        "interval": 1
    },
    "external": false,
    "policy": {}
}

任何指针都会受到赞赏!

编辑亚当的响应:

根据Adam的建议,我还直接在文件名中使用了文件夹结构:

Windows Azure:如何在Blob容器中创建子目录

我在下面的样本中使用了它。

     "typeProperties": {
        "fileName": "$$Text.Format('{0:yyyy/MM/dd}/MyBlob.tsv', Date.AddDays(SliceEnd,-2))",
        "folderPath": "MyRoot/",
        "format": {
            "type": "TextFormat",
            "rowDelimiter": "n",
            "columnDelimiter": "t",
            "nullValue": ""
        },        

它没有给出编译错误,在部署过程中也没有错误。但这在执行过程中丢了一个错误!!

运行时错误是--->活动中的错误:scopejobmanager:preparescopecript,无支撑的非结构流格式'.addays(sliceend,-2((',无法转换为非结构化流。

我认为问题是文件名可用于创建文件夹而不是动态文件夹名称,而不是静态文件夹。

您应该使用以下约定创建一个斑点:" foldername/myfile.txt",因此您还可以在该foldername下附加附加斑点。我建议检查此线程:Windows Azure:如何在Blob容器中创建子目录,它可能会帮助您解决此情况。

相关内容

  • 没有找到相关文章

最新更新