发布于

OushuDB课程学习笔记

一、OushuDB 简介
Oushu Database(简称 OushuDB)是一款高性能云原生数据仓库,可以轻松用于构建核心数仓、数据集市、实时数仓、数据湖和湖仓一体数据平台。
新一代云数据仓库,融合了 MPP 和 Hadoop 的两者的优点,并且解决了两者的缺点。在兼容性和性能等方面表现的很优秀。OushuDB 以偶数主导开源的 Apache HAWQ 为基础,从设计之初就定位在新一代云数据仓库。OushuDB 的新一代 SIMD 执行器比传统 MPP 要快 5-10 倍,比一般的 SQL-on-Hadoop 要快 20 倍左右。OushuDB 支持 Update/Delete 和混合工作负载,实现了自己的存储,突破了 HDFS 的瓶颈。在可扩展性方面,因为采取了存储与计算分离的架构,可以扩展到上万节点,并且可以原生适应云计算的弹性需求。从而可以彻底满足 AI 和云时代的海量数据存储和分析的需求。
二、OushuDB 的产品特性
1.存储与计算分离架构
多个主节点处理用户对数据库的连接请求 (JDBC/ODBC),处理用户认证及协调分布式执行计划引擎、数千个计算/存储节点分布式调度服务来完成后续 SQL 查询的处理流程。
2.分布式执行计划引擎
负责用户端标准 SQL 语句的解析、语意检查、基于代价的查询优化到最终产生分布式的查询任务规划工作。
3.分布式任务调度引擎 QD
负责执行计划的分发与执行状态跟踪,同时也负责节点间的数据分发。
4.支持 SIMD 的极速执行引擎
负责将分布式调度引擎转发的逻辑计划转换成物理计划并完成资源配置,启动并控制整个查询计划的执行并将执行结果透过分布式调度引擎传回上层执行节点。
5.分布式可插拔存储引擎
提供支持 HDFS/S3/本地表存储等多种存储引擎及数据格式(行存、列存)数据的编码、 压缩、存储与读写等机制。
6.分布式事务管理
提供全局的数据库读写 ACID 机制, 支持分布式锁, 支持并发读写能力。
7.数据库元数据管理
提供数据对象管理与存储,支持基于 MVCC 的事务处理机制。
8.全局资源管理
提供支持多租户的基于多级资源队列的全局任务资源统一分配。

三、OushuDB 的常用命令

1.创建数据库
CREATE DATABASE name
还可以在 shell 中⽤ createdb 程序来创建新数据库:createdb dbname
2.删除数据库
DROP DATABASE name
在 shell 上可以通过 dropdb 删除数据库:dropdb dbname
注:只有数据库的所有者或者超级⽤户才可以删除数据库,删除数据库会删除数据库中包括的所有对象,且数据库的删除操作是不可恢复的。
3.创建数据表
drop table if EXISTS my_first_table;
CREATE TABLE my_first_table (
first_column text,
second_column integer
);
OushuDB 现在⽀持多种存储格式:ROW、ORC 和 Magma。ROW 是按⾏存储的格式,⽽ ORC、Magma 是按⾏列存储的格式。 其中 Magma 是在 4.0.0.0 发布的全新的存储格式。Magma 和 ORC 都⽀持 update/delete, 且 Magma 还⽀持 index。
① 缺省值:在创建数据行的时候不去给这些列指定值的时候,这些列将被填充为它们相应的缺省值;如果没有明确缺省值,那么缺省值为 null。
CREATE TABLE products (
product_no integer,
name text,
price numeric DEFAULT 9.99
);
② 检查约束
CREATE TABLE products (
product_no integer,
name text,
price numeric CHECK (price > 0)
);
③ 非空约束
CREATE TABLE products (
product_no integer NOT NULL,
name text NOT NULL,
price numeric
);
④ 主键约束
CREATE TABLE products (
product_no integer,
name text,
price numeric,
PRIMARY KEY (product_no)
) FORMAT 'MAGMAAP';
4.删除数据表
DROP TABLE my_first_table
5.修改数据表
① 增加列
ALTER TABLE products ADD COLUMN description text DEFAULT value
表中已经存在的⾏在新增列后,会在该列先填充所给出的缺省值 ( 注意: ROW 格式的表在添加新列时必须设置缺 省值)。
② 删除列
ALTER TABLE products DROP COLUMN description;
③ 增加约束
ALTER TABLE products ADD CHECK (name <> '');
④ 删除约束
ALTER TABLE products DROP CONSTRAINT some_name;
⑤ 改变列的缺省值
ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;
⑥ 改变列的数据类型
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
⑦ 重命名列
ALTER TABLE products RENAME COLUMN product_no TO product_number;
⑧ 重命名表
ALTER TABLE products RENAME TO items;

评论
    test