表设计最佳实践

本文介绍表格存储表设计最佳实践的背景。选择使用表格存储后,根据实际业务场景,选择直接使用表格存储提供的数据模型或者根据最佳实践进行表设计。

为什么选择表格存储

如上图所示,表格存储提供了丰富、通用的功能,并具有如下优势:

  • 零运维,即开即用,按量付费

    表格存储是阿里云上唯一一个Serverless的数据库,无需预定任何资源搭建服务,只需按使用量付费,简单易用,满足不同行业的大数据需求。

    如果使用针对大数据的开源数据库,则存在开源数据库依赖多,需要很多资源部署,运维成本较高等问题。

  • 存储水平扩展,查询能力强

    表格存储可实现PB级数据的存储和查询,同时提供全局二级索引、多元索引等功能扩充查询能力,满足多种业务的负载和查询需求。

    如果采用组合使用MySQL、HBase、Elasticsearch等多款产品的方式实现不同业务的查询需求,则存在不同产品间数据同步负担。

  • 模型和案例丰富,专家在线支持

    表格存储针对不同业务场景提供了相应的数据模型,简化业务的设计和开发,例如消息和Feed流提供Timeline模型、时序数据提供Timeseries模型等。针对典型业务场景,提供丰富的场景案例和代码示例。

    建立表格存储技术支持群,技术专家实时在线进行技术支持和答疑工作,帮助您进行方案设计。

  • 平台化功能演进

    表格存储不断的向着多模型和平台化的方向演进,可与各种生态对接,提供数据通道及场景化的解决方案。使用表格存储后,即可不断享受最新的技术红利。

为什么需要表设计最佳实践

表设计最佳实践可以帮助您在快速上手表格存储的同时,将表格存储的强大性能发挥到最优状态。

需要根据最佳实践进行表设计的原因如下:

  • 数据规模大,应对海量数据仍需在数据库功能或者表设计上做一些取舍。

    • 分布式数据库需要分区,而分区方式一般与用户表设计或者业务数据相关。

      数据规模小时,数据倾斜影响不大,而数据规模大到一定程度时,则需要考虑此问题。

    • 数据库产品的功能丰富度和数据规模存在着矛盾。

      针对PB级数据设计的架构和功能,在查询丰富度上会有取舍,难以满足多样的查询需求。另一方面,选择灵活的查询方式可能意味着数据整体规模存在瓶颈,或者成本较高。因此不可避免的面临数据库选型或者是功能选型的问题。

  • 数据库的整体性能与用户的使用方式、业务代码的质量等有很强的关系。

    有时,业务层感受到的数据库性能取决于业务层的DBA或者架构师对于数据库的了解和自身的代码水平。加深对数据库的了解,可以更好的应用此产品。

业务接入流程

当您有一块业务需要使用表格存储作为数据库时,通常会经历几个过程:了解表格存储(场景案例和文档),业务需求分析,直接对照方案实现、方案设计及编码实现(表结构和查询),接入业务数据测试上线。

根据业务场景能否直接使用表格存储的模型方案,实现过程分如下两种情况:

  • 业务场景可以直接使用模型,例如Timeline、Timeseries、Widecolumn。此时直接使用模型,开发时也使用相应模型的SDK接口,无需进行表设计。

  • 业务场景无法直接使用模型,此时需要根据业务需求和场景进行表结构和查询方案设计。

    对于简单的场景,例如简单的Key-Value模式进行存取,无需进行表设计;对于复杂的场景,例如数据规模很大且查询方式多样,此时需要进行表结构和查询方案的设计。

后续引导