Agile Query 全流程演示视频

2023-02-26 13:45:17 +08:00
 Braisdom
<amp-youtube data-videoid="ddAIC6FS4OI" layout="responsive" width="480" height="270"></amp-youtube>
4828 次点击
所在节点    程序员
66 条回复
boshok
2023-03-01 17:09:39 +08:00
@beneo 赞同。OP 有技术人员的执着,从上下文来看对 BI 的理解的确不太够,可以找一两本经典的书看看,再结合实际的项目对比下可能更好一些。另外,九几年的商用产品就有这些功能了。
Braisdom
2023-03-01 17:20:17 +08:00
@boshok
@beneo 感谢两位的提醒,等产品上线,邀请两位指点,多提点建议。目前这块国外的专利是 2020 下半年才出来,我看英文的专利文档费了好大的劲,完全颠覆了我超过 10 年的数据开发工作。
Braisdom
2023-04-21 09:17:36 +08:00
@beneo @boshok

https://v2ex.com/t/934205#reply0

这个贴子演示了在不加工数据的情况下,实现了复杂查询,有兴趣的可以交流一下。
boshok
2023-04-21 09:48:52 +08:00
@Braisdom #23 已看,没有任何新意。同样的东西看过太多了。
Braisdom
2023-04-21 09:51:55 +08:00
@boshok 麻烦问一下,你在其它什么地方看到基于复合函数生成 SQL 的。像 growth_of 类的。
Braisdom
2023-04-21 09:53:31 +08:00
@boshok 还有,在不提前做任何数据加工的情况下,能够进行各工复杂查询的工具,我也想学习一下。
boshok
2023-04-21 12:54:32 +08:00
@Braisdom #26 彼此对“复杂查询”的定义不同,你认为你演示的是复杂查询而已,实际还是要将基础逻辑放在语义层吧?恰好做过头部零售企业的项目,包含百货、奥莱、购物中心、免税、超市、便利店、电商复合业态。简单举例几个指标:不同等级会员的同店、跨店、折扣、看了又看、买了又买、跨渠道、遗失销售等。这些能体现在你的演示中可能更加有说服力。
Braisdom
2023-04-21 15:50:08 +08:00
@beneo 可以的,Agile Query 的函数是一种抽象的语义表达,我只是列举了几个常见的示例,您说的这些业务我后面会完善起来的,本质上这些统计都是不同维度的数据,聚合后进行的运算,基本上灵活的聚合+窗口,基本就可以实现了。
gaobh
2023-04-21 16:01:27 +08:00
接入 gpt 吧,你的功能都 out 了
Braisdom
2023-04-21 16:03:16 +08:00
@gaobh 是的,我们正在深试通过 GPT 生成 Agile Query 的统计公式(各和聚合函数),直接生成 SQL 难度比较大。
SQL 的编译还是必要的。
xenme
2023-04-21 17:54:04 +08:00
BI 连接数据库,拖一个 chart ,所谓的复合函数简单的 rank ,percentile ,MoM 啥的不都算是 table calculation 么,点一点 chart 和 table 数据都有了,也不需要写 sql

但上面几位提到的 BI 相关的 datasource/dataset 想换概念还是有的。确实没看出来有啥用。

最终也就简单的,复杂点还是得手写,AIML 相关的语义分析等,商业 BI 基本都开始标配了。

没啥用
Braisdom
2023-04-21 18:07:10 +08:00
@xenme 理论上再复杂的查询,也不需要写 SQL ,都可以通过 Agile Query 的函数实现,目前实现了 group_count, group_sum...,count_if, sum_if...,还有 growth_of 系列,rank_of 等这些很快也会实现,这些函数都可以内部嵌套普通聚合函数的运算。

还有,生成的 SQL 是比较复杂的,理论上可以实现所有复杂查询。
xenme
2023-04-21 18:13:11 +08:00
@Braisdom 常用的一个 BI 提供的内置函数:
Aggregate functions ,如 avgif,以及你说的 countif, sumif
Conditional functions , 如 coalesce, ifelse, switch
Date functions
Numeric functions
Mathematical functions
String functions
Table calculations 如 percentDiff, AvgOver, rank, runningAvg

这都是 BI 最基本的,这些做不了的。
xenme
2023-04-21 18:14:52 +08:00
打了一半,感觉楼主还是找个 BI 工具试试比较好。盲目造车没必要
Braisdom
2023-04-21 18:17:30 +08:00
@xenme 传统 BI 中的 countIf, sumIf 内部是不能嵌套其它聚合的,例如:

count_if(group_count(orders.id, customer.id) >= 2)

sum_if(group_count(orders.id, customer.id) >= 2, order_details.quantity * ordertails.unit_price)

单表,多表的运算都可以在一个公式中实现,Agile Query 可以动态的 join 多张表,进行计算,这是传统 BI 无法做到的。
Braisdom
2023-04-21 18:20:23 +08:00
@xenme 目前的 BI ,针对单表运算是足够了,如果同一个表达式中涉及多张表,目前我还没有看到。大都数是将多张表的数据合并到一张表中,然后再进行运算,这样数据工程师的工作量就大很多。Agile Query 本质上就解决任意多张表的数据运算,在同一个指标公式中,可以多张表同时运算,内部拆分不同的子查询和 Join
xenme
2023-04-21 18:25:22 +08:00
但也不是所有都不能嵌套,有些嵌套有冲突,所以不行。另外多表动态 join 不就是 dataset ,BI 也一样是定义关系,并不是提前 join 了大宽表(有性能要求场景有些会提前 join 缓存)
Braisdom
2023-04-21 18:29:30 +08:00
@xenme 多表 join 时,Agile Query 会自动处理 double-counting 的问题,会智能拆分子查询,传统的 BI 是需要数据工程师手工处理的,如果表比较多,数据工程师的工作量会非常大。
Braisdom
2023-04-21 18:31:57 +08:00
@xenme 多表 join 时,一对多,多对多这些问题都需要数据工程师自己处理,进行数据去重,而在 Agile Query 中,这些问题都是智能处理的。数据工程师完全不需要考虑这些事件,只需要知道指标是哪几个字段计算的就可以了。
xenme
2023-04-21 18:32:46 +08:00
@Braisdom 你的数据库连接和关系配置在 BI 里面叫 data source/connection 和 dataset ,并不是定义完了就是 join 好的。

你的数据库连接已经是所谓的处理好的数据了。数据库工程师处理只是把一些半结构化、非结构化的处理成结构化方便查询的,大宽表这种所谓计算好的也更多是因为类似数据需求多,处理好后性能更好,提供给更多的业务方,不单是给 BI 用,偏数仓了。

到现在没看到楼主的优势和应用场景

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/919259

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX