【问题标题】:How to improve archiving data to Azure storage如何改进将数据归档到 Azure 存储
【发布时间】:2017-04-27 04:47:24
【问题描述】:

我需要将数据从 SQL Server 数据库归档到 Azure 存储容器 blob。

数据由存储过程检索(基本上返回所有早于 n 天的数据)。大约有 140 万行数据需要保存到 Azure 中的 blob。

这个过程需要很长时间才能完成,所以有什么方法可以加快这个过程吗? C# 控制台应用程序用于检索数据并将其上传到 Azure。这是相关代码。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("snip");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("core-backups");
CloudBlockBlob blob = container.GetBlockBlobReference("2017/04/26/data.txt");

var data = new DataTable();
using (SqlConnection conn = new SqlConnection("snip"))
{
    conn.Open();
    SqlCommand getOldLogData = new SqlCommand("backup_sp", conn);
    getOldLogData.CommandType = CommandType.StoredProcedure;
    getOldLogData.CommandTimeout = 300;
    getOldLogData.Parameters.AddWithValue("@Days", 30);
    using (SqlDataAdapter adr = new SqlDataAdapter(getOldLogData))
    {
        adr.Fill(data);
    }
}

using (var writeStream = blob.OpenWrite())
{
    using (var writer = new StreamWriter(writeStream))
    {
        data.WriteXml(writer, XmlWriteMode.WriteSchema);
    }
}

保存在 Azure 中的文件是 540 MB,所以我正在寻找一种方法来提高上传到 Azure 的效率,如果可能的话,如何压缩数据以使文件更小?我们将来可能想要恢复备份的数据。

【问题讨论】:

    标签: c# azure


    【解决方案1】:

    1) 如果要上传性能更好的文件,需要将 blobClient 上的CloudBlobClient.ParallelOperationThreadCount 设置为更高的数字。这将在不同的线程中上传文件。您可以在 fiddler 中查看文件是如何发送的。

    你可以在这里阅读更多内容 :: https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudblobclient.paralleloperationthreadcount

    https://blogs.msdn.microsoft.com/avkashchauhan/2012/02/21/windows-azure-blob-upload-scenarios/

    2) 除此之外,您可能希望压缩文件以减小文件大小,但您必须每次都对其进行压缩/解压缩。

    3) 另一种选择是,如果这是一个脱机进程,您可以使用 microsoft 的 AzCopy exe 上传文件。你可以在这里读更多关于它的内容。

    https://docs.microsoft.com/en-us/azure/storage/storage-use-azcopy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-23
      • 2018-09-04
      • 2020-07-07
      • 1970-01-01
      • 2021-07-05
      • 2018-01-11
      • 2012-04-29
      • 1970-01-01
      相关资源
      最近更新 更多