网站制作是什么公司eclipse 网站开发

news/2025/10/1 8:37:21/文章来源:
网站制作是什么公司,eclipse 网站开发,经营管理培训课程,接项目做的网站摘要#xff1a; MaxCompute#xff08;原ODPS#xff09;是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用#xff0c;支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外#xff0c;也致力于提升SQL语言的用户体验和表达能力…摘要 MaxCompute原ODPS是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外也致力于提升SQL语言的用户体验和表达能力提高广大ODPS开发者的生产力。 点此查看原文 MaxCompute原ODPS是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外也致力于提升SQL语言的用户体验和表达能力提高广大ODPS开发者的生产力。 MaxCompute基于ODPS2.0新一代的SQL引擎显著提升了SQL语言编译过程的易用性与语言的表达能力。我们在此推出MaxCompute(ODPS2.0)重装上阵系列文章 第一弹 - 善用MaxCompute编译器的错误和警告 第二弹 - 新的基本数据类型与内建函数 第三弹 - 复杂类型 第四弹 - CTEVALUESSEMIJOIN 上次向您介绍了复杂类型从本篇开始向您介绍MaxCompute在SQL语言DML方面的改进 场景1 _需要写一个复现的SQL 从多个表中读取数据有些之间做Join有些之间做Union生成中间数据又要Join 最后需要输出多张表最后写成了n层嵌套的子查询自己都看不懂了。而且同样的查询在不同的子查询中有重复。为了维护方便把复杂的语句拆成多个语句但是发现每个语句都需要单独提交排队并且要将中间结果写到本来不需要的临时表在后面的语句中再读出来慢了好多。。。 场景2 正在开发新项目需要给一个小数据表准备些基本数据但是没有INSERT … VALUES 语句没办法把数据和创建表的DDL放在一起维护只好另用一些脚本调用ODPS命令行准备数据。。。 场景3 想测试一个新写的UDF只写SELECT myudf(‘123’);会报错还必须创建一个dual表里面加一行数据好麻烦。如果测试UDAF还要在测试表里面准备多行数据每次测试不同的输入都要修改表内容或者创建新表如果有个办法不用创建表也能不同的数据组合测试我的UDF就好了。。。 场景4 迁移一个原来在Oracle上面的ETL系统发现用了 WHERE EXISTS( SELECT …) 和 WHERE IN (SELECT …) 这类的语句可是发现ODPS在这方面支持不完整还要手工将这些半连接的语句转换为普通JOIN再过滤。。。 MaxCompute采用基于ODPS2.0的SQL引擎对DML进行了大幅扩充提高了易用性和兼容性基本解决了上述问题。 Common Table Expression (CTE) MaxCompute支持SQL标准的CTE。能够提高SQL语句的可读性与执行效率。 此文中采用MaxCompute Studio作展示首先安装MaxCompute Studio导入测试MaxCompute项目创建工程建立一个新的MaxCompute脚本文件, 如下可以看到顶层的union两侧各为一个joinjoin的左表是相同的查询。通过写子查询的方式只能重复这段代码。 使用CTE的方式重写以上语句 可以看到a对应的子查询只需要写一次在后面重用CTE的WITH字句中可以指定多个子查询像使用变量一样在整个语句中反复重用。除了重用外也不必再反复嵌套了。 编译此脚本可以观察执行计划如下 其中M1, M2, M4三个分布式任务分别对应对应三个输入表双击M2可以看到中具体执行的DAG在DAG中再次双击可以返回如下可以看到对src读后进行过滤的DAG。对src的读取与过滤在整个执行计划中只需要一次 ( 注1 )。 VALUES 创建一个新的文件如下 执行后在MaxCompute Project Explorer中可以找到新创建的表并看到values中的数据已经插入到表中如下 有的时候表的列很多准备数据的时候希望只插入部分列的数据此时可以用插入列表功能 执行后MaxCompute Project Explorer中找到目标表并看到values中的数据已经插入如下对于在values中没有制定的列可以看到取缺省值为NULL。插入列表功能不一定和VALUES一起用对于INSERT INTO … SELECT…, 同样可以使用。 INSERT… VALUES… 有一个限制values必须是常量但是有的时候希望在插入的数据中进行一些简单的运算这个时候可以使用MaxCompute的VALUES TABLE功能如下其中的VALUES (…), (…) t (a, b), 相当于定义了一个名为t列为a, b的表类型为(a string, b string)其中的类型从VALUES列表中推导。这样在不准备任何物理表的时候可以模拟一个有任意数据的多行的表并进行任意运算。 实际上VALUES表并不限于在INSERT语句中使用任何DML语句都可以使用。 还有一种VALUES表的特殊形式 select abs(-1), length(abc), getdate(); 也就是可以不写from语句直接执行SELECT只要SELECT的表达式列表不用任何上游表数据就可以。其底层实现为从一个1行0列的匿名VALUES表选取。这样在希望测试一些函数比如自己的UDF等就再也不用手工创建DUAL表了。 SEMI JOIN MaxCompute支持SEMI JOIN半连接。SEMI JOIN中右表只用来过滤左表的数据而不出现在结果集中。支持的语法包括LEFT SEMI JOINLEFT ANTI JOIN(NOT) IN SUBQUERY(NOT) EXISTS LEFT SEMI JOIN 返回左表中的数据当join条件成立也就是mytable1中某行的id在mytable2的所有id中出现过此行就保留在结果集中 例如: SELECT * from mytable1 a LEFT SEMI JOIN mytable2 b on a.idb.id; 只会返回mytable1中的数据只要mytable1的id在mytable2的id中出现过 LEFT ANTI JOIN 返回左表中的数据当join条件不成立也就是mytable1中某行的id在mytable2的所有id中没有出现过此行就保留在结果集中 例如: SELECT * from mytable1 a LEFT ANTI JOIN mytable2 b on a.idb.id; 只会返回mytable1中的数据只要mytable1的id在mytable2的id没有出现过 IN SUBQUERY/NOT IN SUBQUERY IN SUBQUERY与LEFT SEMI JOIN类似。 例如: SELECT * from mytable1 where id in (select id from mytable2); 等效于 SELECT * from mytable1 a LEFT SEMI JOIN mytable2 b on a.idb.id; 原有ODPS也支持IN SUBQUERY但是不支持correlated条件MaxCompute支持 例如: SELECT * from mytable1 where id in (select id from mytable2 where value mytable1.value); 其中子查询中的where value mytable1.value就是一个correlated条件原有ODPS对于这种既引用了子查询中源表由引用了外层查询源表的表达式时会报告错误。MaxCompute支持这种用法这样的过滤条件事实上构成了SEMI JOIN中的ON条件的一部分。 对于NOT IN SUBQUERY类似于LEFT ANTI JOIN但是有一点显著不同 例如: SELECT * from mytable1 where id not in (select id from mytable2); 如果mytable2中的所有id都不为NULL则等效于 SELECT * from mytable1 a LEFT ANTI JOIN mytable2 b on a.idb.id; 但是如果mytable2中有任何为NULL的列则 not in表达式会为NULL导致where条件不成立无数据返回此时与LEFT ANTI JOIN不同。 原有ODPS也支持[NOT] IN SUBQUERY不作为JOIN条件例如出现在非WHERE语句中或者虽然在WHERE语句中但无法转换为JOIN条件。MaxCompute仍然支持这种用法但是此时因为无法转换为SEMI JOIN而必须实现启动一个单独的作业来运行SUBQUERY所以不支持correlated条件。 例如: SELECT * from mytable1 where id in (select id from mytable2) OR value 0; 因为WHERE中包含了OR导致无法转换为SEMI JOIN会单独启动作业执行子查询 另外在处理分区表的时候也会有特殊处理 SELECT * from sales_detail where ds in (select dt from sales_date); 其中的ds如果是分区列则select dt from sales_date 会单独启动作业执行子查询而不会转化为SEMIJOIN执行后的结果会逐个与ds比较sales_detail中ds值不在返回结果中的分区不会读取保证分区裁剪仍然有效。 EXISTS SUBQUERY/NOT EXISTS SUBQUERY 当SUBQUERY中有至少一行数据时候返回TRUE否则FALSE。NOT EXISTS的时候则相反。目前只支持含有correlated WHERE条件的子查询。EXISTS SUBQUERY/NOT EXISTS SUBQUERY实现的方式是转换为LEFT SEMI JOIN或者LEFT ANTI JOIN 例如: SELECT * from mytable1 where exists (select * from mytable2 where id mytable1.id); 等效于 SELECT * from mytable1 a LEFT SEMI JOIN mytable2 b on a.idb.id; 而 SELECT * from mytable1 where not exists (select * from mytable2 where id mytable1.id); 则等效于 SELECT * from mytable1 a LEFT ANTI JOIN mytable2 b on a.idb.id; 其他改进 MaxCompute支持UNION [DISTINCT] - 其中DISTINCT为忽略 SELECT * FROM src1 UNION SELECT * FROM src2; 执行的效果相当于 SELECT DISTINCT * FROM (SELECT * FROM src1 UNION ALL SELECT * FROM src2) t; 支持IMPLICIT JOIN SELECT * FROM table1, table2 WHERE table1.id table2.id; 执行的效果相当于 SELECT * FROM table1 JOIN table2 ON table1.id table2.id; 此功能主要是方便从其他数据库系统迁移对于信贷买我们还是推荐您使用JOIN明确表示意图 支持新的SELECT语序 在一个完整的查询语句中例如 SELECT key, max(value) FROM src t WHERE value 0 GROUP BY key HAVING sum(value) 100 ORDER BY key LIMIT 100; 实际上的逻辑执行顺序是 FROM-WHERE-GROUY BY-HAVING-SELECT-ORDER BY-LIMIT前一个是后一个的输入与标准的书写语序实际并不相同。很多容易混淆的问题都是由此引起的。例如order by中只能引用select列表中生成的列而不是访问FROM的源表中的列。HAVING可以访问的是 group by key和聚合函数。SELECT的时候如果有GROUP BY就只能访问group key和聚合函数而不是FROM中源表中的列。 MaxCompute支持以执行顺序书写查询语句例如上面的语句可以写为 FROM src t WHERE value 0 GROUP BY key HAVING sum(value) 100 SELECT key, max(value) ORDER BY key LIMIT 100; 书写顺序和执行顺序一致就不容易混淆了。这样有一个额外的好处在MaxCompute Studio中写SQL语句的时候会有智能提示的功能如果是SELECT在前书写select列表的表达式的时候因为FROM还没有写MaxCompute Studio没办法知道可能访问那些列也就不能做提示。如下需要先写好FROM再回头写SELECT列表才能提示。如下如果使用上述以FROM起始的方式书写则可以自然而然的根据上下文进行提示。如下支持顶层UNION ODPS1.0不支持顶层UNION。ODPS2.0可以支持例如 SELECT * FROM src UNION ALL SELECT * FROM src; UNION后LIMIT的语义变化。 大部分DBMS系统中如MySQLHive等UNION后如果有CLUSTER BY, DISTRIBUTE BY, SORT BY, ORDER BY或者LIMIT子句其作用于与前面所有UNION的结果而不是UNION的最后一路。ODPS2.0在set odps.sql.type.system.odps2true;的时候也采用此行为。例如: set odps.sql.type.system.odps2true; SELECT explode(array(1, 3)) AS (a) UNION ALL SELECT explode(array(0, 2, 4)) AS (a) ORDER BY a LIMIT 3; 返回 a 0 1 2 小节 MaxCompute大大扩充了DML语句的支持在易用性兼容性和性能方面可以更好的满足您的需求。对于SQL比较熟悉的专家会发现上述功能大部分是标准的SQL支持的功能。MaxCompute会持续提升与标准SQL和业界常用产品的兼容性。 除此之外针对MaxCompute用户的特点也就是需要在非常复杂的业务场景下支持对己大量数据的处理MaxCompute提供了特有的脚本模式和参数化视图将在下一次为您介绍。 标注 注1 是否合并或者分裂子查询是由ODPS2.0的基于代价的优化器 (CBO)做出决定的SQL本身的书写方式不管是CTE还是子查询并不能确保物理执行计划的合并或者分裂。

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

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

相关文章

深入解析:随时随地学算法:Hello-Algo与cpolar的远程学习方案

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【MySQL】MySQL索引失效场景全面解析与优化指南 - 实践

【MySQL】MySQL索引失效场景全面解析与优化指南 - 实践2025-10-01 08:31 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

环保局网站建设方案云智网站建设公司

3月15日,测吧(北京)科技有限公司(以下简称测吧)项目总监王雪冬来到计算机学院对校企合作、学生就业、学生竞赛等一系列工作进行了深入研讨,并向计算机学院颁发了优秀组织单位和优秀指导老师奖。会议由黄曼绮…

比较简洁大方的网站做外账经常进哪几个网站

本文详细介绍了烧录OpenHarmony系统到开发板的操作流程。从基础的硬件准备和软件环境设置入手,详细说明了如何配置开发环境、构建系统镜像等过程,详细描述了烧录过程中的关键步骤,以及如何使用专用工具将OpenHarmony系统镜像传输到开发板。同…

建站之星服务器网站信息平台建设方案

了解int和Integer的区别 int是Java的基本数据类型,用于表示整数值。Integer是int的包装类,它是一个对象,可以包含一个int值并提供一些额外的功能。 Java集合框架中的集合类(如List、Set、Map)只能存储对象,…

绵阳网站改版深圳海外医疗网站建设

1.TIDB和MySQL对比 对比内容MySQLTiDB架构设计一个传统的单机数据库系统,采用主从复制和分区表等方式来实现水平扩展一个分布式的 NewSQL 数据库,采用分布式存储和分布式事务等技术,支持水平扩展和高可用性事务支持 InnoDB 存储引擎来支持事…

一文掌握 Apache SeaTunnel 构建优秀的系统与分发基础架构

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【JavaScript 性能优化实战】第六篇:性能监控与自动化优化 - 指南

【JavaScript 性能优化实战】第六篇:性能监控与自动化优化 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

做门户网站赚钱吗软文营销软文推广

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么? 2、TLB的entry里都是有什么? 3、MMU操作…

sqlite-vec 简单试用

sqlite-vec 简单试用sqlite-vec 官方实际有一些文档,同时github 也有不少示例,以下就是一个简单使用(集成python) 创建虚拟表参考命令import sqlite3 import sqlite_vec from sqlite_vec import serialize_float32…

linux 系统cshrc 资料

linux 系统cshrc 资料pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

建设积分商城网站多少钱要交个人所得税

磁力猫磁力链接是一种特殊的下载链接,磁力猫磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远…

做搞机网站贵州最好的网站建设推广公司哪家好

写在前面的话AMF(Action Message Format)是一种二进制序列化格式,之前主要是Flash应用程序在使用这种格式。近期,Code White发现有多个Java AMF库中存在目前,漏洞相关信息已上报至美国CERT(详情请参考美国CERT VU#307983)概述目前&#xff0c…

冷库 东莞网站建设化妆品品牌策划方案

一、前言:二、什么是跨域问题?三、 为什么会出现跨域问题?四、什么情况下会出现跨域?五、如何解决跨域问题? 5.1 使用CrossOrigin注解5.2 使用WebMvcConfigurer5.3 使用Filter六、代码示例 前端代码:后端后…

详细介绍:Oracle与Kingbase深度兼容体验:从连接配置到性能优化全解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

胶州专业建站免费制作论坛网站

synchronized重要!重要!重要!重要的事情说三遍,一定要记下来哦。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同…

[LeetCode] 1518. Water Bottles

There are numBottles water bottles that are initially full of water. You can exchange numExchange empty water bottles from the market with one full water bottle. The operation of drinking a full water …

2025 年西安品质楼盘住宅推荐排行榜权威发布,精选优质楼盘推荐

近年来,西安房地产市场持续发展,各类楼盘数量不断增多,但市场上楼盘品质参差不齐的问题也逐渐凸显。部分楼盘存在区位优势不明显、交通不便、周边配套不完善等情况,还有一些楼盘在建筑质量、户型设计、社区环境等方…

Python国庆祝福 - 指南

Python国庆祝福 - 指南2025-10-01 08:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

某商业银行项目管理建设演进报告 - 指南

某商业银行项目管理建设演进报告 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…