SQL因其简单易学的特点,是用户与MaxCompute服务交互的主要手段。如何帮助用户高效愉快的编写SQL是MaxCompute studio的核心使命,下面就让我们来一探究竟:

忘记语法

相信大家都有过忘记SQL怎么写的时候,一旦忘记,恐怕只能到处去找文档和代码示例,被迫离开全神贯注的SQL editor,十分影响效率。在studio中,我们集成了大量的MaxCompute SQL语法模板,你只需一个快捷键就能唤出,十分方便。譬如,我现在想要在表中加入一列,但不知道SQL语法,那么使用快捷键(Windows: Ctrl + J, Mac: ⌘ + J)唤出live template,输入column关键字搜索语法模板,这里我们选择alter table add column:

此时,SQL editor中会立刻插入添加列的语法模板,你只需继续输入表和列即可(使用tab键在待编辑元素间切换)

忘记Schema

SQL语法结构有了,接下来就是往里填各种实体元素(主要包括表和函数)。同样的,难道要我完整的记住表名或函数名才能完成SQL吗?当然不需要,studio想你所想:

列表与搜索

当前project下都有哪些表和函数?

  • 在project explorer中你能获得一个全局视图:
  • 通过快捷键(Windows: Ctrl+Alt+Shift+N mac:⌥+⌘+O)唤出navigate symbol,输入表名或函数名搜索:

在project explorer中双击实体或在navigate symbol中选择实体,即可显示其详情。

智能提示

studio会根据当前光标位置的语法上下文,给出相应的智能提示,选择即可,无需输入:

schema关联

  • 鼠标悬停在表名上时,会显示表的schema:
  • 悬停在函数名上时,会显示函数签名:

定义跳转

进一步的,如果想查看实体详情,那么:

  • 表:按住ctrl键,单击,就会打开表详情窗口,包括示例数据的展示。
  • 自定义函数:按住ctrl键单击,则会显示其源码(java是jar的反编译,python是源码)。
  • 内置函数:(Windows: Ctrl + Q mac: Ctrl + J) 唤出帮助文档:

代码检测

SQL除了满足语法,我们也定义了一些规则,来检测你所写的SQL是否有潜在问题,譬如:

全部的规则列表可在Preference - Editor - Inspections - MaxCompute 处查看。

轻松阅读

SQL写好了,需要阅读并理解其含义。对此studio支持如下特性,方便用户阅读SQL。

语法高亮

SQL中不同类型的字符会有不同的高亮颜色,有语法错误时会显示错误信息:

括号匹配与代码折叠

  • 单击左括号,与其配对的右括号也会高亮显示,反之亦然。
  • 当SQL比较长时,可点击左侧的折叠按钮,把子句折叠起来,便于排除干扰。

格式化

好的格式能帮助我们更好的理解SQL结构,当遇到一个杂乱冗长的SQL,你需要做的第一步就是格式化(快捷键Ctrl + Alt + L)。同时,studio还支持自定义格式化规则(譬如关键字大小写,是否换行等),可在如下页面配置:

可视化

点击SQL editor左下侧的graph标签页,能以POT图的方式展现SQL结构,譬如下图(对应的SQL文本select * from hy_test):

目前此图颜值不高,接下来我们会改进,使得与SQL运行时的Job Graph一样美。

使用查找

有时,我们想知道某张表(或函数)都在哪些脚本中使用,以便于我们更好的理解这张表的加工逻辑。那么,你可以在editor中选中表,右键菜单选 Find Usages,则会在当前IntelliJ project下搜索到所有使用该表的脚本:

运行

部分执行

如果想执行SQL中的部分语句,那么你可以:

  • 通过鼠标选择你要执行的文本段,然后点击运行按钮:
  • 通过左侧边栏的gutter icon,执行单条语句(with set表示带着set语句一起):

console无缝集成

你可以直接在SQL editor中运行譬如grant语句之类的console命令,也可以点击toolbar上的console图标打开一个MaxCompute Console窗口输入console命令:

运行历史

所有通过studio提交运行的sql我们都记录在本机了,你可以点击toolbar上的图标,弹出sql history窗口,查询你曾经执行过的sql:

玩转MaxCompute studio SQL编辑器的更多相关文章

  1. 一探究竟:善用 MaxCompute Studio 分析 SQL 作业

    头疼的问题 MaxCompute 用户一个常见的问题是:同一个周期任务,为什么最近几天比之前慢了很多?或者为什么之前都能按时产出的作业最近经常破线? 通常来说,引起作业执行变慢的原因有:quota 组 ...

  2. MaxCompute Studio 使用入门

    MaxCompute Studio 是MaxCompute 平台提供的安装在开发者客户端的大数据集成开发环境工具,是一套基于流行的集成开发平台 IntelliJ IDEA 的开发插件,可以帮助您方便地 ...

  3. MaxCompute Studio使用心得系列7——作业对比

    在数据开发过程中,我们通常需要将两个作业进行对比从而定位作业运行性能或者结果有差异的问题,但是对比作业时需要同时打开两个studio 的tab页,或者两个Logview页,不停切换进行对比,使用起来非 ...

  4. MaxCompute Studio提升UDF和MapReduce开发体验

    原文链接:http://click.aliyun.com/m/13990/ UDF全称User Defined Function,即用户自定义函数.MaxCompute提供了很多内建函数来满足用户的计 ...

  5. 带你玩转Visual Studio

    带你玩转Visual Studio 带你新建一个工程 工程目录下各文件的含义 解决方案与工程 在这之前先了解一个概念:解决方案与工程. 解决方案(Solution):一个大型项目的整体的工作环境: 工 ...

  6. 转: 带你玩转Visual Studio——带你理解多字节编码与Unicode码

    上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的 ...

  7. 带你玩转Visual Studio——带你了解VC++各种类型的工程

    原文地址:http://blog.csdn.net/luoweifu/article/details/48816605 上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一 ...

  8. 带你玩转Visual Studio——带你理解微软的预编译头技术

    原文地址:http://blog.csdn.net/luoweifu/article/details/49010627 不陌生的stdafx.h 还记得带你玩转Visual Studio——带你新建一 ...

  9. 带你玩转Visual Studio——带你理解多字节编码与Unicode码

    目录(?)[-] 多字节字符与宽字节字符 char与wchar_t string与wstring string 与 wstring的相关转换 字符集Charcater Set与字符编码Encoding ...

随机推荐

  1. VMware 虚拟化编程(8) — 多线程中的 VixDiskLib

    目录 目录 前文列表 多线程注意事项 多线程中的 VixDiskLib 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化 ...

  2. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_12-对象数组

    对象数组是怎么回事呢? 新建Person类 代码生成后续的代码 生成一个无参构造 两个成员变量都选上,这是全参构造 生成getter和setter 数组的默认的第几0个元素是null 创建三个对象 输 ...

  3. uni-app-小程序中组件不支持id选择器等

    这个问题刚开始遇到的时候有点搞笑啰,正常情况下,id选择器不是最正常的吗?搞锤子哦. 接着我就找度娘了  ,官网给出的解释是:https://developers.weixin.qq.com/mini ...

  4. vts测试流程

    测试前提: 1.发货user版本 2.selinux:Enable 3.连接ADB,stay awake 4.烧录XXX申请的key 5.外网环境(ipv6) ATV9测试准备(正常准备环境+fast ...

  5. python批量下载验证码,用来做验证码处理

    刚学到爬虫识别验证码,所以自己建一个获取验证码的类,感兴趣的道友,可以看看,代码如下: import requests import time import os import re class Pi ...

  6. oracle--表空间处理

    CREATE TABLESPACE命令详解(转) 表空间理解 https://www.cnblogs.com/kerrycode/p/3418694.html 常用操作 https://www.cnb ...

  7. css的继承之width属性(容易忽略)

    众所周知,css的三大特性分别是 继承性,层叠性,和优先级. 那么这里就详细说一下css中width的继承性及其特殊情况. 继承性概念详解:css的继承性指的被包在内部的标签拥有外部标签的样式性,子元 ...

  8. 网页中<a>标签新窗口和location.href 新窗口打开

    在网页制作过程中,经常遇到新窗口打开,一般是a超级链接或者location.href 新窗口打开形式,下面分别讲述两种之间的不同方式 1,a标签 新窗口 添加属性 target="_blan ...

  9. [AGC005F] Many Easy Problems

    link 题意简述 给定一颗无根树,对于所有大小为 $i$ 的点集,求出能够包含它的所有联通块之和,定义为 $f_i$ ,答案对 $924844033$ 取模. $n\leq 2\times 10^5 ...

  10. NGUI的HUD Text的扩展插件学习--(HUDText)的使用

    一,我们先添加一个空的游戏对象,在菜单中找到这个添加空的游戏对象 二,然后我们给该对象添加HUDText,然后给这个添加字体 三,我们添加个脚本,代码如下: using UnityEngine; us ...