【已解决】关于数据冷热分层和弹性计算节点

Viewed 69
  1. Doris在1.2增加了BE计算节点,在2.1做了优化,适用的场景主要是查询Hive等外表的场景(优先选择计算节点),那适不适用冷热分层的表(热数据在BE本地,冷数据在HDFS或S3)?
  2. 假如Doris一张表用了冷热分层,冷数据存在HDFS上,如果我在HDFS的节点上部署3个BE弹性计算节点,当一个查询包含这张表的冷数据时,如果Doris会优先选择计算节点,而计算节点和HDFS都在同一个节点,对HDFS冷数据的查询性能是不是会更快一些(相比非HDFS节点的BE混合节点)?
  3. 还是冷热分层的表,如果查询只涉及到热数据(BE本地),在查询时,还会将计算任务分配给计算节点吗?
  4. 选择计算节点的优先策略,如果仅查询内表或冷热分层表的热数据,能不能不将计算任务分给计算节点,只选择混合节点做计算?
1 Answers
  1. BE计算节点只适合外表查询;冷热分离不行。
  2. 相对会节省些网络io,但混部需要特别注意两个高io需求的组件之间的资源抢占问题如何规避。
  3. 对于只涉及热数据的查询,如果配置了优先使用计算节点的策略,且计算节点可用,那么计算任务仍可能分配给计算节点;但如果没有特别指定,或者配置了不优先使用计算节点,那么查询可能会分配给混合节点。
  4. 关于选择计算节点的优先策略,如果仅查询内表或冷热分层表的热数据,可以通过配置 prefer_compute_node_for_external_table 为 false 来避免将计算任务分配给计算节点,仅使用混合节点进行计算。此外,通过设置 min_backend_num_for_external_table 参数,可以控制参与计算的最小BE节点数量,从而影响计算节点的选择:Compute Node