Windows Azure的資料存放區和效能比較(一)

來源:互聯網
上載者:User

 

Windows Azure的資料存放區和效能比較

    在Windows Azure上儲存資料大體上有兩種方式:Windows Azure Storage和SQL Azure。其中,Storage上的儲存又細分為:Blob,Table和Queue三種。下文就把這幾種在Azure上的儲存方法及效能作個簡單的比較,粗忽之處還請雅正。

 

1、Blog儲存:儲存大型的位元據,最大的儲存為50G。

(1)Blob的操作樣本:在Blob中儲存一個字串,再讀取出來。

            CloudBlobClient blobclient = storageAccount.CreateCloudBlobClient();            CloudBlobContainer container = blobclient.GetContainerReference("blobtest");            container.CreateIfNotExist();            CloudBlob blob = container.GetBlobReference("myFile");            blob.UploadText("Hello World!");            string blobcontent = blob.DownloadText();

 

(2)使用流的方式更新Blob資料。

由於使用OpenWrite得到的BlobStream分別為唯寫的,所以,不能使用Seek方法來定位寫入位置,所以,如果想更改Blob中的內容,可能需要把所有的資料都讀取到記憶體中,修改後,再上傳。如果僅僅是在現有的Blob後面追加資料,這樣做的方式效率較低。現給出使用兩個流的方式來更新Blob,供參考。

            CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;            CloudBlobClient blobclient = storageAccount.CreateCloudBlobClient();            CloudBlobContainer container = blobclient.GetContainerReference("blobtest");            container.CreateIfNotExist();            CloudBlob blob = container.GetBlobReference("myFile");                        BlobStream streamWrite = null;            try            {                streamWrite = blob.OpenWrite();                BlobStream streamRead = null;                try                {                    streamRead = blob.OpenRead();                    byte[] buffer = new byte[32];                    int len = -1;                    streamRead.Seek(1, System.IO.SeekOrigin.Begin);                    while ((len = streamRead.Read(buffer, 0, buffer.Length)) > 0)                    {                        streamWrite.Write(buffer, 0, len);                    }                    string appendContent = "This is example.";                    byte[] bs = Encoding.ASCII.GetBytes(appendContent);                    streamWrite.Write(bs, 0, bs.Length);                }                finally                {                    if (streamRead != null)                    {                        streamRead.Close();                        streamRead = null;                    }                }            }            finally            {                if (streamWrite != null)                {                    streamWrite.Close();                    streamWrite = null;                }            }

 

(3)Blob操作效能的比較

Blob資料追加,更新和刪除的效能曲線。

Blob資料下載的效能曲線。從這圖可以得知,如果下載一個5M大小的資料,可能的需要將近5秒鐘的時間。

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.