MaxCompute - ODPS重装上阵 第一弹 - 善用MaxCompute编译器的错误和警告

摘要: MaxCompute (ODPS) ( 注1 )是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 ODPS2.0除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高广大ODPS开发者的生产力。

MaxCompute (ODPS) ( 注1 )是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 ODPS2.0除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高广大ODPS开发者的生产力。

基于ODPS2.0新一代的SQL引擎,MaxCompute显著提升了SQL语言编译过程的易用性与语言的表达能力。
我们在此推出MaxCompute(ODPS2.0)重装上阵系列文章

第一弹 - 善用MaxCompute编译器的错误和警告
第二弹 - 新的基本数据类型与内建函数
第三弹 - 复杂类型
第四弹 - CTE,VALUES,SEMIJOIN

这次首先向您介绍在易用性方面的改进。

场景1
作为ODPS的开发者,提交了一段SQL脚本,里面两句SQL,等了半天排上队,结果发现第一句里面有个函数的参数类型错误,白等了。。。;修改脚本后再次提交,排队,第一条语句用了两个小时跑完了,然后报告第二个语句漏了半边括号。。。
场景2
我的上游数据有个表create table my_upperstream(…, id string) partitioned by (…), 我的项目每天有一个任务要和my_uppertstream在id上join,… join my_upperstream u on id = u.id,过去没有问题,最近总是发现有些数据莫名其妙的丢失,经过几天痛苦的debug,终于发现是因为我的id是bigint,在和u.id比较的时候,都竟然转成了double,因为浮点误差导致某些列join不上( 注2 );
怒气冲冲在ODPS用户群中中质问,竟然告诉我这个是by design! 。。。

MaxCompute编译器基于ODPS2.0全新自主研发的SQL引擎,尤其配合使用MaxCompute Studio,提供了丰富的错误提示与警告的功能。可完全避免以上问题。

编译器的易用性改进
为了充分发挥MaxCompute编译器的易用性改进,最好配合MaxCompute Studio (D2平台对ODPS2.0的错误与警告的支持正在积极开发中,预计今年9月份上线,敬请期待!)。首先,请安装MaxCompute Studio,导入测试MaxCompute项目,创建工程,建立一个新的MaxCompute脚本文件, 如下

图片描述

可以看到

第一个insert语句中wm_concat函数使用有错误
第二个insert有一个错误和一个警告,错误是列名写错了
警告则是上面场景二种提到的,ODPS中当比较bigint与double的时候,会隐含的都转为double, 因为从string到double是有可能在运行时导致错误的转换,所以MaxCompute编译器会在此警告要您确定这个是不是您希望的行为
鼠标停止在错误或者警告( 注3 )上,会直接提示具体错误或者警告信息。
如果我不修改错误,直接提交,会被MaxCompute Studio挡住,如下图
图片描述

按照提示修改错误和警告,如下图,

图片描述

再次提交,可以顺利的运行,再也不用担心因为语法错误白等了!

事实上,使用MaxCompute Studio可以把所有警告都设定为错误,如下图
图片描述
这样就可以保证不会不小心漏掉任何有可能的错误!

MaxCompute团队建议您在提交任何脚本之前,都使用MaxCompute Studio对脚本进行静态编译检查,并强烈推荐将警告设定为错误,在提交前修改所有的警告,这样可以花很少的时间避免大量花费大量计算与人力资源的错误。

除了可以帮助您节省时间外,也可以节省MaxCompute服务器端资源,目前每天MaxCompute SQL服务器花大笔计算资源在编译那些有错误的SQL,连累没有错误的也要跟着排队。

另外您知道吗?提交有错误的脚本会导致扣您的计算健康分,导致以后提交任务的优先级被下调!某些警告报告的问题也会导致扣除健康分,使用MaxCompute Compiler和Studio,可以帮助您避免此类扣分,避免被降级!

警告中很多情况是不安全的隐式类型转换,如果确实是想要的转换,可以用cast (xxx as )的方式消除警告,如果觉得这么写麻烦,MaxCompute 编译器还提供一种简洁的方式(xxx),如上面修改过的脚本所示。具体该用哪种完全取决于您的偏好。MaxCompute还有一系列的SQL语言方面的改进,此系列会向您逐一介绍。

小节
基于ODPS2.0 SQL引擎的MaxCompute新编译器配合MaxCompute Studio,通过完整准确地报告错误于警告,可以显著提高用户的生产力。不过提升生产力不能只靠准确的错误和警告,丰富强大的SQL语言表达能力一样重要,从下一篇开始,我们向您介绍MaxCompute在SQL语言上的各项改进!

标注
注1 MaxCompute就是ODPS,是ODPS在阿里云上的品牌,本系列文章中,MaxCompute与ODPS可以通用。
注2 为什么int = string的时候要转double呢?因为这个是Hive的行为,MaxCompute(原ODPS) 在当初第一版的时候,为了替换当时广泛使用的Hive脚本,不得不兼容。现在有了警告,只要大家按照建议的方式使用MaxCompute,在需要的时候修改提示的问题,就不会再掉进这个坑里了!
注3 对于警告的标注,我的设定是黄色波浪线,可以通过IntelliJ的Settings来修改,如下
图片描述
点击查看原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘

摘要: 摘要:2017年12月20日在北京云栖大会上,阿里云高级技术专家梵叶在计算与网络分论坛上做了主题分享《双十一丝般顺滑体验背后:阿里云洛神网络虚拟化系统揭秘》。为大家介绍了洛神系统的发展过程,系统架构&#xff…

Springboot-Flowable 快速开发工作流

文章目录一、什么是flowable?官方文档:二、技术选型三、Flowable与springBoot项目整合3.1. 添加依赖3.2. yml 文件配置3.3. 创建数据库3.4. 定义流程文件3.5. 测试controller3.6. 图片乱码处理四、启动项目,初始化表结构五、测试验证5.1. 创建…

华为发布智简全光网战略,携手上下游重新定义光产业

[中国,北京,2019年7月15日] 今日,华为正式发布智简全光网战略,通过打造智能、极简、超宽、无处不在的下一代全光网络,为每个人、每个家庭、每个组织带来极致的业务体验。基于该战略,未来5年华为将携手上下游…

测试之道--阿里巴巴八年测试专家倾情奉献

摘要: 我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸、煎熬无法言表。在从事测试工作的这八年里,有人质疑,也有人追捧,唇…

AliOS Things蓝牙协议栈及应用开发框架介绍

摘要: AliOS Things从1.2.0版本开始支持蓝牙协议栈(BLE),及基于蓝牙协议栈的应用层开发框架。本文分为三部分对蓝牙组件进行介绍:蓝牙组件,蓝牙协议栈介绍及接口说明,和应用开发框架介绍及示例说明。AliOS Things v1.2…

快速开发工作流_01_简单流程案例

文章目录一、介绍二、技术选型三、登录/绘制流程图3.1. 需要先登录3.2. 绘制流程图四、 使用说明4.1. 选择数据库4.2. 增加 mybatis, modeler,idm 等配置4.3. yml 文件配置五、定义流程文件这样当此框架启动的时候它会默认加载resource目录下的processes时就可以将此流程配置加…

Spark精华问答 | Spark和Hadoop的架构区别解读

总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面。1Q:Spark和Hadoop的架构区别A&#x…

7类合作伙伴,190条沟通路径,高德汽车如何实现组织高效沟通?

摘要: 通常协同开发组织或团队大于等于7,关键干系人大于等于10,组织级沟通路径大于等于21条,关键干系人沟通路径大于等于45条,并以较大角系数递增。这种沟通路径曲线下,如何让组织信息快速传递?…

MaxCompute - ODPS重装上阵 第二弹 - 新的基本数据类型与内建函数

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力…

@程序员:可以被认出是写代码的,但是不能因为格子衬衫!

戳蓝字“CSDN云计算”关注我们哦!亲爱的,我今天穿什么衣服比较好呢?你女朋友早上是否也会站在试衣镜前这样询问你?醒醒,你哪里有女朋友!你分得清人家衣服的?比如:裤子:背…

助力全站WebP ,阿里云云上FPGA 团队发布 WebP图片解决方案

摘要: 阿里云 WebP 图片解决方案的软件部分由联捷计算科技(CTAccel)提供,再整合上阿里云自身的FaaS (FPGA as a Service) 弹性计算平台,形成了完整的阿里云 WebP 图片解决方案。 点此查看原文 目前来说,图片…

linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录

访问SMB交换机CLI使用SSH或远程登录客观Cisco小型企业被管理的交换机可以通过命令行界面(CLI)远程访问和被配置。访问CLI在一个基于终端的窗口允许命令被输入。如果喜欢配置使用在您的交换机的终端命令通过CLI而不是基于Web的工具,这是一个更加容易的选择。某些任务…

面试官问我:你们的数据库是怎么架构的?

戳蓝字“CSDN云计算”关注我们哦!作者:尜尜人物来源:https://www.cnblogs.com/littlecharacter/p/9084291.html一、数据库架构原则高可用高性能一致性扩展性二、常见的架构方案方案一:主备架构,只有主库提供读写服务&a…

一张图学会数据库迁云最佳路径

摘要: 我们以基于Oracle数据库的应用系统上云为例,如何根据实际需求,及不同的应用特征,去选择合适的上云解决方案?看懂了以下这张图,就能找到最适合你的应用系统总体的迁移上云路径。 点此查看原文 传统架构…

透析《长安十二时辰》里的望楼,人类在唐朝就有 5G 愿望了?

戳蓝字“CSDN云计算”关注我们哦!作者 | 胡巍巍出品 | 程序人生(ID:coder_life)《古都24小时》哦不《长安十二时辰》,让很多人跟着易烊千玺和雷佳音,回了趟大唐!为了体现真实,剧中大…

MaxCompute - ODPS重装上阵 第三弹 - 复杂类型

摘要: MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力…

ecplise安装flowable插件

ecplise安装flowable插件步骤: Help ---- > Install New Software ---- > add, 然后添加的弹窗中输入以下信息: Name: Flowable BPMN 2.0 designerLocation: http://flowable.org/designer/update/创建一个maven项目测试一下:

OpenStack精华问答 | OpenStack和CloudStack对比

自诞生以来,OpenStack 似乎一直被质疑,其背后最重要的两大推手 NASA 和 Rackspace 都弃它而去,惠普、思科接连宣布关闭基于 OpenStack 的公有云服务,但是,OpenStack 依旧坚挺。1Q:OpenStack发展历史A:2Q:op…

基于TableStore/MaxCompute的数据采集分析系统介绍

摘要 在互联网高度发达的今天,ipad、手机等智能终端设备随处可见,运行在其中的APP、网站也非常多,如何采集终端数据进行分析,提升软件的品质非常重要,例如PV/UV统计、用户行为数据统计与分析等。虽然场景简单&#xf…

第3篇:Flowable-IDM详述

接上一篇: 第2篇:Flowable启动 https://blog.csdn.net/weixin_40816738/article/details/102875324 文章目录一、Flowable-IDM功能二、Flowable-IDM登录地址三、Flowable-IDM登录用户和页面四、Flowable-IDM用户管理页面五、Flowable-IDM用户组管理页面六…