Teradata调研
背景
通讯、金融、生命科学、制造业 前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家族产品
检查是否启动了:
|
|
架构
整体架构如下:

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版本,也是底层不兼容,最后需要停机迁移
测试
使用细节
建库的时候,语句跟其他数据库不同,需要指定表空间,不然会失败
|
|
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