ByConity 基础使用测试及反馈
业务背景
在实际业务中,用户会基于不同的产品分别构建实时数仓和离线数仓。其中,实时数仓强调数据能够快速入库,且在入库的第一时间就可以进行分析,低时延的返回分析结果。而离线数仓强调复杂任务能够稳定的执行完,需要更好的内存管理。
ByConity 是一款开源云原生数据仓库,可以满足用户的多种数据分析场景。ByConity 增加了 bsp 模式:可以进行 task 级别的容错;更细粒度的调度;基于资源感知的调度。希望通过 bsp 能力,把数据加工(T)的过程转移到 ByConity 内部,能够一站式完成数据接入、加工和分析。
测试环境
这里准备了 1t 的数据测试内容,并已经建立好了测试数据。
这里要把 22 改成 23 。
上手测试
先登录进数据库,并设置语言‘ANSI’
先从 sql21 开始这个比较简单。
经测试,0.2 秒返回数据 370000 行。
100 rows in set. Elapsed: 0.237 sec. Processed 373.07 thousand rows, 10.54 MB (1.58 million rows/s., 44.55 MB/s.)
测试下复杂的 sql 语句,如 sql 78
设置 SETTINGS
bsp_mode = 1,
distributed_max_parallel_size = 4; 这里提示内存不足。
改成 24 之后,
可以成功获取数据。
测试下 sql 79 通过限制内容大小实现内存溢出。
这里先设置 40000000000; 能正常获取数据。
改小点 35000000000;依然能获取数据。
在改小点,2000000000;成功触发 oom,内存溢出。
此时增加 bsp_mode = 1,
distributed_max_parallel_size = 12; 成功获取数据,解决 oom 问题。
通过大模型解析 sql
这里使用 kimi 询问 sql 79 是什么意思。
这段 SQL 代码是一个查询语句,用于从数据库中检索特定信息,并对其进行排序和限制结果数量。下面是对这个 SQL 语句的逐步解释:
查询字段:
c_last_name
和c_first_name
:客户姓氏和名字。substr(s_city,1,30)
:店铺所在城市名称的前 30 个字符。ss_ticket_number
:销售票据编号。amt
:优惠券金额总和。profit
:净利润总和。子查询:
子查询从
store_sales
、date_dim
、store
和household_demographics
四个表中查询数据。连接条件包括销售日期、店铺编号、家庭统计编号等。
过滤条件包括:
hd_dep_count
(家庭统计中的依赖人数)等于 6 或hd_vehicle_count
(车辆数)大于 2。d_dow
(星期几)为 1(通常是星期一)。d_year
在 1999 年、2000 年、2001 年之间。s_number_employees
(店铺员工数)在 200 到 295 之间。对结果进行分组,按
ss_ticket_number
、ss_customer_sk
、ss_addr_sk
和store.s_city
。主查询:
将子查询的结果(别名为
ms
)与customer
表连接,通过ss_customer_sk
和c_customer_sk
匹配。过滤后的结果按客户姓氏、名字、城市和利润排序。
结果限制:
使用
LIMIT 100
限制查询结果为前 100 条。设置:
max_memory_usage=40000000000
:设置查询过程中可以使用的最大内存量。bsp_mode = 1
:启用批量同步处理模式,这是一种数据处理模式,可以提高大规模数据处理的效率。distributed_max_parallel_size = 12
:设置分布式查询中的最大并行度为 12,意味着查询可以同时在最多 12 个并行任务中执行。
总的来说,这个 SQL 查询是为了找出符合特定条件的客户,他们在特定日期的购买行为(使用优惠券和产生的利润),并且这些客户的家庭统计信息符合特定的条件。查询结果按照客户的姓名和城市进行排序,并限制输出结果的数量。同时,通过特定的设置来优化查询性能和资源使用。
可以看出 大模型可以基本上判断出 sql 的大致意义。
使用总结
传统架构中,之所以要分别建设离线数仓和实时数仓,是因为常见的 OLAP 产品不擅长处理大量的复杂查询,很容易把内容打满任务中断,甚至造成宕机。
ByteHouse 具备 BSP 模式,支持将查询切分为不同的 stage,每个 stage 独立运行。在此基础上,stage 内的数据也可以进行切分,并行化不再受节点数量限制,理论上可以无限扩展,从而大幅度降低峰值内存。是一个使用非常良好的数据仓库,无论是上手难度还是查询速度。
文章参考:
https://www.infoq.cn/article/BHFjQFsLXzYzSbLLD4Fk
https://bytedance.larkoffice.com/docx/YjDxd9pgiouqMyxRsNVcLa5inGb
版权声明: 本文为 InfoQ 作者【endlessclould】的原创文章。
原文链接:【http://xie.infoq.cn/article/e2c7484d7d2c722aa25c55167】。文章转载请联系作者。
评论