iT邦幫忙

DAY 25
1

Azure 30天系列 第 25

25. Azure SQL Sharding (下)

  • 分享至 

  • xImage
  •  
  1. 延續昨天的範例, 先在Console program新增第三個Shard, 可看到新的CustomerID區間為200-300

  1. 到ShardManager資料庫看, 選取ShardMappingsGlobal可看到三個shard的mapping十六進位分別於MinValue, MaxValue

  1. 回到Visual Studio, 背後的mapping運算都是由Microsoft.Azure.SqlDatabase.ElasticScale.Client負責的, 使用debug mode逐步執行

  1. 從SQL Statement來看, 這是很平常的語法, 如果row存在就更新, 否則新增

  1. 再來使用偵錯模式看到底是一句SQL寫到兩個資料庫如何發生的, 當customerID=86的時候

  1. ShardMap就會把connection指向Shard0

  1. customerID=138的時候

  1. connection則指向Shard1,所以撈資料的人不需要考慮連結的不同, 就可以跨資料庫讀取, 也就是scale out

  1. 另一個範例可從visual studio sample下載或從網站, Elastic Scale for Azure SQL DB - ShardSqlCmd

  1. 開啟後不可直接執行, 先建置專案

  1. 使用命令列模式, 切換到該專案的執行目錄(bin/release或bin/debug)

  1. 從這裡執行shardsqlcmd, 依照說明帶入相關參數

shardsqlcmd -S uh4kyol9hj.database.windows.net -d ElasticScaleStarterKit_ShardMapManagerDb -sm CustomerIDShardMap -U azure -P ######## -sn

執行select * from Customers就可撈出全部資料


上一篇
24. Azure SQL Sharding (上)
下一篇
Day 26. Azure SQL 複製, 匯入與匯出
系列文
Azure 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言