成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

五分鐘技術(shù)趣談 | 時序數(shù)據(jù)庫TDengine在和家親上的應(yīng)用實踐

數(shù)據(jù)庫
本文分享了和家親在使用TDengine時序數(shù)據(jù)庫的業(yè)務(wù)實踐,以此給大家作參考。

Part 01

業(yè)務(wù)背景  

和家親APP作為中國移動智慧家庭業(yè)務(wù)入口,承載了大量智能設(shè)備告警推送和家庭業(yè)務(wù)推送。到目前為止,平臺每天產(chǎn)生將近30億的推送量,如何將這些推送數(shù)據(jù)進(jìn)行存儲、查詢和分析是一個比較棘手的問題。最初我們使用的是mysql集群分庫分表方案,但隨著數(shù)據(jù)量的增加,遇到了數(shù)據(jù)寫入和查詢的瓶頸,而且運(yùn)維復(fù)雜且不便管理。結(jié)合業(yè)務(wù)特點,同時也是響應(yīng)集團(tuán)去IOE的要求,我們開始調(diào)研新的存儲方案--國產(chǎn)開源時序數(shù)據(jù)庫(Time Series Database)。

圖片

圖1 和家親業(yè)務(wù)數(shù)據(jù)存儲方案演進(jìn)

目前國產(chǎn)時序數(shù)據(jù)庫中比較有影響力的就IoTDB和TDengine,經(jīng)過我們多維度的選型測試,最終確定選擇TDengine作為新的數(shù)據(jù)存儲引擎,我們發(fā)現(xiàn)業(yè)務(wù)數(shù)據(jù)某些特點非常契合TDengine:

  • 高頻寫入,峰值寫入高達(dá)7W條/秒
  • 數(shù)據(jù)很少更新且查詢簡單低頻
  • 數(shù)據(jù)存儲周期自動調(diào)整
  • 數(shù)據(jù)帶有時間戳

Part 02

數(shù)據(jù)建模  

區(qū)別于傳統(tǒng)關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)寫入之前需要提前建表,TDengine有超級表的概念,具備自動建表的功能。這樣業(yè)務(wù)數(shù)據(jù)入庫只需要建一個庫和一張與業(yè)務(wù)需求相關(guān)的超級表,就可以在數(shù)據(jù)第一次入庫的時候自動創(chuàng)建子表。自動創(chuàng)建子表在第一次入庫時會有性能折損,但是經(jīng)過測試TDengine的自動建表效率非常高,幾乎可以忽略不計。在我們的業(yè)務(wù)場景中,我們把每個用戶對應(yīng)成一個設(shè)備一張表,用戶每天產(chǎn)生的告警寫入到自己的表中。

建庫語句如下:

CREATE DATABASE `hjq_push` BUFFER 900 CACHESIZE 1 CACHEMODEL 'none' COMP 2 DURATION 180m WAL_FSYNC_PERIOD 3000 MAXROWS 4096 MINROWS 10 STT_TRIGGER 16 KEEP 10080m,10080m,10080m PAGES 160 PAGESIZE 128 PRECISION 'ms' REPLICA 3 WAL_LEVEL 1 VGROUPS 200 SINGLE_STABLE 0;

超級表語句如下:

CREATE STABLE s_push (ts TIMESTAMP, guid BIGINT, source NCHAR(30),msgName NCHAR(64), msgContent NCHAR(1024), status SMALLINT, updateTime TIMESTAMP) TAGS(flag TINYINT);

利用超級表寫入語句:

INSERT INTO u_#{phone} USING s_push TAGS #{tag} (ts, guid, source, msgName, msgContent, status,updateTime) VALUES(#{ts},#{guid}, #{source}, #{msgName}, #{msgContent}, #{status},#{updateTime});

Part 03

性能表現(xiàn)  

3.1 高效寫入

采用時序數(shù)據(jù)庫的一個重要原因就是支持高頻寫入。TDengine寫入速度極高,寫接近硬盤的連續(xù)寫入性能。經(jīng)過業(yè)務(wù)實際測試,峰值寫入7W/s完全沒有壓力。

圖片

圖2 業(yè)務(wù)實測寫入

當(dāng)然要達(dá)到高效的寫入性能,需要客戶端、數(shù)據(jù)源和服務(wù)端配合調(diào)試才能達(dá)到最優(yōu)狀態(tài)。

從客戶端角度:

  • 盡量在一條寫入sql中拼接更多數(shù)據(jù)。
  • 寫入方式:參數(shù)綁定>sql寫入(不自動建表)>sql寫入(自動建表)>無模式寫入。

從數(shù)據(jù)源角度:

  • 通過隊列(kafka)方式來提升數(shù)據(jù)并發(fā)寫入。
  • 盡量將同一張子表的數(shù)據(jù)提前匯聚到一起,提高寫入時數(shù)據(jù)的相鄰性。

從服務(wù)器配置角度:

需要根據(jù)系統(tǒng)磁盤的數(shù)量、I/O 能力及處理器性能在創(chuàng)建數(shù)據(jù)庫時設(shè)置適當(dāng)?shù)膙groups數(shù)量以充分發(fā)揮系統(tǒng)性能。如果vgroups過少,則系統(tǒng)性能無法發(fā)揮;如果vgroups過多,會造成無謂的資源競爭。常規(guī)推薦vgroups數(shù)量為CPU核數(shù)的2倍,但仍然要結(jié)合具體的系統(tǒng)資源配置進(jìn)行調(diào)優(yōu)。

3.2 系統(tǒng)及存儲性能

TDengine已經(jīng)在我們線上業(yè)務(wù)平穩(wěn)運(yùn)行一段時間,通過系統(tǒng)監(jiān)控CPU使用率平常不到15%,內(nèi)存使用率穩(wěn)定在10%。另外由于其高效的壓縮算法,可以節(jié)省大量存儲空間,相比于之前MySQL集群存儲只有1/7。下圖為集群中一臺DNode機(jī)器的監(jiān)控數(shù)據(jù):

圖片圖片

3.3 查詢性能

TDengine對常見ORM框架和數(shù)據(jù)庫連接池的支持較好,采用SQL作為查詢語言,開發(fā)簡單方便,對于之前使用關(guān)系型數(shù)據(jù)庫的開發(fā)者可以無縫切換。經(jīng)過業(yè)務(wù)測試,在單個子表查詢都能達(dá)到ms級別。

圖片

圖3 業(yè)務(wù)查詢測試

Part 04

遇到的一些問題  

在使用TDengine的業(yè)務(wù)實踐中,也遇到一些問題(可能有些問題在最新的版本更新迭代):

  • 空子表無法自動清理,由于我們數(shù)據(jù)存儲有周期性,但目前的TTL策略只是針對數(shù)據(jù)而不是子表本身,針對空的子表淘汰還需要腳本介入。
  • 缺少簡潔易操作的可視化界面。
  • 數(shù)據(jù)更新會影響count()函數(shù)性能(商業(yè)版有碎片整理功能,沒試過)
  • LAST_ROW函數(shù)返回的數(shù)據(jù)集字段帶有l(wèi)ast_row(row),需要單獨(dú)解析

Part 05

結(jié)語 

和家親推送業(yè)務(wù)對時序數(shù)據(jù)庫的使用目前也只是小試牛刀,相信隨著業(yè)務(wù)的發(fā)展,會使用到更多時序數(shù)據(jù)庫的功能特點。當(dāng)然同樣的業(yè)務(wù)數(shù)據(jù)可能還存在更優(yōu)的存儲方案,  無論是MySQL還是TDengine,都是優(yōu)秀的數(shù)據(jù)庫產(chǎn)品,最終還是業(yè)務(wù)場景為王,只有適配業(yè)務(wù)數(shù)據(jù)才是好產(chǎn)品。

責(zé)任編輯:龐桂玉 來源: 移動Labs
相關(guān)推薦

2018-06-26 09:37:07

時序數(shù)據(jù)庫FacebookNoSQL

2023-04-15 20:33:35

圖形數(shù)據(jù)庫數(shù)據(jù)庫

2021-07-07 13:47:38

OCR游戲運(yùn)行圖像

2023-07-30 10:09:36

MMD數(shù)據(jù)庫

2023-08-23 07:21:44

JsonSchema測試

2021-05-17 15:17:42

Thread物聯(lián)網(wǎng)IOT路由器

2023-07-23 18:47:59

Docker開源

2023-07-16 18:49:42

HTTP網(wǎng)絡(luò)

2023-08-15 14:54:02

數(shù)據(jù)庫容災(zāi)

2023-04-15 20:25:23

微前端

2023-09-02 20:15:46

VXLAN云網(wǎng)關(guān)

2023-06-03 21:06:05

2023-08-06 07:05:25

Android優(yōu)化

2023-09-03 19:06:42

2023-07-02 16:34:06

GPU虛擬化深度學(xué)習(xí)

2023-07-02 16:09:57

人工智能人臉識別

2023-07-12 15:50:29

機(jī)器學(xué)習(xí)人工智能

2023-08-29 06:50:01

Javamaven

2021-06-04 15:55:57

GPU云桌面5G+AI

2023-09-03 19:21:07

大數(shù)據(jù)架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本视频免费观看 | 成人精品在线视频 | 在线观看亚洲一区二区 | 精品成人一区 | 日韩欧美字幕 | 日韩在线观看一区二区三区 | 狠狠操狠狠操 | 欧美一二三四成人免费视频 | 日韩一区二区三区在线 | 国产视频导航 | 成人精品国产一区二区4080 | 精品国产精品三级精品av网址 | 久久精品一区二区 | 日日夜夜视频 | 在线观看日韩 | 国产成人jvid在线播放 | 就操在线 | 免费黄色录像视频 | 一区二区三区在线 | 国产91久久久久久 | 午夜无码国产理论在线 | 亚洲精品一区二区三区中文字幕 | 国产人免费人成免费视频 | 日本aⅴ中文字幕 | 亚洲天堂免费 | 欧美久久视频 | 国产精品不卡一区二区三区 | 欧美aⅴ | 亚洲精品99 | 欧美激情精品久久久久久变态 | 国产十日韩十欧美 | 羞羞视频免费在线观看 | 日韩成人在线免费视频 | 午夜99| 欧美黑人体内she精在线观看 | 国产视频线观看永久免费 | 国产视频精品免费 | 91久久夜色精品国产网站 | 日韩区 | 精品国产免费一区二区三区五区 | 国产乱xxav|