我有一些软件可以在很长一段时间内收集数据,大约每秒 200 个读数。它为此使用 SQL 数据库。我希望使用 Azure 将大量旧的“存档”数据移动到其中。
该软件使用多租户类型的体系结构,因此我计划为每个租户使用一个 Azure 表。每个租户可能正在监视 10-20 个不同的指标,因此我计划使用 Metric ID (int) 作为分区键。
由于每个指标每分钟只有一个读数(最大值),因此我计划使用 DateTime.Ticks.ToString("d19") 作为我的 RowKey。
但是,我对这将如何扩展缺乏一点了解;所以希望有人能够解决这个问题:
为了性能,Azure 将/可能按分区键拆分我的表,以使事情保持良好和快速。在这种情况下,这将导致每个指标有一个分区。
但是,我的 rowkey 可能代表大约 5 年的数据,所以我估计大约有 250 万行。
Azure 是否足够聪明,可以根据行键进行拆分,还是我在设计未来的瓶颈?我通常知道不要过早地优化,但是像 Azure 这样的东西看起来不像平常那么明智!
寻找 Azure 专家,让我知道我是否在正确的路线上,或者我是否也应该将我的数据分区到更多表中。