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-阿裏雲