前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL一秒变命令,分析师都爱哭了

SQL一秒变命令,分析师都爱哭了

作者头像
用户2936994
发布2022-07-21 14:09:14
2420
发布2022-07-21 14:09:14
举报
文章被收录于专栏:祝威廉祝威廉

一般而言,分析师交付的自己工作成果的方式有:

  • 原生SQL或者数仓表
  • 报表
  • 邮件(excel附件以及html table等)
  • PPT(分析报告)
  • Word/Wiki(分析文档说明)

这五种应该是比较普及的。如果分析师所在公司数据平台比较成熟,也可以直接:

  • 表单交付
  • API交付
  • 文件交付(比excel,csv等的下载链接)

简单解释下,表单交付是指将SQL语句转化为表单。在MLSQL里其实非常容易做到这点,基本不会遇到任何困难。表单交付是一个极为优秀的交付方式,用户得到不再是数据,而是一段计算逻辑,但用户看到的交互形态是表单,而且用户有一定的自由度。这个是我非常推荐的一种交付方式。

API交互顾名思义就是交付一个接口。文件交付则是在数据平台可自动生成数据的现在链接地址。

然鹅,今天我们会提供一个全新的交付方式,当当当,全新闪亮登场(:

命令

该功能为MLSQL原生支持。

Hello World示例

我们有一条SQL语句如下:

代码语言:javascript
复制
select "hello world" as value as output;

执行后的结果如下:

虽然简单,但毕竟还是标准的SQL语句,用户需要学习。所以能不能搞简单点? 把这条SQL简化成一条命令? 答案是阔以:

代码语言:javascript
复制
set hello='''

select "hello world" as value as output

''';

!hello;

设置一个变量,然后把SQL语句放到这个变量里面。注意最后一句不需要加分号。

接着就可以使用! 执行这个变量。

最后输出结果:

如果仅仅是这样静态执行,没啥意思。因为用户没有交互,只能傻傻的执行下这个命令。如果用户想打印出 hello,william呢? 没问题,MLSQL支持占位符对应的命令行。我们稍稍修改下前面的语句:

代码语言:javascript
复制
set hello='''

select "hello {}" as value as output

''';

!hello william;

其中,SQL语句中的{}为占位符,MLSQL会将 !hello 后面的参数按位置放进去,结果如下:

乌拉,现在,我们成功提供了一个!hello 命令,并且用户可以传递参数改变我们的SQL了。

如何交付

分析师可以将自己的hello命令放到一个单独的目录下,下图是我设计的目录:

其中hello.mlsql的内容如下:

代码语言:javascript
复制
set hello='''

select "hello {}" as value as output

''';

用户需要使用时,只要知道你的项目路径名即可,比如main.mlsql想要用你的hello命令,这样就可以:

代码语言:javascript
复制
include command_demo.`commands.hello.mlsql`;

!hello william;

使用场景介绍

大家看了hello world,可能会觉得这有啥用。本质上命令交付和表单交互是一致的,都是交付计算逻辑,但用户使用上会更简单。表单肯定是最简单的,但是命令对于用户门槛也很低。

假设我有一批数据(可能是数仓也可能是任何其他的数据源),我们希望提供这么一个功能,根据邮箱找到用户的完整记录。这个时候我们就可以封装一个命令叫findUserByEmail

代码语言:javascript
复制
set findUserByEmail='''

load hive.`db.users` as users;

select * from users where email="{}" as output

''';

!findUserByEmail "a@qq.com";

用户就可以自己使用这个命令去查找了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hello World示例
  • 如何交付
  • 使用场景介绍
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档