Bash 如何使用Azure文件共享中的多个线程将数据复制到Azure data Lake存储?

Bash 如何使用Azure文件共享中的多个线程将数据复制到Azure data Lake存储?,bash,python-3.x,azure,azure-data-lake,Bash,Python 3.x,Azure,Azure Data Lake,我在azure文件共享中有2TB的数据,我希望将其复制到azure data lake存储。应该使用相同的目录结构复制。我试过了 az dls fs upload --account eanpdlstore2 --source-path "/root/mymountpoint/ShopperVisionDataRoot/" --destination-path "/pngcaseprocessing/ShopperVisionDataRoot" 但要将数据从azure文件共享复制到azure

我在azure文件共享中有2TB的数据,我希望将其复制到azure data lake存储。应该使用相同的目录结构复制。我试过了

az dls fs upload --account eanpdlstore2 --source-path "/root/mymountpoint/ShopperVisionDataRoot/" --destination-path "/pngcaseprocessing/ShopperVisionDataRoot"
但要将数据从azure文件共享复制到azure data lake需要花费很长时间。有人能解释一下如何完成这项工作或者其他可行的方法吗

dir结构类似于Main_dir/sub_dir/sub_dir/{multiple_data_folders},应该以相同的方式进行复制。关键是我不想复制Main_dir/sub_dir/sub_dir/下的所有数据文件夹,但每个sub_dir中只复制两个。所以我试着把这两个人带到不同的地方

find DATA_PREP_INPUT2 -maxdepth 1 -mindepth 1 -type d | while IFS= read -r subdir; do
  mkdir -p DATA_PREP_INPUT_TEST/"$(basename $subdir)" &&
  cp -n -r "$subdir"/{IPD_130288,IPD_130284} DATA_PREP_INPUT_TEST/"$(basename $subdir)"/;
done

然后我可以使用上面的azure命令进行复制。但这也需要太长时间来复制一个数据DIR。

< P>作为替代,您可能希望考虑Azure数据工厂,如果您没有触及Azure文件共享的限制。

它在数据源之间的复制方面做得很好,可以并发运行,并且执行位置自动最靠近数据接收器(在大多数情况下,如果需要,可以覆盖它)

它支持Azure文件共享:

和数据湖存储:

以下是性能调整的一些技巧:

我不相信在编写“复制向导”(这使它更容易实验)时,它在V2中是可用的,但它是Azure文件共享所需的版本

这里有一个指南:

文件共享的记录性能目标是每股60 MB/秒,根据我的计算,传输2 TB大约需要10小时。您是否看到性能大大低于此水平?如果是这样的话,你从分享中阅读的方式可能还有一些改进的空间。但是,如果您看到的2 TB的速率大约等于10小时,那么您可能已经达到了文件共享的吞吐量限制。您好,您的代码在哪里运行,它是否在Azure中的某个位置(可能是虚拟机或Azure shell等)?或者在您的本地网络上?(+1到约翰的评论,我的将变得更相关,取决于以上的答案)。