OushuDB学习心得&学习笔记

通过参加本次公司的 OushuDB 培训,了解并学习了 OushuDB 的优势和易用性,OushuDB 采用计算存储分离架构,按需分别扩展存储或计算资源。通过虚拟计算集群、虚拟存储集群和多活主节点,最大程度地利用资源,保证整体系统能够支持更多的用户并发和更大的数据量,从而实现对大规模数据进行查询和高效分析。
1、OushuDB 的分布分区
在 OushuDB 中,表可以两种方式分布方式:基于 Hash 的分布和 Random 分布。基于 Hash 的分布方法基于分布列的 Hash 值进行分布,Random 分布采取随机分布模式。针 对 Hash 分 布 的 表,bucketnum 决 定 了 一 个 查 询 的 并 行 度。 在 一 些 常 见的 硬 件 配 置 中 (128G 内 存 和 12 块 SAS 盘) , 我 们 建 议 选 取 6 * 节 点数 或 者 8 * 节 点 数。 硬 件 更 好 的 话 可 以 增 加 bucketnum。Magma table 使 用
default_magma_hash_table_nvseg_per_node, 表示每个节点是 virtual segment 的个数。
针对大的数据仓库事实表,往往我们可以通过对表进行分区的方式来把一个很大的表拆分成多个子表,OushuDB 支持基于 Range 和 List 的两种分区方式。
Range 分区:依据数值范围进行分区,比如日期,价格等
List 分区:依据一个值的列表进行分区,比如地区等
2、OushuDB 的查询优化
一个查询会启动多少个 virtual segment,即查询的并行度是多少是由以下因素决定的。
通常用户使用 OushuDB 并不需要知道 OushuDB 如何分配 Virtual Segment 的细节。
OushuDB 会自动优化选择并行度。
• 查询的代价:小查询 OushuDB 会使用少量的 virtual segment,大查询 OushuDB
使用的 virtual segment 数会多一些。
• 查询执行时可使用的资源:如果在查询执行时可以使用的资源比较多的话,OushuDB 会使用更多的 virtual segment。

评论
    test