【问题标题】:Azure data factory copy activity performance tuningAzure 数据工厂复制活动性能调整
【发布时间】:2017-07-28 13:31:16
【问题描述】:

https://docs.microsoft.com/en-us/azure/data-factory/data-factory-load-sql-data-warehouse。根据这个 1000 DWU 和 polybase 的链接,我应该得到 200MBps 的吞吐量。但我得到 4.66 MBps。我在 xlargerc 资源类中添加了用户,以从 azure sql 数据仓库实现最佳吞吐量。

下面是管道 JSON。

                         {
              "name": "UCBPipeline-Copy",
                 "properties": {
                   "description": "pipeline with copy activity",
                 "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "SqlDWSink",
                        "allowPolyBase": true,
                        "writeBatchSize": 0,
                        "writeBatchTimeout": "00:00:00"
                    },
                    "cloudDataMovementUnits": 4
                },
                "inputs": [
                    {
                        "name": "USBBlob_Concept
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureDW_Concept"
                    }
                ],
                "policy": {
                    "timeout": "01:00:00",
                    "concurrency": 1
                },
                "scheduler": {
                    "frequency": "Day",
                    "interval": 1
                },
                "name": "AzureBlobtoSQLDW_Concept",
                "description": "Copy Activity"
            }
        ],
        "start": "2017-02-28T18:00:00Z",
        "end": "2017-03-01T19:00:00Z",
        "isPaused": false,
        "hubName": "sampledf1_hub",
        "pipelineMode": "Scheduled"
    }
}

输入数据集:

{
    "name": "AzureBlob_Concept",
    "properties": {
        "published": false,
        "type": "AzureBlob",
        "linkedServiceName": "AzureZRSStorageLinkedService",
        "typeProperties": {
            "fileName": "conceptTab.txt",
            "folderPath": "source/",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": "\t"
            }
        },
        "availability": {
            "frequency": "Day",
            "interval": 1
        },
        "external": true,
        "policy": {}
    }
}

输出数据集:

{
    "name": "AzureDW_Concept",
    "properties": {
        "published": false,
        "type": "AzureSqlDWTable",
        "linkedServiceName": "AzureSqlDWLinkedService",
        "typeProperties": {
            "tableName": "concept"
        },
        "availability": {
            "frequency": "Day",
            "interval": 1
        }
    }
}

配置中是否缺少任何内容?

【问题讨论】:

  • 只是一个观察,如果您的数据已经在 blob 存储中,您可以直接使用 Polybase / 外部表然后 CTAS 加载它,不需要数据工厂。

标签: azure azure-data-factory polybase sql-data-warehouse


【解决方案1】:

我查看了 runId "e98ac557-a507-4a6e-8833-978eff1723c3",它应该属于您的 Copy Activity。从我们的服务日志来看,源文件不够大(在您的情况下为 270 MB),因此服务调用延迟会使吞吐量不够好。您可以尝试加载更大的文件以获得更好的吞吐量。

【讨论】:

  • 我尝试了 9.16 GB 的数据。在 clouddatamovement 单位设置为 4 的情况下处理数据需要 47 分钟。输出为:数据读取:9.16 GB,写入:0.00 字节,数据量:9.16 GB,行:316498942,吞吐量:3.66 MB/s,持续时间:02:50:29 暂存 blob 运行时区域的源:美国西部暂存 blob 到目标运行时区域:美国西部 Polybase 在接收器上使用:True
  • 您能提供您提到的新运行的 runId 吗?您的新运行似乎使用了分段 blob,这导致吞吐量较低。
  • 上述运行的RunID是:0bcf9cc7-e0c8-4e6b-bf7c-82174598271d
  • 您使用的是分阶段复制,其吞吐量远低于使用 Polybase 的直接复制。你能用直接复制代替吗?参考这个文档:docs.microsoft.com/en-us/azure/data-factory/….
  • 我的 CSV 文件中有标题。我不得不删除它并删除属性“skipHeaderLineCount”:1.因为它要进入暂存副本的标题。现在我可以通过 1000 DWU 获得大约 106 Mbps 的吞吐量。
猜你喜欢
  • 2022-01-04
  • 1970-01-01
  • 2020-09-15
  • 2021-06-10
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 2019-03-28
  • 2021-07-02
相关资源
最近更新 更多