GBASE培训总结 下载本文

问题

10PB/节点有效数据?支持infiniband网络?PB级支持能力?pdf2ppt?备份库不能选库必须为全量?集群内跨库操作映射不支持?按秒存储时间?

背景: 三大应用

OLTP-OLAP-NOSQL

One size fits all to much size fit all

集群架构特征:

应用程序(接口层SQL->任一节点访问) 数据库节点(集群)(负载平衡) 数据分发节点(ETL) 外部数据来源

集群结构:

节点192个规格(64组*3节点),内部高速互联 分布式任务下发与回应 集群管理工具-集群节点N

节点GCCLUSTER数据管理层分解SQL任务管理,不进行计算

节点NODE数据存储计算实例,直接加载数据,不需经过GCCLSTER 节点GCWARE节点管理,节点为单位,非数据位单位

SAFE GROUP:多个节点组成,数据互为备份,根据数据量高可用要求进行配置节点数,组数,扩展时以safe group为单位进行,不是以节点为单位扩展,多副本(目前最多2副本,3节点1个组)

上部是应用接口层下部是基础层(UNIX系统)再下是数据分发节点及外部数据来源

核心技术:

1, 列存储,数量大越大效率越高

2, 高效压缩 1:20,提升I/O性能,以列为单位选择灵活压缩,表级压缩,配置文件配置全局

压缩,优先级列-表-全局三层压缩;列压缩方式选择(0,0)(1,3)(5,5),新建表才能改数据列压缩模式,旧的存储不能更改。

3, 智能索引:以数据包为单位建立索引,可扩展,占领空间小

4, 双向并行:单表 300GB/小时,多表300GB/小时,集群(20节点以上)2TB/小时 5, 全文检索:增加工具doc2txt,建立全文检索等模块,并行完成 理论极值:

列存 1TB-100GB

自适应压缩 100GB-10GB 智能索引 10GB-1GB 并行

逐步提升处理效率

架构演进:

单机数据库计算集中,存储集中

共享数据库计算分布存储集中

MPP+Shared nothing 计算分布存储分布 场景应用:

分析类应用查询统计数据挖掘全文检索 优势体现: 优秀与适合比较

PCSERVER+LINUX+SATA vs 小型机+UNIX+阵列 硬件成本几万元 目标:2014

结构化+半结构+非结构(30PB,500节点)

对接HADOOP可以处理非机构化数据如语音,视频等数据流 继续优化2013实现的功能包括阵列混存等

安装与卸载 集群规划

a.数据模型规划

数据部署方式:复制表(节点内,小表,或与其他表join较多的as复制表)分布表(组内节点间,大表as分布表)

分布表:随机分布表轮询,易有瓶颈;HASH分布表,以某一列做HASH计算,算出每个行(现在已经是块,65536行就是一个块,不是行)的HASH值进行节点分布,若HASH值分布密集也可能存在瓶颈 b.空间规划

2节点or 3节点做安全组

单节点:数据存储空间(复制表,分布表,分布表复件,索引),运算存储空间 硬件高可用

多网卡绑定:适配器容错,主备方式;负载均衡

系统占用1TB空间,ext4格式化,OPT目录存储业务数据及元数据gcnode,索引与元数据 Gccluster

目录大小:节点/ 50GB, /opt TB级别

客户端安装

企业管理器JDBC节点 或者

Gccli用户文件复制客户端 cat ~/

日常维护 命令行方式

Gcadmin查看正常的集群工作状态 active(前集群中Olline的节点个数大于1/2时),locked(当前集群中Online的节点个数小于等于1/2 时),模式noarmalreadonly recover 节点工作状态 online offiline各模组进程的工作状态open close,datastate节点数据一致性[0] [1] nodestate节点一致性

offline检查(节点硬件,gcware启动,)

模组进程close排除(7进程,ps–ef|grep进程名,service进程名 status,单独启动、停止

进程)

数据恢复datastate状态为1的故障排除(自动修复,节点内尽快恢复,集群层面加锁恢复后解锁,几秒周期比对,检查错误日志发现即触发,先DDL对表架构无操作后DML对表有增删改有操作)

手工节点故障排除(短时间无法修复需设置节点状态failure gcadminsetnodestatenodeip 192.168.1.2 failure)此时所有表锁住,然后自动恢复数据normal后再解锁。 Gcadmin–help

Gcadminshowlock(Orphan 孤儿锁孤节点) nmon检查内存使用率 df–h 检查磁盘空间

批处理SQL文件(-f强制执行出错场景)

用户密码加引号’’,否则是加密的非明文密码,比如’123456’ 授权grant all on test 收回revoke 查看本节点线程show[full] processlist 查看集群压缩 Desc test.t 查看列

扩容风险大,按组增加,需先规划(多种方案手工自动),再数据重分布(均匀分布或非对称分布)

Gcinstall.py

扩容数据重分布过程中集群状态:normal->readonly(耗时最长)->recover->normal 三个阶段:数据准备->数据切换->数据清理恢复

配置文件与原有最好修改为一致,避免因为默认与需求修改导致差异化

管理工具 集群加载

dispserver-dispcli-gbloader加载流程

错误数据日志,出现大量数据错误时,可以手工终止加载分析原因后再继续加载,比如任务文件定义不对导致的,分隔符问题,表定义不符,精度问题,datetime问题,空值问题等; 加载超时,比如网络故障;加载导致集群节点lock,需查看dispcli的log分析启动同步工具同步数据;磁盘空间不足,清理垃圾log。

Gcdump导出表结构和存储过程 (gcdump导出数据比较慢) 查询结果导出

(分布表可以导出为一个文本文件) 集群备份与恢复

(不能写readonly,全备,增备,从全备恢复故障数据,交互式或命令行式,定期任务执行命令行式,本地与异地备份恢复,银行异地恢复专门的备份服务器且空间占用小)

监控工具

查看,不能对节点做操作 采集中心 采集代理

监控网站

生产环境不建议部署在同一台机器上

监控任务临时打开关闭

Show variables like ’%sql_sta%’ Set [globe]

SQL介绍 数据类型

严格和近似(是否四舍五入) 与其他数据库对比 Int1、8

Smallintbigint

系统函数

与其他数据库对比

Gbase length 、char-length Oracle lengthb、length

trim去除语法 标识符64,256 Delimiter | Delimiter ;

数据库对象

数据库gbk,utf8字符集;表;视图;索引;存储过程;自定义funtion;…

Alter table 表名,加减列,修改列位置,但不能修改列属性,字符集,数据类型等,因为压缩导致或字段字段变长?

Truncate table不记录日志,删除所有行比delete快(delete打删除标记,数据还在),和drop table 差不多快,都可以释放空间,空间大小不变,空间利用率变化?

表语法

hash分布-distributed by 列

选择count(distributed)大的等

复制表语法(select随机分布like复制与原表一致)

nocopies表(可以被gcdump出表结构,转换成非nocopies可以导出数据,即做复制) 临时表(不可以被gcdump出表结构,session关闭就消失,不会被备份,省空间)

索引index globe(行),locale(DC datacell块,32K宽?)

系统表information——schema 全库查询每类数据库对象

Procedure、function

Creat /alter/drop,不能设断点,调试,直接使用select查询结果做判断比较麻烦 Delimiter |(begin end) Delimiter ;

Show procedure

Declare

get diagnostics

不支持for需结合游标替换

静态游标(不可以嵌套,可以重复使用),动态游标(存储过程使用,不能用在函数,可以配对嵌套使用)

预处理使用prepare execute

SQL限制

2000列,32k宽等

性能优化操作

1. 相关日志文件,trace,express,system,aduit保存目录下文件或者库系统表 2. 3.