OushuDB学习心得
复习第二章的第四节 OushuDB 基础架构、第二章的第五节 OushuDB 的计算引擎及其执行器、优化器、第二章的第六节 OushuDB 的查询执行过程和第二章的第七节 OushuDB 的外部接口。
1、OushuDB 有不同的角色(Master 节点,Standby 节点、N 个 Segment 节点),到 Master 节点的一系列的进程,他们负责同时进行任务分解并且 dispatcher(调度)。当进程进一步执行时,会动态的生成新的 QD(Query Dispatcher)和 QE(Query Executor)的进程。
2、数据库的计算引擎性能有多重要?我们可以拿汽车做个简单类比。服务器硬件配置是基础设施,相当于汽车行驶的道路,高速公路和山村土路的行驶效果肯定是不一样的;SQL 的查询优化相当于驾驶水平;而数据库计算引擎就相当于汽车发动机,既是数据库性能的源动力,也是各家厂商最核心的技术壁垒。
如果把数据库内核看成一个组织,那么优化器就位于组织的最上层作为组织的首脑发号施令;执行器位于组织的中间,严格执行优化器下发的计划,从存储空间中读取数据进行加工处理,最终返回给客户端。
执行器是数据库内核最重要的部件之一。提升执行器的性能,会很大程度上提升数据库性能,因此各大数据库厂商都纷纷投入很多精力到执行器技术的研发中。
3、视频课程案例一讲解:首先,我们来分析一下这个 query,从 Master 上接收到语句,我们会进行 parser 分析检查在字典表上是否存在,将 SQL 转换成一棵语法树。从里可以看到它是要进行两表连接,先在表上进行过滤,再连接,最终进行 aggregation(集合)操作,通过查询优化器选择最优的查询计划。我们可以看到,左右生成了是两个查询计划,这两个查询计划有区别呢?首先,OushuDB 是分布式的集群,数据会分布到各个节点上,按照 Hash 分布或者是 random,Hash 分布我们需要指定分布 key。当两个节点做连接的时候,连接条件相同的这些数据必须在同节点,才能保证连接,连接条件才能完成。
4、OushuDB 的支持的客户端工具,第一个 PSQL,PSQL 是 PostgreSQL 中的一个命令行交互式客户端工具。安装的 Oushu DB binary 里面会自动安装了 PSQL。JDBC 在 Oushu Software Tarball 里面涵盖了 JDBC jar 包,它也可以兼容 PG 官方 JDBC。目前我们没有提供单独的 ODBC,可以兼容 PG 官方 ODBC。ODBC 和 JDBC 都可以通过编写程序的标准接口,一个是 Java 接口,一个是 ODBC 接口。官方已经列出来了所需要 API 支持,那用户可以根据些 API 来写直接访问读取数据库里的数据。此还有 PGAdmin 的面客户端工具,是官方的 UI 的工具。