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 之间可以相互通信,平衡 session
另外 BYNET可以自动负载均衡,平衡网络负载
使用了 hash方式 插入、查找
这样的话,扩容可能是一个问题
高可用
建表时,可以创建 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 |
查询时机器表现
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