V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Braisdom  ›  全部回复第 15 页 / 共 31 页
回复总数  611
1 ... 11  12  13  14  15  16  17  18  19  20 ... 31  
2023-04-21 20:07:42 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@ervqq 视频中有详细的介绍,
销售额同环比增长,客户数量同环比增长,销售量同环比增长都是通过 monthly_growth_of ,系统里还有 yearly_growth_of ,daily_growth_of 这些函数,都是很方便使用用的。

示例:
MONTHLY_GROWTH_OF(
SUM(order_details.quantity * order_details.unit_price),
orders.order_date,
1
)

第一个参数支持各种聚合函数,第二参数是日期字段,第三个字段是窗口大小和距离,如果是月,1 就代表一个朋的比较,12 就意味着去年的相同的月份。
2023-04-21 19:22:36 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@youngce 只有没有 JOIN 的数据库才会没有 Chasm 和 Fan Trap ,如果有 JOIN 就无法避免
2023-04-21 18:52:34 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@Lilacs
@xenme

在不用人工干预的情况下,智能解决关系数据中的,Chasm & Fan Trap 是 Agile Query 最核心的能力,有兴趣的可以看一下: https://docs.sisense.com/main/SisenseLinux/chasm-and-fan-traps.htm 这篇文章。
2023-04-21 18:48:41 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@Lilacs
superset, metabase, tableau, qulik, looker 这些 BI ,当然也包括国内的 BI ,目前都没办法解决关系数据库中 chasm & fan trap 。
2023-04-21 18:46:20 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@Lilacs metabase 的代码我都读完了,它也没办法解决,多对多 join 时,不用写 SQL 的问题。
2023-04-21 18:44:08 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@xenme 如果没有大宽表,不用关心数据的重复计算,性能也特别高,当然也不需要写复杂的 SQL ,这难道不是一种更好的选择吗?
2023-04-21 18:41:34 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@xenme 如果做数据报表,出现的最多的问题就是因为一对多,多对多产生的数据重复计算的问题吧,而这些问题在 Agile Query 中,你可以完全忘记它。这就是 Agile Query 最大的优势。

大宽表是一种畸形的设计,对低层数据的变化,数据的一致性,数据的实时性响应都非常差,是由于针对技术实现的一种折中的做法。
2023-04-21 18:31:57 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@xenme 多表 join 时,一对多,多对多这些问题都需要数据工程师自己处理,进行数据去重,而在 Agile Query 中,这些问题都是智能处理的。数据工程师完全不需要考虑这些事件,只需要知道指标是哪几个字段计算的就可以了。
2023-04-21 18:29:30 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@xenme 多表 join 时,Agile Query 会自动处理 double-counting 的问题,会智能拆分子查询,传统的 BI 是需要数据工程师手工处理的,如果表比较多,数据工程师的工作量会非常大。
2023-04-21 18:20:23 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@xenme 目前的 BI ,针对单表运算是足够了,如果同一个表达式中涉及多张表,目前我还没有看到。大都数是将多张表的数据合并到一张表中,然后再进行运算,这样数据工程师的工作量就大很多。Agile Query 本质上就解决任意多张表的数据运算,在同一个指标公式中,可以多张表同时运算,内部拆分不同的子查询和 Join
2023-04-21 18:17:30 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@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 无法做到的。
2023-04-21 18:07:10 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@xenme 理论上再复杂的查询,也不需要写 SQL ,都可以通过 Agile Query 的函数实现,目前实现了 group_count, group_sum...,count_if, sum_if...,还有 growth_of 系列,rank_of 等这些很快也会实现,这些函数都可以内部嵌套普通聚合函数的运算。

还有,生成的 SQL 是比较复杂的,理论上可以实现所有复杂查询。
2023-04-21 16:03:16 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@gaobh 是的,我们正在深试通过 GPT 生成 Agile Query 的统计公式(各和聚合函数),直接生成 SQL 难度比较大。
SQL 的编译还是必要的。
2023-04-21 15:50:08 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@beneo 可以的,Agile Query 的函数是一种抽象的语义表达,我只是列举了几个常见的示例,您说的这些业务我后面会完善起来的,本质上这些统计都是不同维度的数据,聚合后进行的运算,基本上灵活的聚合+窗口,基本就可以实现了。
2023-04-21 09:53:31 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@boshok 还有,在不提前做任何数据加工的情况下,能够进行各工复杂查询的工具,我也想学习一下。
2023-04-21 09:51:55 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@boshok 麻烦问一下,你在其它什么地方看到基于复合函数生成 SQL 的。像 growth_of 类的。
2023-04-21 09:19:40 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 的 SQL 编译器如何实现复杂查询的
想试用的朋友可以联系我。
2023-04-21 09:17:36 +08:00
回复了 Braisdom 创建的主题 程序员 Agile Query 全流程演示视频
@beneo @boshok

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

这个贴子演示了在不加工数据的情况下,实现了复杂查询,有兴趣的可以交流一下。
2023-03-17 10:46:50 +08:00
回复了 dust0522 创建的主题 程序员 mysql 查询时的优化
这难道不是 MySQL 的 Bug 吗?
2023-03-06 12:13:46 +08:00
回复了 qlzf199 创建的主题 程序员 创业互助小组,欢迎对创业、副业领域感兴趣的小伙伴加入
braisdom 帮忙拉一下
1 ... 11  12  13  14  15  16  17  18  19  20 ... 31  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1680 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 16:24 · PVG 00:24 · LAX 08:24 · JFK 11:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.