- A+
华为包裹被错送美国 美联邦快递有心还是无意?
华为的几件包裹被美国联邦快递错送到了美国。虽然联邦快递声称一切只是疏失,但是华为却不见得接受。 华为表示,他们并没有给予快递公司把包裹寄往美国的权限 据路透社报道,华为指控美国快递公司联邦快递(FedEx)将两件原定送往华为亚洲办公室的包裹转送到美
小 T 导读:融合通信技术(天津)有限公司是具备国内一流水准的企业移动新通信商务平台技术和应用方案提供商。融合短信、彩信、语音、流量及虚拟座席的云通信服务平台, 融合三大运营商和互联网IP网络,致力于为国内外企业提供一流水准的移动新通信商务平台及运营服务。
公司的主营业务是给企业客户提供短信服务,内部有一个强大的运营监控平台。每日短信业务量巨大,监控平台需要使用时序数据库来对发送的海量短信分地理区域、运营商、接收状态等类别进行统计和监控。以前一直在用InfluxDB,对于时间跨度稍大些的查询(比如一个月的数据)就显得非常慢了。从TDengine开源后,便知道了这个很牛的家伙,于是尝试着使用TDengine。
在搞懂了基本的功能后,便上线了TDengine版的监控系统,但是发现,在grafana中居然不能“group by”,只能通过写where多条语句将多个短信状态数据放到一个仪表盘里,如图:
如果where条件有更多,这样的方法就太笨,并且灵活性太差。
于是,开始仔细研究官方文档,搞懂了“超级表”、“连续查询“等,在这个过程中遇到过不少问题,在这里做一下记录(测试环境,数据是模拟产生的)。
一、安装和运行
测试环境:
1cat /etc/redhat-release
2CentOS Linux release 7.7.1908 (Core)
安装很简单:
1rpm -ivh tdengine-1.6.3.1-3.x86_64.rpm
配置都用默认的(未改配置文件)
启动TDengine:
1systemctl start taosd
二、建库、建表
在命令行输入“taos”
1taos>
以下建库、建表操作都在此提示符下进行
1. 创建数据库
1create database jk keep 365 precision 'us';
说明:
-
keep 365表示该库保存365天内的数据,365天之前的数据会被自动清除(因为是时序数据库,所以不能对库中的表进行delete操作);
-
precision ‘us’表示数据库中的时间戳精度为“微秒”,(默认是毫秒,也可以显示写为precision ‘ms’), 经测试,此处用单引号和双引号都是可以的,但是不能没有引号。
-
配置文件中已经不支持时间精度的配置,必须在建库的时候指定(测试了很多配置都不生效,Issues后得到的官方回复)
-
TDengine的设计初衷是用于物联网,设备的信息采集精度到“毫秒”已经足够用,但我司的短信平台会有突发大量数据产生,为了避免可能会导致的数据丢失,将精度设置为“微秒”,经测试,效果很好,测试的模拟数据挿入时间戳都用“now”获取,下图左侧为“毫秒”精度,能看到有“0 row(s)”的情况出现,表示有数据未挿入, 右侧为“微秒”精度,未见未挿入数据。
LIV HESSEN CLUB丨今晚!TOP100 DJ第52名,一个让所有人都喜欢的女DJ!
2014年TOP100 DJ 第52名 EVAT 重磅来袭 The DIVA from the south is the fastest growing EDM queen in South EAST Asia. She is popularly know for her brilliant fusion of hot mashups with upbeat and contemporary sounds of electro house. CLUB REA
2. 创建超级表
进入数据库“jk”
1taos> use jk;
2Database changed.
1create table jiankong (ts timestamp, gatewayid binary(6), companyid binary(20), provinceid binary(10), cityid binary(10), value int, timestr binary(30))
2tags(type binary(10), subtype binary(10));
短信系统中有3种type,几百种subtype,所以将这些静态信息(或者简单地理解为需要将进行group by的字段设置为tag)
解释一下超级表:
STable是同一类型数据采集点的抽象,是同类型采集实例的集合,包含多张数据结构一样的子表。
每个STable为其子表定义了表结构和一组标签:表结构即表中记录的数据列及其数据类型;标签名和数据类型由STable定义,标签值记录着每个子表的静态信息,用以对子表进行分组过滤。
子表本质上就是普通的表,由一个时间戳主键和若干个数据列组成,每行记录着具体的数据,数据查询操作与普通表完全相同;但子表与普通表的区别在于每个子表从属于一张超级表,并带有一组由STable定义的标签值。
针对所有的通过STable创建的子表进行多表聚合查询,支持按照全部的TAG值进行条件过滤(where),并可将结果按照TAGS中的值进行聚合(group by),暂不支持针对binary类型的模糊匹配过滤。
又放出了一记大招。
1
create
table jiankong_sub_send
using jiankong tags (
'send',
'send');
2
create
table jiankong_sub_delivrd
using jiankong tags (
'delivrd',
'delivrd');
3
create
table jiankong_sub_undeliv_db_0108
using jiankong tags (
'undeliv',
'DB:0108');
4
create
table jiankong_sub_undeliv_db_0107
using jiankong tags (
'undeliv',
'DB:0107');
5
create
table jiankong_sub_undeliv_balance
using jiankong tags (
'undeliv',
'BALANCE');
6
create
table jiankong_sub_undeliv_id_0076
using jiankong tags (
'undeliv',
'ID:0076');
7
create
table jiankong_sub_undeliv_ib_0008
using jiankong tags (
'undeliv',
'IB:0008');
1
INSERT
INTO jiankong_sub_send
VALUES (
now,
3034,
'1564',
'109',
'1272',
'2',
'201909231530')
2
INSERT
INTO jiankong_sub_delivrd
VALUES (
now,
3034,
'1564',
'109',
'1272',
'2',
'201909231530')
3
INSERT
INTO jiankong_sub_undeliv_balance
VALUES (
now,
1179,
'152',
'106',
'1000',
'1',
'201910071113')
4
INSERT
INTO jiankong_sub_undeliv_id_0076
VALUES (
now,
1165,
'1785',
'111',
'1226',
'1',
'201910071415')
5
INSERT
INTO jiankong_sub_undeliv_ib_0008
VALUES (
now,
1165,
'1785',
'127',
'1000',
'2',
'201910061727')
6
INSERT
INTO jiankong_sub_undeliv_db_0108
VALUES (
now,
90,
'548',
'123',
'1237',
'1',
'201910061127')
7
INSERT
INTO jiankong_sub_undeliv_db_0107
VALUES (
now,
2261,
'808',
'116',
'1314',
'2',
'201910032106')
1taos> show databases;
2name
| created time | ntables
| vgroups |replica
| days | keep1,keep2,keep(D)
| tables | rows
| cache(b) | ablocks
|tblocks| ctime(s)
| clog | comp
|time precision| status
|
3==============================================================================================================================================================================================================================================
4log |
19-
11-
18
16
:
37
:
14.025| 4|
1| 1|
10|30,30,30 |
32| 1024|
2048| 2.00000|
32| 3600|
1| 2|us
|ready |
5jk
| 19-11-18 16:48:19.867|
10| 1|
1| 10|365,
365,
365
| 1024|
4096| 16384|
4.00000| 100|
3600| 1|
2|us |ready
|
6Query OK, 1 row(s) in set (0.002487s)
7
1taos> show stables;
2name
| created_time |columns
| tags | tables
|
3====================================================================================================================
4jiankong |
19-
11-
18
16
:
48
:
41.540| 7|
2| 7| Query OK,
1 row(s)
in set (
0.
002140s)
1taos> describe jiankong;
2Field
| Type | Length
| Note |
3=======================================================================================================
4ts
|TIMESTAMP |
8| |
5gatewayid
|BINARY |
6| |
6companyid
|BINARY |
20| |
7provinceid
|BINARY |
10| |
8cityid
|BINARY |
10| | value
|INT |
4| |
9timestr
|BINARY |
30| |
10type
|BINARY |
10|tag |
11subtype
|BINARY |
10|tag |
12Query OK,
9 row(s)
in set (
0.
001301s)
1taos> show tables;
2 table_name
| created_time |columns
| stable |
3=================================================================================================================================================================
4jiankong_sub_delivrd
| 19-11-18 16:49:17.009|
7|jiankong |
5jiankong_sub_undeliv_ib_0008
| 19-11-18 16:49:17.025|
7|jiankong |
6jiankong_sub_undeliv_db_0108
| 19-11-18 16:49:17.016|
7|jiankong |
7jiankong_sub_undeliv_db_0107
| 19-11-18 16:49:17.018|
7|jiankong |
8jiankong_sub_undeliv_id_0076
| 19-11-18 16:49:17.023|
7|jiankong |
9jiankong_sub_send
| 19-11-18 16:49:17.003|
7|jiankong |
10jiankong_sub_undeliv_balance
| 19-11-18 16:49:17.021|
7|jiankong |
taos> describe jiankong_sub_undeliv_db_0108;
Field | Type | Length | Note |
=========================================================================================================
ts |TIMESTAMP | 8| |
gatewayid |BINARY | 6| |
companyid |BINARY | 20| |
provinceid |BINARY | 10| |
cityid |BINARY | 10| |
value |INT | 4| |
timestr |BINARY | 30| |
type |BINARY | 10|undeliv |
subtype |BINARY | 10|DB:0108 |
Query OK, 9 row(s) in set (0.001195s)
1taos>
select sum(value) from jk.jiankong group by type;
2 sum(
value) | type |
3=================================
4
11827688|delivrd |
5
55566578|send |
6
46687487|undeliv |
7Query OK,
3 row(s)
in set (0.018251s)
对subtype进行分组聚合查询:
1taos>
2taos> select sum(value) from jk.jiankong group by subtype;
3 sum(value)
| subtype |
4=================================
5
9317|BALANCE |
6
65219|DB:0107 |
7
2077691|DB:0108 |
8
2804417|IB:0008 |
9
41730843|ID:0076 |
10
11827688|delivrd |
11
55566578|send |
12Query OK,
7 row(s)
in set (
0.
013978s)
对type和subtype进行分组聚合查询:
1taos> select sum(value) from jk.jiankong group by type, subtype;
2 sum(value)
| type | subtype
|
3============================================
4 11827688|delivrd
|delivrd |
5
55566578|send |send
|
6 9317|undeliv
|BALANCE |
7
65219|undeliv |
DB:
0107
|
8 2077691|undeliv
|DB:0108 |
9
2804417|undeliv |
IB:
0008
|
10 41730843|undeliv
|ID:0076 |
11Query OK,
7 row(s)
in set (
0.
732830s)
1 1taos> select sum(value) from jk.jiankong interval(1d) group by type, subtype;
2
3 2 ts | sum(value) | type | subtype |
4 3======================================================================
5 4 19-11-18 00:00:00.000000| 1760800|delivrd |delivrd |
6 5 19-11-19 00:00:00.000000| 14768|delivrd |delivrd |
7 6 19-11-20 00:00:00.000000| 3290720|delivrd |delivrd |
8 7 19-11-21 00:00:00.000000| 4973640|delivrd |delivrd |
9 8 19-11-22 00:00:00.000000| 1787760|delivrd |delivrd |
10 9 19-11-18 00:00:00.000000| 36976790|send |send |
1110 19-11-19 00:00:00.000000| 310128|send |send |
1211 19-11-20 00:00:00.000000| 9482760|send |send |
1312 19-11-21 00:00:00.000000| 6470940|send |send |
1413 19-11-22 00:00:00.000000| 2325960|send |send |
1514 19-11-18 00:00:00.000000| 6200|undeliv |BALANCE |
1615 19-11-19 00:00:00.000000| 52|undeliv |BALANCE |
1716 19-11-20 00:00:00.000000| 1590|undeliv |BALANCE |
1817 19-11-21 00:00:00.000000| 1085|undeliv |BALANCE |
1918 19-11-22 00:00:00.000000| 390|undeliv |BALANCE |
2019 19-11-18 00:00:00.000000| 43400|undeliv |DB:0107 |
2120 19-11-19 00:00:00.000000| 364|undeliv |DB:0107 |
2221 19-11-20 00:00:00.000000| 11130|undeliv |DB:0107 |
2322 19-11-21 00:00:00.000000| 7595|undeliv |DB:0107 |
2423 19-11-22 00:00:00.000000| 2730|undeliv |DB:0107 |
2524 19-11-18 00:00:00.000000| 1382600|undeliv |DB:0108 |
2625 19-11-19 00:00:00.000000| 11596|undeliv |DB:0108 |
2726 19-11-20 00:00:00.000000| 354570|undeliv |DB:0108 |
2827 19-11-21 00:00:00.000000| 241955|undeliv |DB:0108 |
2928 19-11-22 00:00:00.000000| 86970|undeliv |DB:0108 |
3029 19-11-18 00:00:00.000000| 1866200|undeliv |IB:0008 |
3130 19-11-19 00:00:00.000000| 15652|undeliv |IB:0008 |
3231 19-11-20 00:00:00.000000| 478590|undeliv |IB:0008 |
3332 19-11-21 00:00:00.000000| 326585|undeliv |IB:0008 |
3433 19-11-22 00:00:00.000000| 117390|undeliv |IB:0008 |
3534 19-11-18 00:00:00.000000| 27769800|undeliv |ID:0076 |
3635 19-11-19 00:00:00.000000| 232908|undeliv |ID:0076 |
3736 19-11-20 00:00:00.000000| 7121610|undeliv |ID:0076 |
3837 19-11-21 00:00:00.000000| 4859715|undeliv |ID:0076 |
3938 19-11-22 00:00:00.000000| 1746810|undeliv |ID:0076 |
4039Query OK, 35 row(s) in set (0.023865s)
1taos>
select sum(value) from jk.jiankong group by type;
2TSDB error: invalid SQL:
group
by only available
for STable query
INSERT INTO <tb_name> USING <stb_name> TAGS (<tag1_value>, ...)
VALUES (field_value, ...) (field_value, ...) ...;
1
create
table jiankong_sub_send
using jiankong tags (
'send',
'send');
三、安装和配置garafana
1
rpm
-ivh
grafana-6
.4.4-1.x86_64.rpm
1cp -r /usr/local/taos/connector/grafana/tdengine/
/var/lib/grafana/plugins
3. 启动Grafana
1systemctl start grafana-server



在最下方找到“TDengine”

Name:“TDengine”(可以是其他名字)
Host:测试服务器地址“http://192.168.8.66:6020”
User: 默认为“root”
Password:默认为“taosdata”





配置图形显示






四、高级功能初探和一些联想
为有效地提升查询处理的性能,针对物联网数据的不可更改的特点,TDengine采用在每个保存的数据块上,都记录下该数据块中数据的最大值、最小值、和等统计数据。如果查询处理涉及整个数据块的全部数据,则直接使用预计算结果,不再读取数据块的内容。由于预计算模块的大小远小于磁盘上存储的具体数据的大小,对于磁盘IO为瓶颈的查询处理,使用预计算结果可以极大地减小读取IO,并加速查询处理的流程。
1taos>
create table test_stream_sum as select sum(value) from jiankong interval(20s) sliding(10s) group by type, subtype;
2Query OK,
1 row(s) affected (
0.000983s)
1taos> select sum(value) from jiankong interval(
20s) group by type, subtype;
2 ts
| sum(value) | type
| subtype |
3======================================================================
4
19-
11-
18
16
:
50
:
40.000000| 9088|delivrd
|delivrd |
5
19-
11-
18
16
:
51
:
00.
000000| 31808|delivrd
|delivrd |
6
19-
11-
18
16
:
51
:
20.000000| 15904|delivrd
|delivrd |
7
19-
11-
18
16
:
52
:
20.000000| 12212|delivrd
|delivrd |
8
19-
11-
18
16
:
52
:
40.000000| 31524|delivrd
|delivrd |
9
19-
11-
18
16
:
53
:
00.
000000| 31524|delivrd
|delivrd |
10
19-
11-
18
16
:
53
:
20.000000| 31808|delivrd
|delivrd |
11
19-
11-
18
16
:
53
:
40.000000| 31240|delivrd
|delivrd |
12
19-
11-
18
16
:
54
:
00.
000000| 31524|delivrd
|delivrd |
13
19-
11-
18
16
:
54
:
20.000000| 31524|delivrd
|delivrd |
14
19-
11-
18
16
:
54
:
40.000000| 31240|delivrd
|delivrd |
15
19-
11-
18
16
:
55
:
00.
000000| 31524|delivrd
|delivrd |
16
19-
11-
18
16
:
55
:
20.000000| 28400|delivrd
|delivrd |
17
19-
11-
18
16
:
55
:
40.000000| 31808|delivrd
|delivrd |
18
19-
11-
18
16
:
56
:
00.
000000| 31524|delivrd
|delivrd |
19
19-
11-
18
16
:
56
:
20.000000| 31240|delivrd
|delivrd |
20
19-
11-
18
16
:
56
:
40.000000| 31524|delivrd
|delivrd |
21
19-
11-
18
16
:
57
:
00.
000000| 32092|delivrd
|delivrd |
22
19-
11-
18
16
:
57
:
20.000000| 31240|delivrd
|delivrd |
23
19-
11-
18
16
:
57
:
40.000000| 32092|delivrd
|delivrd |
24
19-
11-
18
16
:
58
:
00.
000000| 31240|delivrd
|delivrd |
25
19-
11-
18
16
:
58
:
20.000000| 22720|delivrd
|delivrd |
26
19-
11-
18
16
:
50
:
40.000000| 190848|send
|send |
1taos> select * from test_stream_sum;
2 ts
| sum_value_ |
3================================================
4
19-
11-
18
17
:
17
:
30.000000| 2556|
5
19-
11-
18
17
:
17
:
40.000000| 18460|
6
19-
11-
18
17
:
17
:
50.000000| 15904|
7
19-
11-
18
17
:
18
:
00.
000000| 15620|
8Query OK,
4 row(s)
in set (
0.
000431s)
作者介绍
通信技术(天津)有限公司系统部的高级工程师,TDengine contributor,目前负责公司短信群发实时监控平台,负责平台上海量短信数据的存储、统计与可视化工作。
,
科普“百科传说 女版伟哥(vegalis-10)
含西地那非10mg 加强的是含20mg
Vegalis-10 女士成人用品伟妹10mg 1盒4片 刺激兴奋热情
Vegalis 10mg 一盒4片 收缩紧致提高房事能力 房事之前20分钟使用 药效3小时左右 注意事项孕妇排卵期各种急性病勿用。糖尿病遵医嘱.(本产品仅限于成年女性,男性、未成年女性勿用)
保健之窗‖流感高发季来临,我们应该如何应对?
流感高发季来临,我们应该如何应对? 大雪节气已过,温度越来越低,早晚温差较大,别说小孩子了,很多大人都扛不住冬日的严寒,纷纷中招生病。 秋去冬来是病毒肆虐高发期,流感、诺如、轮状……尤其是流感。一旦传染全家中招。孩子感染流感,最着急担心的莫
