尝试从Azure Blob存储中复制数据时出现未知错误

时间:2017-03-23 13:49:19

标签: azure azure-data-factory

我有以下Azure数据工厂设置:

关联服务:

"name": "AzureStorageLinkedService",
"properties": {
    "description": "",
    "hubName": "***",
    "type": "AzureStorage",
    "typeProperties": {
        "connectionString": "DefaultEndpointsProtocol=https;AccountName=***;AccountKey=**********;EndpointSuffix=core.windows.net"
    }
}

数据集:

输入:

{
"name": "AzureBlobDatasetTemplate",
"properties": {
    "published": false,
    "type": "AzureBlob",
    "linkedServiceName": "AzureStorageLinkedService",
    "typeProperties": {
        "folderPath": "app-insights/************/PageViews/{Slice}/{Hour}",
        "format": {
            "type": "JsonFormat"
        },
        "partitionedBy": [
            {
                "name": "Slice",
                "value": {
                    "type": "DateTime",
                    "date": "SliceStart",
                    "format": "yyyy-MM-dd"
                }
            },
            {
                "name": "Hour",
                "value": {
                    "type": "DateTime",
                    "date": "SliceStart",
                    "format": "HH"
                }
            }
        ]
    },
    "availability": {
        "frequency": "Minute",
        "interval": 15
    },
    "external": true,
    "policy": {}
}

}

输出:

{
"name": "AzureTableDatasetTemplate",
"properties": {
    "published": false,
    "type": "AzureTable",
    "linkedServiceName": "AzureStorageLinkedService",
    "typeProperties": {
        "tableName": "HelloWorld"
    },
    "availability": {
        "frequency": "Minute",
        "interval": 15
    }
}

}

管道

{
"name": "PipelineTemplate",
"properties": {
    "description": "Application Insight",
    "activities": [
        {
            "type": "Copy",
            "typeProperties": {
                "source": {
                    "type": "BlobSource"
                },
                "sink": {
                    "type": "AzureTableSink",
                    "writeBatchSize": 0,
                    "writeBatchTimeout": "00:00:00"
                }
            },
            "inputs": [
                {
                    "name": "AzureBlobDatasetTemplate"
                }
            ],
            "outputs": [
                {
                    "name": "AzureTableDatasetTemplate"
                }
            ],
            "policy": {
                "timeout": "1.00:00:00",
                "concurrency": 1,
                "retry": 3
            },
            "scheduler": {
                "frequency": "Minute",
                "interval": 15
            },
            "name": "CopyActivityTemplate"
        }
    ],
    "start": "2014-05-01T00:00:00Z",
    "end": "2018-05-01T00:00:00Z",
    "isPaused": false,
    "hubName": "datafactorypocjspi_hub",
    "pipelineMode": "Scheduled"
}

}

blob存储中的数据来自Application Insights持续导出。

我的目的是让整个设置像这样工作:

  1. Application Insights使用持续导出(完成并正常工作)导出数据执行blob存储
  2. Azure数据工厂将数据从Blob存储移动到Azure表存储(需要在该过程中计算分区和行键,我还没有达到那个部分,因为我在复制过程中遇到了困难)
  3. 使用当前设置,我的所有活动都停留在“等待:数据集依赖关系尚未就绪”状态:

    Azure pipeline activity

    我能找到的唯一附加信息是活动的状态描述:上游依赖关系尚未就绪。

    我在这里缺少什么?看起来它连接到blob存储有问题。我已经仔细检查了连接字符串,文件夹路径似乎也按顺序排列:

    Storage Explorer

1 个答案:

答案 0 :(得分:1)

我在为大型计划窗口配置时间片之前遇到过此问题...我认为您遇到了问题,因为 4的 15分钟时间片年窗口

<强>数据集:

for file in os.listdir('C:\\Users\\####\\Documents\\Visual Studio 2015\\Projects\\Data\\'):
    if  fnmatch.fnmatch(file, '*.csv'):
        scanReport = open(file)
        scanReader = csv.reader(scanReport)

<强>活动:

"availability": {
    "frequency": "Minute",
    "interval": 15

配置ADF必须在部署时执行。结果是你看到它无法开始验证上游数据集,因为它仍然处理所有切片的创建。例如。等待!

这不是一个理想的答案,但我的建议是你将日程安排窗口缩小到更小的程度来测试复制过程。一旦工作,一次延长一个月,以便内部供应流程有机会赶上。

请注意;它不仅仅是15分钟除以4年。它也是每个数据集的两倍。输入和输出。

希望这有帮助。