运维类常见问题
建表时的数据生存时间和压缩方式如何选择?
数据生成时间是指行数据从最后一次修改的时间算起,在云数据库TableStorage保留的时间。超过数据生存时间的数据会被云数据库TableStorage删除。用户可以根据实际业务的情况合理设置数据生存时间,从而降低占用的存储空间。若开启压缩方式,数据写入和读取时将会被压缩和解压缩,这样可以节省存储资源,但同时也会占用一些CPU资源,可能会影响性能。目前只提供snappy压缩方式,对于在线业务,其拥有较好的压缩速度和压缩比例。
数据表的属性列数量对读写性能有什么影响?
云数据库TableStorage 对于属性列数量并无限制,但单行大小受限于8MB,并且随着属性列的增加性能会有所下降,为获得最佳性能,推荐列个数在300以内。
表监控配置中2xx、3xx、4xx、5xx的含义是什么?
监控配置中的2xx、3xx、4xx、5xx表示的是HTTP状态码,不同的状态码代表不同的状态信息,根据这个信息告知用户相应操作的执行情况。
2xx类状态码信息表示:代表请求已成功被服务器接收、理解、并接受。
3xx类状态码信息表示:代表需要采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明。
4xx类状态码信息表示:发生错误,客户端似乎有问题。例如:客户端请求不存在的页面,客户端为提供有效的身份验证信息。
5xx类状态码信息表示:服务器遇到错误而不能完成该请求。
监控页面中会出现少量的5xx错误,如何处理?
少量的5xx错误可能是由503(ServerBusy)产生的,这类错误产生的原因是云数据库TableStorage后端压力过大,拒绝了一部分的请求。解决方法是,用户在代码中加上一定的重试逻辑和退避策略。
如何得到表中数据的总条数?如何导出全表数据?
由于云数据库TableStorage后台采用LSM(Log structured merge)模型存储数据,目前用户只能Scan全表来获取准确的结果。
监控采集的存储数据量/行数读取的时会存在差异?
在业务使用表格中可能同时存在 Query,Scan,Insert, Delete,Batch读写删等操作,对于新增插入行数/删除行数/批量操作/表格数据是动态且实时同步的,而监控指标数据需要一定的采集周期,故查询结果会与监控指标数据如存储量/行数存在些许差异是正常的。
监控页面中出现500(InternalError)如何处理?
500表示云数据库TableStorage服务内部错误,需提交工单并联系技术人员解决,工单内容需要包含 :Region名、实例名、表名、用户ID、大致时间、request_id。
出现请求响应延时明显增大时如何处理?
当发现某一段时间的请求平均响应延时明显增加时,需要提交工单并联系技术人员解决,工单内容需要包含:Region名、实例名,表名,用户ID、大致时间、几条延时异常请求的request_id、预期的正常平均延时、异常情况下的延时。 另外,用户可以依据正常情况下的延时来配置相应的报警规则,在出现延时异常的时候及时收到通知。