gpt4 book ai didi

azure - 容器间 blob 传输非常慢

转载 作者:行者123 更新时间:2023-12-03 06:23:26 25 4
gpt4 key购买 nike

我的 ETL 管道涉及将 blob(zip 文件)从一个存储容器移动到另一个临时存储容器,方法是将它们解压缩到内存中并将内容下载到后一个容器中。此解压缩是在内存中完成的,因为此管道是无服务器运行的(Azure 函数)

存储容器中我的 blob 的结构如下:

└── blob.zip
├── folder1
│   ├── file1.ext
│   └── file2.ext
...

运行脚本的以下部分后,临时容器将包含解压缩的 blob。

import zipfile
import io
# container_client_* is instance of ContainerClient
blob_client_in = container_client_in.get_blob_client('blob_container')
with io.BytesIO() as b:
download_stream = blob_client_in.download_blob()
download_stream.readinto(b)
with zipfile.ZipFile(b, compression=zipfile.ZIP_LZMA) as z:
for i in z.namelist():
with z.open(i, mode='r') as f:
container_client_out.get_blob_client(i).upload_blob(f)

这适用于具有少量项目的 Blob,但当 Blob 大小“很大”(大约任意 3 GB)时,此传输需要几个小时才能发生。

瓶颈可能发生在哪里?可以采取什么措施来解决它?

最佳答案

我建议使用Azure Data Factory在容器之间复制和解压缩文件的管道。

如果您使用消耗计划,Azure Functions 的每个实例限制为 1 个 CPU 和 1.5 GB RAM。主机的实例是整个函数应用,这意味着函数应用中的所有函数共享实例内的资源并同时扩展。

Video instructions from youtube for using Azure Data Factory

关于azure - 容器间 blob 传输非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75727772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com