Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure data factory 为什么Azure Data Factory使用AppendFile而不是PutBlob将文件写入blob存储容器?_Azure Data Factory_Azure Blob Storage_Restapi - Fatal编程技术网

Azure data factory 为什么Azure Data Factory使用AppendFile而不是PutBlob将文件写入blob存储容器?

Azure data factory 为什么Azure Data Factory使用AppendFile而不是PutBlob将文件写入blob存储容器?,azure-data-factory,azure-blob-storage,restapi,Azure Data Factory,Azure Blob Storage,Restapi,我已经建立了一个日志分析工作区,并为一些Azure存储帐户创建了一些(blob)诊断设置。现在我正在分析blob流量 似乎将blob放入blob存储的各种方法(Azure数据工厂(ADF)、Azure存储资源管理器(ASE)、pythonsdk等)都使用不同的API方法 示例: 我发现所有使用ADF上传的文件都使用了AppendFileOperationName 而使用ASE上传的所有文件都使用PutBlobOperationName 问题: AppendFile是在ADF端显式设置

我已经建立了一个日志分析工作区,并为一些Azure存储帐户创建了一些(blob)诊断设置。现在我正在分析blob流量

似乎将blob放入blob存储的各种方法(Azure数据工厂(ADF)、Azure存储资源管理器(ASE)、pythonsdk等)都使用不同的API方法

示例:

  • 我发现所有使用ADF上传的文件都使用了
    AppendFile
    OperationName

  • 而使用ASE上传的所有文件都使用
    PutBlob
    OperationName
问题:

  • AppendFile
    是在ADF端显式设置的方法吗
  • 还是将blob从ADF写入blob存储时的默认设置
此外,我没有看到在中作为方法列出的
AppendFile

  • 这只是ADF的事情,还是文档中缺少方法

我可以从我的角度重现您的问题,我假设您的存储帐户是一个层次化名称空间,如下图所示

当您使用in-ADF在容器(datalake gen2中也称为文件系统)之间复制blob时,它将调用datalake Storage gen2 REST API而不是普通的Storage REST API-,如果查看日志中的
Uri
参数,您会发现其格式如下所示

它与RESTAPI示例相同,因为它本质上调用此API


即使它是Data Lake Storage Gen2帐户,普通的Storage REST API也适用于它,因此如果您使用类似Azure Storage Explorer的东西,它实际上会直接调用普通的Storage REST API,即..

,我假设您的存储帐户是一个层次化名称空间,即
已启用,如下所示

当您使用in-ADF在容器(datalake gen2中也称为文件系统)之间复制blob时,它将调用datalake Storage gen2 REST API而不是普通的Storage REST API-,如果查看日志中的
Uri
参数,您会发现其格式如下所示

它与RESTAPI示例相同,因为它本质上调用此API


即使它是Data Lake Storage Gen2帐户,普通存储REST API也适用于它,因此如果您使用Azure Storage Explorer之类的工具,它实际上会直接调用普通存储REST API,即..

如果您使用的是Azure Data Factory流且主id相同,它通常执行AppendFile操作

如果您使用的是Azure Data Factory流,并且主id相同,它通常执行AppendFile操作

您在ADF中使用了哪些活动?使用ADF写入容器的团队不同。我不知道。再仔细查看一下日志,我认为ADF使用的是
AzureDataFactoryCopy
。在
storagebloggs
表中,我看到
UserAgentHeader:AzureDataFactoryCopy
。这就是你想要的吗?你在ADF中使用了哪种活动?它是一个使用ADF写入容器的不同团队。我不知道。再仔细查看一下日志,我认为ADF使用的是
AzureDataFactoryCopy
。在
storagebloggs
表中,我看到
UserAgentHeader:AzureDataFactoryCopy
。这就是您要寻找的吗?每个系统使用的不同REST API(ADF与ASE、Python SDK与Flow等)会对EventGrid函数触发器以及LogAnalytics造成一些挑战。我不太明白ADF为什么会使用“附加”操作来创建新文件。对这件事有一些直觉会很好。您知道为什么ADF复制操作会执行此修补程序而不是仅执行PUT操作吗?@ericOnline它与相关,您的同事使用链接服务,因此它会调用ADLS Gen2 REST API。@ericOnline如果他使用链接服务,则它会调用正常的azure存储REST API,即PUT API。(即使存储帐户是ADLS Gen2,也可以使用普通的azure存储REST API)。每个系统使用的不同REST API(ADF与ASE、Python SDK与Flow等)会对EventGrid函数触发器以及LogAnalytics造成一些挑战。我不太明白ADF为什么会使用“附加”创建新文件的操作。对这件事有一些直觉会很好。您知道为什么ADF复制操作会执行此修补程序而不是仅执行PUT操作吗?@ericOnline它与相关,您的同事使用链接服务,因此它会调用ADLS Gen2 REST API。@ericOnline如果他使用链接服务,则它会调用正常的azure存储REST API,即PUT API。(即使存储帐户是ADLS Gen2 one,也可以使用普通的azure存储REST API)。对。这篇帖子问“为什么?”,对。这篇帖子问“为什么?”。