张林
发布于

OushuDB课程学习笔记

基本原理:
产品架构:客户端——> 主节点——> 虚拟计算集群——> 虚拟存储集群
产品特性:存储与计算分离架构、分布式执行计划引擎、分布式任务调度引擎 QD、支持 SIMD 的极速执行引擎、分布式可插拔存储引擎
分布式事务管理、数据库元数据管理、全局资源管理

存储方式:magma、hdfs、对象存储
magma:Magma 存储的数据是表数据,是结构化数据,主要擅长数据更新和删除
hdfs:大数据高速、可靠的存储和访问
对象存储:本质上就是个 key-value 结构,key 是文件的 URL 路径,value 是对应的文件

用户指南:
创建数据库:初始化 postgres
CREATE DATABASE name;
查询数据库
SELECT datname FROM pg_database;
删除数据库:DROP DATABASE name;/dropdb dbname;
OushuDB 现在支持多种存储格式:ROW、ORC 和 Magma。ROW 是按行存储的格式,而 ORC、Magma 是按行列存
储的格式。 其中 Magma 是在 4.0.0.0 发布的全新的存储格式。Magma 和 ORC 都支持 update/delete, 且 Magma
还支持 index。
创建个带压缩的 ORC 表,需指定压缩类型。
with (appendonly =true, orientation =orc, compresstype = lz4);
MAGMA 格式的表不支持为列设置缺省值。
只有 MAGMA 表支持主键约束
MAGMA 格式的表,是不支持列约束和非空约束的,但支持主键约束。
CREATE TABLE example (
a integer,
b integer,
c integer,
PRIMARY KEY (a, c)
) FORMAT 'MAGMAAP';

--添加字段
alter table table_test add column fn number default 1;
--删除字段
alter table table_test drop column fn ;
--修改字段类型
alter table table_test alter column fn type character varying(4000);
--新建分区(range 和 list 分区)
alter table table_test add partition pm202201 start (date '20220101') end (date '20220201') ;

--新建租户
create role tom login password 'tom';
create schema tom authorization tom;
alter role tom set search_path to tom,public;
grant all on schema cat to tom;

--查看集群状态
select * from oushu_cluster_status;
--查看正在活跃的任务情况
select * from pg_stat_activity_globle;
--查询集群状态
select * from gp_segment_configuration
role 列可能展示的值有:
m:Master 节点
p:Segment 节点
s:Standby 节点
status 列表示此节点的健康状况:
u:up
d:down
--查询集群历史节点状态
select * from gp_configuration_history;

--查询资源队列
select * from pg_resqueue;
select * from pg_resqueue_status;
alter resource queue vc_default.pg_default with(active_statements=40);

select split_part(rsqname,'.',1) vc , split_part(rsqname,'.',2) res_name ,array_agg(rolname) as roles from pg_authid a full join pg_resqueue b on a.rolresqueue=b.oid group by 1,2 order by 3,2,1;

--创建外表
CREATE READABLE EXTERNAL TABLE test_table (
"a" character varying(50),
"g" character varying(50),
"c" character varying(50),
"d" character varying(50),
"e" character varying(50)
) LOCATION('gpfdist://127.1.0.0:8888/test_table.dat') FORMAT 'TEXT' (DELIMITER E'\x03' NULL '' escape '\') encoding 'utf8' log errors into err_ext_test_table reject limit 50 percent;

评论
    test