Oushu Database 3.1.0新特性 (发布日期:2018年3月6日)
本页目录
Oushu Database 3.1.0新特性 (发布日期:2018年3月6日)#
Oushu Database 3.1.0版本比Oushu Database 3.0.1版本有如下新特性增强:
- 新执行器新增对limit操作符的支持 
- 新执行器新增对sort操作符的支持 
- 新执行器新增对max/min聚集函数的支持 
- 新执行器新增内置的欧氏距离函数 
- 新执行器针对scan操作符加入了性能优化 
- 新执行器针对聚集函数加入了性能优化 
- ORC格式的外部表text列支持dictionary encoding 
- 修复了一些ORC文件社区兼容性的问题 
- ORC表支持更多的数据类型,包括bool, char, varchar, bytea, date, time, timestamp和array 
- ORC表支持分区表 
- ORC格式的外部表支持并发读写 
- 关键Bug fixes.
- oushu-17:查询包含 text 列的 ORC 大表时发生 coredump 的问题 
- oushu-22:Group by 性能问题 
- oushu-350:HDFS 外部表 nameservice 区分大小写 
- oushu-374:新执行器中取消操作会影响下一条查询 
- oushu-421:新执行器中的内存泄漏问题 
 
 
下表给出了Oushu Database 3.1.0版本支持的操作系统。
| 操作系统 | 版本 | 
|---|---|
| Redhat/Centos | 7.0 | 
| Redhat/Centos | 7.1 | 
| Redhat/Centos | 7.2 | 
| Redhat/Centos | 7.3 | 
从3.0.1升级到3.1.0#
- 在master节点关闭hawq 3.0.1集群 
sudo su gpadmin
hawq stop cluster -a
- 在所有hawq节点上备份 hawq3.0.1的设置 
hawq ssh -f hostfile -e 'cp -rf $GPHOME/etc ~/'
- 在每个hawq节点上安装hawq 3.1.0的yum源 
3.1 系统包含avx指令请配置以下YUM源:
hawq ssh -f hostfile -e 'sudo wget -O /etc/yum.repos.d/oushu-database.repo $获取的repo地址'
hawq ssh -f hostfile -e 'sudo wget -O /etc/yum.repos.d/oushu-database-utils.repo $获取的repo地址'
hawq ssh -f hostfile -e 'sudo yum makecache'
3.2 系统不包含avx指令请配置以下YUM源:
hawq ssh -f hostfile -e 'sudo wget -O /etc/yum.repos.d/oushu-database.repo $获取的repo地址'
hawq ssh -f hostfile -e 'sudo wget -O /etc/yum.repos.d/oushu-database-utils.repo $获取的repo地址'
hawq ssh -f hostfile -e 'sudo yum makecache'
- 在每个hawq节点上安装hawq 3.1.0的rpm包 
hawq ssh -f hostfile -e 'sudo yum remove -y hawq'
sudo yum install -y hawq
hawq ssh -f hostfile -e 'sudo yum install -y hawq'
- 配置每个hawq节点 
hawq ssh -f hostfile -e 'cp -rf ~/etc/* $GPHOME/etc/'
- 安装欧式距离函数(通过升级方式安装的欧式距离只支持老执行器,新执行器需要重新初始化集群) - 1) 在master节点上配置集群到升级模式 - hawq start cluster hawq config -c upgrade_mode -v on --skipvalidation hawq restart cluster -a - 2) 在master节点上的template1库的pg_catalog.pg_proc表上安装欧式距离函数,在$GPHOME/etc/hawq-site.xml文件中找到$hawq_master_address_port的值,用其实际值替换命令中的$hawq_master_address_port - PGOPTIONS='-c gp_session_role=utility' psql -a -p $hawq_master_address_port -d template1 -f $GPHOME/share/postgresql/array_distance_install.sql > array_distance_install.out 2>&1 - 3) 在每个segment节点的template1库的pg_catalog.pg_proc表上安装欧式距离函数,在$GPHOME/etc/hawq-site.xml文件中找到$hawq_segment_address_port的值,用其实际值替换命令中的$hawq_segment_address_port - source /usr/local/hawq/greenplum_path.sh PGOPTIONS='-c gp_session_role=utility' psql -a -p $hawq_segment_address_port -d template1 -f $GPHOME/share/postgresql/array_distance_install.sql > array_distance_install.out 2>&1 - 4) 在master节点上将集群配置为普通模式 - hawq config -c upgrade_mode -v off --skipvalidation hawq restart cluster -a - 5) 在master节点获取数据库用户名称 - psql -a -d template1 -c "select datname from pg_database where datname not in ('hcatalog', 'template0', 'template1') order by datname;" - 6) 在master节点的每个数据库的pg_catalog.pg_proc表中安装欧式距离函数 - psql -a -d $user_database_name -f $GPHOME/share/postgresql/array_distance_install.sql > array_distance_install.out 2>&1 - 7) 在master节点重启集群 - hawq restart cluster -a