70
阿里云
7.5 实时写入优化__第七章 性能优化和诊断_使用手册_分析型数据库-阿里云
Insert 语句最优写法
Insert语句标准语法如下:
INSERT [IGNORE]
[INTO] tbl_name
[(col_name,...)]
{VALUES | VALUE}
为了利用分析型数据库的高性能写入能力,建议写入时进行如下改造:
- 采用批量写入(batch insert)模式,即每次在VALUES部分添加多行数据,一般建议每次批量写入数据量大约为16KB,以提高网络和磁盘吞吐。
- 如果对一行的所有列都进行插入,则去除col_name并保证values顺序与表结构中的col_name顺序一致,以降低网络带宽耗用。
- 保持主键相对有序。AnalyticDB的insert语句要求必须提供主键,且主键可以为复合主键。当确定复合主键时,根据业务含义调整复合主键中各个列的次序,从业务层面保证插入时主键是严格递增或近似递增的,也可以提升实时写入速度。
- 增加ignore关键字。执行不带ignore关键字的insert sql,当主键冲突时,后续数据会覆盖之前插入的数据;带上ignore关键字,则主键冲突时,会保留之前插入的数据而自动忽略新数据。如果业务层没有数据覆盖的语义要求,则建议所有insert sql都加上ignore关键字,以减小覆盖数据带来的性能开销。
按hash分区列聚合写入
分析型数据库需要对数据进行分区存储,当一次Batch insert中含有属于不同分区的多行数据时,将会耗费大量CPU资源进行分区号计算。因此建议在写入程序中提前计算好每行数据的分区号,并且将属于同一分区的多行数据组成一个批次,一次性插入。
实现聚合写入目前主要有两种途径:其一,用户自行实现该聚合方法,对分区号的计算规则为
partition_num = CRC32(hash_partition_column_value) mod m
其中hash_partition_column_value是分区列的值,m是分区总数。
其二,采用阿里云数据集成产品进行实时数据实时同步。(专有云中“大数据开发套件”的“数据同步”任务即为采用“数据集成”工具实现)
提前进行optimize table
分析型数据库的optimize table是指对实时写入的数据进行索引构建并生成高度优化的文件结构的过程。
分析型数据库为实时写入的数据只建立了简单的索引,在进行optimize table之后则会建立相对复杂但是功能更强、性能更佳的索引;在适当时候进行optimize table是提升查询性能的好方法。
目前有两种方法进行基线合并:
其一,自动optimize table。目前系统每天会自动进行一次optimize table(一般在每晚20:00开始)。
其二,手动进行optimize table。AnalyticDB提供了optimize命令,用户可以手动发送该命令,强制系统立刻进行基线合并。命令格式如下:
optimize table <table_name>
最后更新:2016-11-23 16:04:20
上一篇:
7.4 查询SQL优化__第七章 性能优化和诊断_使用手册_分析型数据库-阿里云
下一篇:
8.1 业务系统连接并进行查询__第八章 在生产中使用分析型数据库_使用手册_分析型数据库-阿里云
SDK-Release__Spark_开发人员指南_E-MapReduce-阿里云
解除策略与API绑定__流量控制相关接口_API_API 网关-阿里云
消息队列 MQ 如何授权__技术分享_技术运维问题_消息队列 MQ-阿里云
GetService__关于Service操作_API 参考_对象存储 OSS-阿里云
全局参数说明__命令行结构和参数_用户指南_命令行工具 CLI-阿里云
BandwidthPackageSetType__数据类型_API 参考_云服务器 ECS-阿里云
公众趋势分析__数加产品概览_数加平台介绍-阿里云
发送普通消息(三种方式)__Java SDK_TCP 接入(专业)_消息队列 MQ-阿里云
邮件推送产品短信功能升级通知__使用手册_短信服务-阿里云
性能参数表__附表_API 参考_云数据库 RDS 版-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云