1.Oushu Database(简称 OushuDB)是由顶级数据库项目创始团队打造的新一代云原生分布式数据库,能够同时支持公有云与私有云。该产品采用存储计算分离架构,具有 MPP 的所有优点,服务层、计算层、存储层均可弹性扩展,支持混合工作负载并具备高扩展性。遵循 ANSI-SQL 标准,具有极速执行器,提供 PB 级数据交互式查询能力。并且提供对主要 BI 工具的描述性分析支持和高级机器学习功能。兼容 Oracle,GPDB 和 PostgreSQL,可以轻松取代传统数据仓库包括 Teradata,Oracle,DB2,Greenplum 和 SQL-on-Hadoop 引擎。
2.OushuDB 现在支持多种存储格式:ROW,ORC,Hudi,MagmaAP。ROW 是按行存储的格式,而 ORC,Hudi,MagmaAP 是按行列存储的格式。默认创建的是 ORC 表。
3.如果给出了一个 LIMIT 计数,那么将返回不超过该数字的行(也可能更少些,因为可能查询本身生成的总行数就比较少)。LIMIT ALL 和省略 LIMIT 子句是一样的。OFFSET 指明在开始返回行之前忽略多少行。OFFSET 0 和省略 OFFSET 子句是一样的,如果 OFFSET 和 LIMIT 都出现了,那么在计算返回的 LIMIT 之前先忽略 OFFSET 指定的行数。
4.数值类型:
smallint:小范围整数
integer:常用的整数
bigint:大范围整数
decimal:用户指定的精度,精确
numeric:用户指定的精度,精确
real:可变精度,不精确
double precision:可变精度,不精确
smallserial:自增的小范围整数
serial:自增整数
bigserial:自增的大范围整数
5.布尔类型
OushuDB 支持 SQL 标准的 boolean 数据类型。boolean 只能有”true”(真) 或”false”(假) 两个状态,或第三种”unknown”(未知) 状态,用 NULL 表示。
“真”值的有效文本值是:
TRUE
‘t’
‘true’
‘y’
‘yes’
‘1’
对于”假”,你可以使用下面这些:
FALSE
‘f’
‘false’
‘n’
‘no’
‘0’
6.因为 OushuDB 和 PostgreSQL 兼容,所以可以使用 PostgreSQL 的驱动和编程接口来访问 OushuDB。
• JDBC 访问 OushuDB
• libpq 访问 OushuDB
• ODBC 访问 OushuDB
7.通过如下命令得到处于不健康状态 OushuDB 的节点
SELECT * FROM oushu_cluster_status
WHERE status <> 'u';
8.创建内部表语法
drop table if exists schemaname.tablename;
create table schemaname.tablename
(
S_SUPPKEY bigint,
S_NAME CHAR(25),
S_ADDRESS VARCHAR(40),
S_NATIONKEY bigint,
S_PHONE CHAR(15),
S_ACCTBAL DECIMAL(15,2),
S_COMMENT VARCHAR(101),
tmpcol text
);
9.创建外部表语法
drop external table if exists schemaname.tablename;
create readable external table schemaname.tablename
(
S_SUPPKEY bigint,
S_NAME CHAR(25),
S_ADDRESS VARCHAR(40),
S_NATIONKEY bigint,
S_PHONE CHAR(15),
S_ACCTBAL DECIMAL(15,2),
S_COMMENT VARCHAR(101),
tmpcol text
)location ('gpfdist://10.0.196.209:8888/tpch/1/supplier.tbl*')
format 'text' (delimiter '|' null ");
10.查看资源队列
select * from pg_resqueue;
select * from pg_resqueue_status;
11.查看虚拟子集群
select * from oushu_cluster_status;
select * from pg_vcluster;
12.pl/pgsql 语法
CREATE FUNCTION schemaname.tablename(v1 anyelement,v2 anyelement,v3 anyelement)
RETURNS anyelement AS $$
DECLARE
result ALIAS FOR $0;
BEGIN
result := v1+v2+v3;
RETURN result;
END;