Azure Blob数据迁移工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure Blob数据迁移工具相关的知识,希望对你有一定的参考价值。

数据迁移备份,更多的应用场景见https://docs.azure.cn/zh-cn/storage/common/storage-moving-data?toc=%2fstorage%2fblobs%2ftoc.json

本文档是针对近期数据冷热备份实际工作的一个小结。实际使用过Azcopy和AzureClient这两种方式。据与Microsoft的交流,目前的工具都没有提供内置压缩算法(Azcopy正在开发中)。

1、Azcopy

AzCopy 是一个 Windows 命令行实用程序,用于将数据高性能复制到 Azure 存储(或从中进行复制)。 还可在存储帐户内或在存储帐户间复制数据。

具体的命令请参考https://docs.azure.cn/zh-cn/storage/common/storage-use-azcopy

本文要说的一个点:关于权限。

通过Azcopy移动数据后,目标数据的权限跟源数据的权限完全一致(Linux目录和文件的权限,包括owner/group/permissions)。如果前后两个环境的owner/group不一致,则复制后的数据可能存在权限问题。

 

2、WindowsAzure.Storage Client

 参考:

https://docs.azure.cn/zh-cn/storage/files/storage-dotnet-how-to-use-files?toc=%2fstorage%2fblobs%2ftoc.json

该方法同样要说的一个点,也是权限问题。

新new出来的blob实例,是不带权限的,需要手工赋值。

CloudBlockBlob hotBlockBlob = this.hotBlobContainer.GetBlockBlobReference(hotBlockName);
this.SetProperties(hotBlockBlob.Properties, blob.Properties);
if (blobFloderNames.Contains(blob.Name))
{
  hotBlockBlob.Metadata.Add("hdi_isfolder", "true");
   hotBlockBlob.Metadata.Add("hdi_permission", "{\"owner\":\""+ hotPermission_Owner + "\",\"group\":\""+ hotPermission_Group + "\",\"permissions\":\"rwxr-xr-x\"}");
}else
   hotBlockBlob.Metadata.Add("hdi_permission", "{\"owner\":\"" + hotPermission_Owner + "\",\"group\":\"" + hotPermission_Group + "\",\"permissions\":\"rw-r--r--\"}");

3、Microsoft.Azure.Storage.DataMovement

 参考:https://www.nuget.org/packages/Microsoft.Azure.Storage.DataMovement

以上是关于Azure Blob数据迁移工具的主要内容,如果未能解决你的问题,请参考以下文章

从global到mooncake迁移SQL Azure

迁移到 Azure 文件存储的成本

如何将 Azure 存储帐户内容(表、队列、blob)复制到其他存储帐户

基于Azure blob storage T级别HBase表恢复

仅从 Azure 存储 [Azure-Blob][REST] 中的 Blob 列表获取特定元数据

Azure Data PlatformETL工具(21)——Azure Databricks使用——访问Azure Blob