写一点最近看回复的感想

125 天前
 Braisdom

1 )大家对 DSL 普遍感到鄙视,认为作用不大,实现难度也不高 其实所有高级编程语言都是 DSL ,只不过是语言的特性多与少,Agile Query 的确设计了一种新的 DSL ,但也有程序编译的所有过程,从词法 -> 语法 -> 语义 -> IR -> 有向无环图,最终构建所有子查询,再优化子查询,输出 SQL 。

2 )对 BI 的认知误区 感觉 BI 系统就是要一层一层构建中间数据,这符合程序员的思维,将复杂问题分解成多个问题,逐个解决。Agile Query 提出了一种新的方式,将复杂的过程封装起来,外部无法感知而已,并不是复杂问题不存在了。

3446 次点击
所在节点    推广
53 条回复
leonhao
125 天前
@Braisdom 你这个前提就错了,首先复杂 SQL 没难度,难的是写出高性能的复杂 SQL 。第二 MPP 数据库大数据量下的复杂 SQL 效率没有非常高,这是分层搞中间表的非常重要的一个原因。
Braisdom
125 天前
@leonhao
1 )复杂 SQL 的难度是相对的,如果是 SQL 的高手,相信再复杂的 SQL 也不难,关键没有那么多高手,也不好找。
2 ) MPP 的性能也相对的,相比 5 ,6 年前的 MySQL 和 PG ,现在的 MPP 数据的查询性能要调出几百倍了。
Braisdom
125 天前
@leonhao

2 ) MPP 的性能也相对的,相比 5 ,6 年前的 MySQL 和 PG ,现在的 MPP 数据的查询性能要高出几百倍了。
Nile20
125 天前
@Braisdom 我对你的产品没有意见,毕竟我不是用户。但是如果你为产品的辩护是“在喷其它人的项目的同时,自己可以好好想想,自己能不能坚持 3 个月,半年搞一个小东西,做出来的东西敢于发出来让人挑战吗”,那可能你在产品推广策略上有一些优化空间。是否选择一款产品,是看它是否能有效解决需求,而不是开发者坚持做了多久。大家需要的是疗效,坚持了多久并不构成护身符。
Braisdom
125 天前
@Nile20 你说的当然正确了,我想表达的是产品的初期是很容易被扼杀的,大家多一些宽容,因为每个产品都是从初期发展起来的,就像我们面对刚毕业的大学生,多一些宽容更好。
lichao
124 天前
SQL 高手完全可以自己写 SQL ;
SQL 低手大概率学不好、也用不好你的小众 DSL
zvvvvv
124 天前
@Braisdom #7 两年多了,连个在线试用都没有,一开始还有些期待,但是现在的话真的没必要刷存在感了。用都用不了的东西,我看你文档有什么用。
Braisdom
124 天前
@zvvvvv 目前面向企业客户,个人用户暂时还不开放。
Braisdom
124 天前
@lichao 每个人的偏好不一样的,很难强求的。
locoz
124 天前
你似乎忽略了一个很关键的问题,就是你的产品本身是面向企业、面向不那么技术人员的人群的,你的主要目标也是企业用户,那你还在 V2EX 这种地方发推广干啥呢?纯纯的吃力不讨好...关键的潜在客户拉不到多少,还得花时间和精力应付挑毛病的,就很没必要。
Braisdom
124 天前
@locoz V2EX 只是一个渠道而已,不是唯一的渠道。指出产品的不足没关系,担心的是完全没看过产品,然后就在这里评论
如果看了还不了解,我可以修改文档,在贴子里回复,
dc2002007
124 天前
如果目标是为了写 sql 的话,那直接写 sql 就行,DSL 有点多余了,还得在学习一个新的语法,当然我不是很了解你的软件,若说的不对话可以接受批评。
Braisdom
124 天前
之前的贴子里已经讲到过,Agile Query 没有设计新的语法,和 SQL 一模一样,唯一的不同是多了大量分析型函数而已,通过这个函数,使用者不要关心 『多表聚合运算』。
Braisdom
124 天前
你的 SQL 可以写成这样,不用关心多表连接,聚合函数可以嵌套:

SELECT
COUNT_IF(GROUP_COUNT(orders.order_id, customers.customer_id) > 2) AS "复购客户数量",
categories.category_name AS "品类(指定关系)",
GROUP_SUM(order_details.quantity * order_details.unit_price, categories.category_name) AS "品类销售额",
SUM(order_details.quantity * order_details.unit_price) AS "销售额"
FROM "329875" LIMIT 2000
Braisdom
124 天前
上述 SQL 可以直接出结果
Braisdom
124 天前
@dc2002007
上术 SQL 涉及了 orders ,customers ,categories ,order_details ,categories 这些表,
这些表的连接你完全不用关系,内部的子查询也是自动生成的,输出的数据符你的要求。
Braisdom
124 天前
@Braisdom
@dc2002007
@lichao
@justdoit123
对上面的 DSL 你们会拒绝使用吗?
dc2002007
124 天前
@Braisdom 如果做到了特定数据关系范围的语法简化,那还是很有价值的
Braisdom
124 天前
@dc2002007 数据关系是预定义的,不需要每次查询时指定,当然也支持动态关系
lichao
124 天前
@Braisdom 完全不会考虑使用,理由之前说过了,会 SQL 的人会自己去写,不会 SQL 的人也学不会(大概也不愿意去学)你的 DSL 。

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

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

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

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

© 2021 V2EX