我有一些软件可以在很长一段时间内收集大约200个读数/秒的数据。它为此使用了一个SQL数据库。我期待使用Azure将大量旧的“归档”数据移至。Azure Table Storage分区设计
该软件使用多租户类型体系结构,因此我计划为每个租户使用一个Azure表。每个租户可能正在监控10-20个不同的度量标准,因此我打算将度量标识(int)用作分区密钥。由于每个指标每分钟只有一个读数(最大值),因此我计划使用DateTime.Ticks.ToString(“d19”)作为我的RowKey。
我对这将如何缩放比较缺乏一点理解;所以希望有人能够清除它:
对于性能Azure可能会/可能会通过partitionkey拆分我的表以保持事情的快捷。在这种情况下,这将导致每个指标一个分区。
但是,我的rowkey可能会代表大约5年的数据,所以我估计大约有250万行。
Azure是否足够聪明,然后基于rowkey进行拆分,或者我正在设计未来的瓶颈?我通常不会过早地优化,但是像Azure这样的东西似乎不像平常那样明智!
寻找一位Azure专家,让我知道我是否在正确的路线上,或者我是否应该将数据划分到更多的表中。
谢谢您的意见。可能的用例是用户仅为单个度量请求一系列数据。这个范围很小(可能是一个24小时的窗口)。如果需要多个度量标准,则可以通过多个查询完成。 – KingCronus 2013-04-04 11:31:09
此外,在这种情况下,prepadding并不需要,因为指标不需要按照特定的顺序,但感谢您的提升。 – KingCronus 2013-04-04 11:31:58
上面更新了我的答案。希望这可以帮助。 – 2013-04-04 17:50:37