测试员升级指南:GBASE数据库入门教程

发表于:2017-12-15 09:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶子    来源:51Testing软件测试网原创

  1、GBASE简介说明
  GBASE是国产的分布式并行集群数据库,据说有"三高"优势,即:高性能、高性价比、高可用性,不过查询速度确实很快,几千万的数据select  * 秒出;
  先介绍下常用的表,Gbase的表分为哈希表、复制表、临时表等等,哈希表需要一个哈希字段,类似分区字段,复制表无需这个字段;一般大数据的表使用哈希分表,小数据的就是万级以下数据可以用复制表。
  1.1、常用表介绍
  复制表:创建表使用 REPLICATED 关键字,这样创建的表为复制表。复制表将会存储于 Gbase  Cluster 的各个节点上,每个节点都会保存完整数据。
  哈希分布表:创建表时使用 DISTRIBUTED BY column _name 指定创建表 中的物理列 column _name 是哈希列,这样创建的表为哈希分布表。数据按照指定的 Hash 字段进行哈希分;
  临时表:创建表时使用 TEMPORARY 关键字,这样创建的表为临时表,临时表仅存在于当前 session 中。
  假设Gbase集群有30台机器,复制表会在30台机器都存在一张且数据是一样的;哈希表存在的也是30台机器,不同是每台机器的数据可能不一样,比如用户信息表的哈希字段是用户ID,可能1台机器存储的是1开头的用户ID,另外一台存储的是2开头的用户ID,每台存储是不一样的。
  2、Gbase使用介绍
  GBASE数据库目前使用的客户端是gbase studio,打开之后点击右键新建一个集群名称自定义,比如我的命名为rpt
  然后对着集群名称右击选择 新建 ,输入其中一个节点IP,用户名,密码,端口一般都是默认的,可以点击 测试,确认是否连接成功;测试成功后点击保存。
  然后对着新建集群点击右键连接,输入密码确定即可
  2.1建表介绍
  介绍我使用过的哈希分布表,复制表建表SQL
  1、哈希表建表SQL:
CREATE TABLE  user_busi_log_20171210 (
BUSI_LOG_ID bigint(20) DEFAULT NULL COMMENT '受理日志编号',
BUSI_TYPE int(10) DEFAULT NULL COMMENT '业务类型',
BUSINESS_ID bigint(20) DEFAULT NULL COMMENT '操作编号',
OPER_TYPE int(10) DEFAULT NULL COMMENT '操作类型',
CUST_ID bigint(20) DEFAULT NULL COMMENT '客户编号',
STATE varchar(3) DEFAULT NULL COMMENT '记录状态',
OP_ID bigint(20) DEFAULT NULL COMMENT '操作员',
ORG_ID bigint(20) DEFAULT NULL COMMENT '组织单元',
DONE_CODE bigint(20) DEFAULT NULL COMMENT '受理编号',
CREATE_DATE datetime DEFAULT NULL COMMENT '创建日期',
NOTES varchar(255) DEFAULT NULL COMMENT '备注'
) COMPRESS(5, 5)   DISTRIBUTED BY('BUSI_LOG_ID')
  2、复制表建表SQL:
CREATE TABLE dim_order_type_20171210 (
ID varchar(200) DEFAULT NULL COMMENT '编码',
plan_id varchar(60) DEFAULT NULL COMMENT '套餐编号',
ord_type varchar(60) DEFAULT NULL COMMENT '订单类型',
CREATE_TIME varchar(6) DEFAULT NULL COMMENT '创建时间',
PROVINCE varchar(50) DEFAULT NULL COMMENT '省份',
CREATE_DATE varchar(8) DEFAULT NULL COMMENT '创建日期',
SYNC_DATE datetime DEFAULT NULL COMMENT '同步日期'
) COMPRESS(5, 5)   REPLICATED  DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'
  说明:一般建表会加压缩COMPRESS(5, 5),节省空间,默认表空间也可以不指定
  Gbase的日期格式如果需要秒,需要datetime类型,否则取不到秒,类似,to_char(),日期格式转换,其他常用的函数与oracle函数类似,具体函数使用了就明白了。
  3、Gbase数据测试
  Gbase数据库数据不论是抽取还是装载都需要一个加载机中转,可以理解为一个FTP中转,
  公司的ETL 工具gbase库装载,先抽取文件存放在加载机(ftp)上,然后清空需要装载的数据表(避免重复数据)后面在把ftp目录上的文件加载到目标表,最后是记录日志
  3.1日志查找
  装载报错后,点击对应节点看到的日志只有INFO和WARN,看不到有用的信息,第一次配置遇到错误很头大,因为没有看到明显的错误提示
  点击"HERE"找到加载机对应的节点
  然后去加载机(FTP登录的加载机是日志中打印的IP和用户名,密码可以找维护人员获取)
  找到这个端口下面的对应的日志信息
  比如我的端口是6683,日志目录在load6683下面 ,因为日志文件较多,可以模糊查询
  说明:_error_data.log 是错误的数据文件日志,l_og.log是日志文件
  ls -l *CM_DATA*.log 查询日志文件
  ls -l *CM_DATA*error*.log
  查看报错的.log日志文件(日志的文件名是由编号_用户名目标表名_执行日期_执行时间_加载机IP_log组成)
  cat 查看日志文件,如果太长可以使用 head 或者tail 查询指定的行数;
  日志提示字段长度不够(此处吐槽下因为测试的是一个FTP文件,原来数据提供方提供的是纯数据文件,这周数据文件包含了字段信息所以原来的长度不够,维护修改之后没有通知,看了文件才知道基本上所有字段长度都不够,本次测试是一个网络方面的有235个字段,维护修没通知的修改比较坑),因为字段太多,所以使用head -100 查看前面的字段长度是否都错了
  修改数据库表字段长度,然后在修改映射字段长度,保存后重跑,执行成功,数据库表记录如下图:
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号