发布于

OushuDB学习心得

第四期学习 OushuDB 学习心得
一。发展历程学习
OushuDB 的发展历程的学习了解到偶数科技是⼀家领先的云数仓和 AI 产品提供商,致⼒于赋能全球各⾏业客户。OushuDB 也拥有诸多的技术创新点和⼴阔的市场前景。本系列课程将帮助学员深⼊浅出的学习 OushuDB 技术原理和使⽤,逐步成⻓为 OushuDB 数据库资深专家。
优势:
新⼀代云数据仓库,融合了 MPP 和 Hadoop 的两者的优点,在兼容性和性能等⽅⾯补⾜了以往产品的短板,整体表现更优秀。OushuDB 从设计之初就定位在新⼀代云数据仓库,其新⼀代 SIMD 执⾏器⽐传统 MPP 要快 5-10 倍,⽐⼀般的 SQL-on-Hadoop 要快 20 倍左右。OushuDB ⽀持 Update/Delete 和混合⼯作负载,实现了⾃研存储、对象存储,突破了 HDFS 的瓶颈。在可扩展性⽅⾯,采取了存储与计算分离的架构,可以扩展到上万节点,并且可以原⽣适应云计算的弹性需求的优势。
学习的主要内容 oushuDB 数据库的基本原理:
二。产品特性
储与计算分离架构:多个主节点处理⽤户对数据库的连接请求 (JDBC/ODBC),处理⽤户认证及协调分布式执⾏计划引擎、数千个计算/
存储节点分布式调度服务来完成后续 SQL 查询的处理流程。
分布式执⾏计划引擎:
负责⽤户端标准 SQL 语句的解析、语意检查、基于代价的查询优化到最终产⽣分布式的查询任务规划⼯作。
分布式任务调度引擎 QD:
负责执⾏计划的分发与执⾏状态跟踪,同时也负责节点间的数据分发。
⽀持 SIMD 的极速执⾏引擎:
负责将分布式调度引擎转发的逻辑计划转换成物理计划并完成资源配置,启动并控制整个查询计划的 执⾏并将执⾏
结果透过分布式调度引擎传回上层执⾏节点。
分布式可插拔存储引擎:
提供⽀持 HDFS/S3/本地表存储等多种存储引擎及数据格式(⾏存、列存)数据的编码、压缩、存储与读写等机制。
分布式事务管理:
提供全局的数据库读写 ACID 机制,⽀持分布式锁, ⽀持并发读写能⼒。
数据库元数据管理:
提供数据对象管理与存储,⽀持基于 MVCC 的事务处理机制。
全局资源管理:
提供⽀持多租户的基于多级资源队列的全局任务资源统⼀分配。
三。部署安装:
安装分为可视化安装命令安装,具有安装简单及装即用的好处。
四。使用 OushuDB:
在理解 OushuDB 的基本原理的前提下使用它简单易上手,SQL 语法和指令具有一定的通用性,对数据库的增删改查命令与传统的 MySQL 是大同小异的,OushuDB 也保留自己的独特性,可以建表常用的有三种格式 row、orc、magma,ROW 是按⾏存储的格式,⽽ ORC、Magma 是按⾏列存储的格式。 其中 Magma 是在 4.0.0.0 发布的全新的存储格式。Magma 和 ORC 都⽀持 update/delete, 且 Magma
还⽀持 index。。且每个格式的有各自的优势,只有 MAGMA 表⽀持主键约束,⽽且在创建 MAGMA 表时,可以声明主键列,且主键约束的列⾥数据类型为⾮定⻓时需要将该列放置最后⼀列。同时创建表可以对表或字段做很多所需的约束,对表和字段可进行增删改查。
五。OushuDB 管理
OushuDB 管理可使用命令常⻅的状态监控⼀般包括如下⼏种:
命令⾏检测:oushudb state
SQL 检测:SELECT * FROM gp_segment_configuration; 我们可以通过这条命令所查询的表来查看节点的状态
数据库连接数检查:select count(1) from pg_stat_activity ; 来查看当前正在活跃任务的情况
select count(1) from pg_stat_activity where current_query<>'' and procpid<>pg_backend_pid();
通过偶数云平台可视化监控,我们可以查询的信息包括

  1. 集群信息:在图中我们可以看到当前集群包括了 Kafka、LittleBoyServer、Spark、Hawk 以及 HDFS 等等
  2. 其次,我们可以看到每个集群的详细信息。包括集群的节点数、创建者、状态,以及关联的集群等等
  3. 然后,我们还可以看到集群的设备 CPU 状态、内存状态、磁盘 IO 状态、⽹络 IO 状态的监测情况。CPU、内存
    等状态,还可以查询使⽤ TOP5 的情况。OushuDB 使用 角色 的概念管理数据库访问权限。 根据角色自身的设置不同,一个角色可以看做是一个
    或者一组数据库用户。 角色可以拥有数据库对象(比如表)以及可以把这些对象上的权限赋予其它角色,
    以控制谁拥有访问哪些对象的权限。另外,我们也可以把一个角色的 成员 权限赋予其它角色,这样就允
    许成员角色使用分配给另一个角色的权限。
    六。数据库具有简单的进行数据迁移
  4. 通过 gpfdist 外部表导⼊导出数据
    2.通过 hdfs 外部表导入导出数据
    3.使⽤ COPY 命令导⼊导出数据
    七。编程接口
    1.OushuDB 兼容 PostgreSQL,允许使用除了 SQL 和 C 之外的其他语言编写用户定义的函数。这些其他的语言通常被称作过程语言(Procedural Language, PL)。对于一个用过程语言编写的函数,数据库服务器没有关于如何解释该函数的源文本的内建知识。因此,这个任务被交给一个了解语言细节的特殊处理器。该处理器能够自己处理所有的解析、语法分析、执行工作,或者它可以作为一种 PostgreSQL 和编程语言既有实现之间的“粘合剂”。就像任何其他 C 函数一样,处理器本身是一个编译到共享对象并且按需载入的 C 语言函数。
    2.JDBC(Java DataBase Connectivity,Java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。也就是在开发 Java 程序时,可以使用 JDBC 来连接数据库,对数据库进行增、删、改、查等等。
    3.libpq 是 PostgreSQL 的 C 应用程序接口。Libpq 由相关库函数组成,可以允许客户端程序通过将查询传递给 PostgreSQL 后台服务器并接收这些查询返回的结果。同时,libpq 也是其它几个 PostgreSQL 应用程序接口的基础引擎,包括 C++,Perl,Python,Tcl 和 ECPGC 编程的嵌入式 SQL。OushuDB 与 PostgreSQL 兼容,同样可以通过 libpq 来进行数据库连接和数据操纵。
    4.OushuDB 兼容 PostgreSQL,可以兼容 PostgreSQL 的 ODBC 驱动,我们可以安装驱动后连接 OushuDB。
    总的来说,OushuDB 是很适合大数据处理,具有高效的数据处理能力,用户使用简单易上手,运维维护简单的优势。
评论
    test