从 Azure Databricks 写入 Azure Blob 存储时重复的 Blob 创建事件
Duplicate Blob Created Events When Writing to Azure Blob Storage from Azure Databricks
我们正在使用其中包含单个容器的 Azure 存储帐户(Blob、StorageV2)。我们还使用 Azure 数据工厂从容器中创建的 blob (.tar.gz) 触发数据复制管道。从 Azure 应用服务创建 blob 或通过 Azure 存储资源管理器手动上传时,触发器工作正常。但是,当从 Azure Databricks 上的笔记本创建 blob 时,我们会为每个创建的 blob 获得两 (2) 个事件(两个事件的参数相同)。从笔记本创建 blob 的代码类似于:
dbutils.fs.cp(
"/mnt/data/tmp/file.tar.gz",
"/mnt/data/out/file.tar.gz"
)
tmp
文件夹只是用来assemble包,事件触发器附加到out
文件夹。我们也尝试了 dbutils.fs.mv
,但结果相同。 Azure 数据工厂中的触发规则是:
Blob path begins with: out/
Blob path ends with: .tar.gz
容器名称是data
。
我们确实找到了一些与零长度文件相关的类似帖子,但至少我们在任何地方都看不到它们(如果是 dbutils
的某种副产品)。
如前所述,只需手动上传 file.tar.gz
即可正常工作 - 触发单个事件。
我们不得不恢复使用 azure-storage-blob
库将文件从 Databricks 上传到 Blob 存储。有点令人失望,但它现在按预期工作。以防万一其他人遇到这个。
更多信息:
https://docs.microsoft.com/en-gb/azure/storage/blobs/storage-quickstart-blobs-python
我们正在使用其中包含单个容器的 Azure 存储帐户(Blob、StorageV2)。我们还使用 Azure 数据工厂从容器中创建的 blob (.tar.gz) 触发数据复制管道。从 Azure 应用服务创建 blob 或通过 Azure 存储资源管理器手动上传时,触发器工作正常。但是,当从 Azure Databricks 上的笔记本创建 blob 时,我们会为每个创建的 blob 获得两 (2) 个事件(两个事件的参数相同)。从笔记本创建 blob 的代码类似于:
dbutils.fs.cp(
"/mnt/data/tmp/file.tar.gz",
"/mnt/data/out/file.tar.gz"
)
tmp
文件夹只是用来assemble包,事件触发器附加到out
文件夹。我们也尝试了 dbutils.fs.mv
,但结果相同。 Azure 数据工厂中的触发规则是:
Blob path begins with: out/
Blob path ends with: .tar.gz
容器名称是data
。
我们确实找到了一些与零长度文件相关的类似帖子,但至少我们在任何地方都看不到它们(如果是 dbutils
的某种副产品)。
如前所述,只需手动上传 file.tar.gz
即可正常工作 - 触发单个事件。
我们不得不恢复使用 azure-storage-blob
库将文件从 Databricks 上传到 Blob 存储。有点令人失望,但它现在按预期工作。以防万一其他人遇到这个。
更多信息:
https://docs.microsoft.com/en-gb/azure/storage/blobs/storage-quickstart-blobs-python