背景

通讯、金融、生命科学、制造业 前20中很多家企业都使用了 tera-data
目前官网都主推很多基于 云的产品,跟 亚马逊、微软、谷歌都有合作
云数据共享、云分析

产品:

  • 数据库
  • 云计算数据分析平台
  • 三大云厂商
  • tera-data自己的云
  • 客户端定制化
  • 基于vm-ware
  • 基于机器学习的分析工具
  • 数据备份和恢复工具
  • 数据迁移和监控工具

目前tera-data牵扯的领域:

  • AI
  • 大数据
  • 云计算
  • 数据分析
  • 数据湖
  • 数据管理
  • 数据仓库
  • 物联网

官网提供的产品

官网提供的可下载产品:

  • Aster,
  • Tools,studio,和管理工具
  • Connectivity,.NET、JAVA、R、Python、GO、NodeJS的驱动
  • Applications,插件
  • Database
  • General
  • Extensibility,扩展函数,工具包
  • Viewpoint,可以管理td和其他数据库的监控、管理工具

下载列表 -> 这里

安装

官网提供了基于虚拟机的镜像,这里
最新的版本是 16.0
虚拟机用的是 suse linux,跟HANA一样的
区别是:

  • hana提供的是镜像,需要再次安装
  • td是虚拟机的磁盘文件,直接load就可以了,更方便
  • td提供了gnome桌面,并把一些工具也一起装进去了,使用起来更方便
  • td的磁盘空间要求比较高

有意思的是,tera-data的磁盘镜像文件中,居然还有PG,用了PG9.4,用来做 viewpoinitdb用的
这个 viewpoint-db是用于监控的,可以监控 td自己的各种产品,也可以监控hadoop家族产品

检查是否启动了:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 启动:   
/etc/init.d/tpa start

# 检查是否启动了
pdestate -a
PDE state is RUN/STARTED.
DBS state is 5: Logons are enabled - The system is quiescent

# 输入命令 
bteq
.logon 127.0.0.1/dbc
#密码是 dbc

# 查询
select * from dbc.dbcinfo;

架构

整体架构如下:

parsing engine 功能包括:

  • 解析客户端的SQL
  • 语法、权限、表和字段校验
  • SQL优化
  • 将查询计划交给 message passing layer
  • 从AMP接收结果并返回给客户端

message passing layer

  • 消息传递层称为BYNET,是Teradata系统中的网络层
  • PE和AMP之间以及节点之间的通信
  • 从解析引擎接收执行计划并发送到AMP,从AMP接收结果并发送到解析引擎

AMP

  • 实际中一个AMP可以管理多个DISK
  • 只有该AMP可以从磁盘读取/写入数据
  • 执行任何数据类型转换,聚合,过滤,排序并将数据存储在与其关联的磁盘中

PE

PE 之间可以相互通信,平衡 session
另外 BYNET可以自动负载均衡,平衡网络负载

存储架构,AMP只是读取一部分磁盘数据

检索架构

使用了 hash方式 插入、查找

这样的话,扩容可能是一个问题

PE 和 AMP 是可以混合部署的

高可用

建表时,可以创建 fallback 特性,这相当于数据多拷贝了一份

Clique是Teradata用来保护数据免受节点故障的机制。 clique只是一组共享一组公共磁盘阵列的Teradata节点。 当节点出现故障时,来自故障节点的vprocs将迁移到clique中的其他节点,并继续访问其磁盘阵列。

Hot Standby Node 热备节点是不参与生产环境的节点。 如果节点出现故障,则故障节点的vprocs将迁移到热备份节点。 一旦故障节点恢复,它将成为热备份节点。 热备节点用于在节点故障的情况下维持性能。

RAID

扩容和事务

TD的扩容比较麻烦,因为是根据 hash 去找对应的分片的,所以扩容起来就会有大量的搬迁动作

TD的事务是锁表的,TD是偏向分析型的,所以它的锁 粒度 会比较大,但也是可以接受的

TD自己做升级的时候,比如 5版本 -> 6版本,也是底层不兼容,最后需要停机迁移

测试

使用细节

建库的时候,语句跟其他数据库不同,需要指定表空间,不然会失败

1
2
-- 这里指定的表空间为 10G
create database tpcds as perm=10E9,spool=10E9; 

SQL 兼容性对比

查询编号 mysqlv5.7 PGv10 PGv12 hana Sql-Server Orale TeraData
query1 - yes yes yes yes - yes
query2 - - - yes - yes -
query3 yes yes yes yes yes - yes
query4 - yes yes yes yes - yes
query5 - - - - - - -
query6 yes yes yes yes yes - yes
query7 yes yes yes yes yes - yes
query8 - yes yes yes - - yes
query9 yes yes yes yes yes yes yes
query10 yes yes yes yes yes - yes
query11 - yes yes yes yes - yes
query12 - - - - - - -
query13 yes yes yes yes yes yes yes
query14 - - - - - - -
query15 yes yes yes yes - - yes
query16 - - - - - - -
query17 yes yes yes yes - - yes
query18 - yes yes yes yes - yes
query19 yes yes yes yes - - yes
query20 - - - - - - -
query21 - - - - - - -
query22 - yes yes yes yes - yes
query23 - - - - - - -
query24 - - - - yes - -
query25 yes yes yes yes yes - yes
query26 yes yes yes yes yes - yes
query27 - yes yes yes yes - yes
query28 yes yes yes yes yes - yes
query29 yes yes yes yes yes - yes
query30 - - - - - - -
query31 - yes yes yes yes yes -
query32 - - - - - - -
query33 - yes yes yes yes - -
query34 yes yes yes yes yes yes yes
query35 yes yes yes yes yes - yes
query36 - - - - - - -
query37 - - - - - - -
query38 - yes yes yes yes - yes
query39 - - - - - - -
query40 - - - - - - -
query41 yes yes yes yes - - -
query42 yes yes yes yes yes - yes
query43 yes yes yes yes yes - yes
query44 - yes yes yes yes - yes
query45 yes yes yes yes - - yes
query46 yes yes yes yes yes - yes
query47 - yes yes yes yes - yes
query48 - yes yes yes yes yes yes
query49 - - - yes - - -
query50 yes yes yes yes yes - yes
query51 - yes yes yes yes - yes
query52 yes yes yes yes yes - yes
query53 - yes yes yes yes - yes
query54 - yes yes yes yes - yes
query55 yes yes yes yes yes - yes
query56 - yes yes yes yes - -
query57 - yes yes yes yes - yes
query58 - yes yes yes yes - -
query59 - yes yes yes yes - yes
query60 - yes yes yes yes - -
query61 yes yes yes yes yes - yes
query62 yes yes yes yes - - yes
query63 - yes yes yes yes - yes
query64 - yes yes yes yes yes yes
query65 yes yes yes yes yes - -
query66 yes yes yes - - - -
query67 - yes yes yes yes - yes
query68 yes yes yes yes yes - yes
query69 yes yes yes yes yes - yes
query70 - - - - - - -
query71 yes yes yes yes yes yes -
query72 yes yes yes - - - -
query73 yes yes yes yes yes yes yes
query74 - yes yes yes yes - -
query75 - yes yes yes yes - -
query76 yes yes yes yes yes - yes
query77 - - - - - - -
query78 - yes yes yes yes - -
query79 yes yes yes yes - - yes
query80 - - - - - - -
query81 - yes yes yes yes - yes
query82 - - - - - - -
query83 - yes yes yes yes - -
query84 yes yes yes yes - - yes
query85 yes yes yes yes - - yes
query86 - - - - - - -
query87 - yes yes yes yes - yes
query88 yes yes yes yes yes yes yes
query89 - yes yes yes yes - yes
query90 yes - - yes yes - -
query91 yes yes yes yes yes yes yes
query92 - - - - - - -
query93 yes yes yes yes yes - yes
query94 - - - - - - -
query95 - - - - - - -
query96 yes yes yes yes yes - yes
query97 - yes yes yes yes - yes
query98 - - - - - - -
query99 yes yes yes yes - - yes
总计 42 73 73 74 62 11 59

查询时机器表现

执行查询时 TD机器的负载情况

执行耗时任务时,机器的负载情况

TPC-DS测试

对比了 MySQLv5.7、 PGv12、HANA2.0、TeraDatav16.0

查询编号 MySQLv5.7 PGv12 HANA2.0 TeraDatav16.0
query1 5374295 639 943439
query2 574
query3 31 87 57 5096
query4 11262614 878 11521
query5
query6 123020 202187 153 10929
query7 13411 3574 358 5847
query8 996 255 3205
query9 11220 3780 237 9852
query10 1224 121 2289
query11 494 37434
query12
query13 2842 1416 178 1060
query14
query15 6147 597 68 720
query16
query17 1262 932 271 1377
query18 1962 246 2244
query19 181 168 82 4291
query20
query21
query22 40907 1432 4050
query23
query24
query25 1036 863 85 94715
query26 6311 1541 107 1296
query27 2936 172 8504
query28 8348 3478 161 3931
query29 953 576 92 65999
query30
query31 24365 108
query32
query33 1057 99
query34 8013 1123 134 6014
query35 1740 260 2951
query36
query37
query38 6063 299 3884
query39
query40
query41 2332 3078 64
query42 102 136 63 4497
query43 8521 1173 197 5070
query44 1018 128 1381
query45 1359 365 88 2108
query46 9767 1330 373 10541
query47 5509 336 8537
query48 1556 138 1178
query49 371
query50 525 216 63 1374
query51 4815 1303 10254
query52 110 130 55 4573
query53 348 62 5642
query54 45474 65 11898
query55 81 94 58 4621
query56 258 87
query57 2253 183 3168
query58 950 79
query59 3502 645 5594
query60 736 99
query61 9 120 53 8230
query62 3245 548 88 2632
query63 306 71 5426
query64 1140 104 4369
query65 10228 2319 205
query66 3066
query67 9599 2056 63872
query68 9634 847 467 10659
query69 1096 89 5286
query70
query71 8526 803 129
query72 198123 2447
query73 6104 666 90 5702
query74 875881 409
query75 2892 481
query76 2351 680 53 1631
query77
query78 5263 1153
query79 7047 1194 196 4465
query80
query81 18497 96 420
query82
query83 328 71
query84 9351 153 57 201990
query85 532 296 82 644
query86
query87 7263 1089 4275
query88 19601 4008 250 8826
query89 466 99 7415
query90 1778 374 68
query91 287 165 57 325
query92
query93 213 257 168 891
query94
query95
query96 2046 606 75 1946
query97 2097 606 10889
query98
query99 4584 1019 166 1205

参考

官方安装文档
taradata在线文档
can not start teradata database using “tpa start”
TeraJDBC__indep_indep.17.10.00.23.zip

Teradata高可用性方案介绍
Teradata架构介绍
Teradata 数据库