OushuDB初体验
作为以为从业 7 年从事数据开发的开发工程,经历 sqlserver/mysql/db2/informace/oracle/传统的数据,再到 MPP 数据库 pgsql,再经过到接触了 hadoop (cdh/tdh)现在,我对数据开发效率和环境部署,数据扩容等等内容有很深的印象,传统的 Oracle 虽然稳定,但是扩容成本很高,haddop 虽然解决了扩容的问题,但是 SQL 的兼容性比较差,性能一般,update/delete 操作以及混合工作负载,支持不好!的新一代云数据仓库,融合了 MPP 和 Hadoop 的两者的优点,在兼容性和性能等方面补足了以往产品的短板,整体表现更优秀。OushuDB 从设计之初就定位在新一代云数据仓库,其新一代 SIMD 执行器比传统 MPP 要快 5-10 倍,比般的 SQL-on-Hadoop 要快 20 倍左右。OushuDB 支持 Update/Delete 和混合工作负载,实现了自研存储、对象存储,突破了 HDFS 的瓶颈。在可扩展性方面,采取了存储与计算分离的架构,可以扩展到上万节点,并且可以原生适应云计算的弹性需求。
其次我通过了第二章的学习,了解了 oushudb 的架构:包含了客户端/主节点/虚拟计算集群/虚拟存储集群,主节点包含资源管理/优化器解析器等组件。其中对其比较感兴趣的是:计算层可以被划分为多个虚拟计算集群 (Virtual Compute Cluster) ,每个虚拟集群相互独立,并且支持动态弹性扩展。每个虚拟计算集群下可以划分多个虚拟计算集群实例,这些实例能够很方便的提供多租户支持。每个虚拟计算集群实例又包括多个计算节点。每个计算节点上会运行一个 OushuDB 子节点(Segment) 。计算节点可以动态添加,节点加入到虚拟计算集群后即可接受查询任务。子节点实现了 ushuDB 的计算,在执行查询时,会在资源容器中启动多个查询执行器(Ouerv Executor) ,实现对数据的并行处理。计算层支持全新的 SIMD 向量化执行引擎,相比于传统的 MPP 数据库,查询性能可以实现数量级提升。计算层的集群虚拟化能够在物理上进行计算资源隔离,高效隔离执行错误,快速容错,增强计算弹性,集群内的数据共享也解决了数据孤岛问题。
虚拟存储集群(Virtual Storage Cluster) 是 OushuDB 的存储层,由存储节点组成的多个可插拔存储集群组成 OushuDB 支持可插拔存储,包括 Magma、 HDFS、S3,并支持用户对存储集群按照不同的特性与用途进行集群分组,这些不同的存储集群是 OushuDB 中的虚拟存储集群。存储集群虚拟化可以支持更大规模的存储,支持多租户的存储资源隔离,并提供全球级别的数据分布和更高的容灾级别。Magma 是 OushuDB 自研的存储模式,是一种高可用的支持分布式事务的高性能分布式存储,支持存储与计算分离架构。在虚拟存储集群中,主要分两类:元数据集群与数据集群。元数据集群依托于 Magma 存储,是 OushuDB 用来管理元数据的集群,相比于传统的集中式元数据管理,元数据集群能够极大的提高元数据管理上限,提升数据库容错能力。用户数据存储则到数据集群中。
经过了一个月的学习,学习了数据定义/数据查询/数据类型/数据操纵/函数/索引/事物和锁,并通过了模拟考试,获得实践的操作,提升自身的知识储备,我在学习过程,提升了对 oushudb 的更深的了解,并希望在后面能够,去参加更深的 oushudb 的项目,将自身所学得到应用。