当前位置: 首页 > news >正文

昆明城乡和住房建设局网站咸阳做网站的公司

昆明城乡和住房建设局网站,咸阳做网站的公司,第一ppt网,html网站素材摘要#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 上次向您介绍了 [编译器的易用性改进] https://yq.aliyun.com/articles/225028)这次向您介绍新的基本数据类型与内建函数 原ODPS只有六种基本数据类型, bigint, double, decimal, string, datetime, boolean。一般用起来也还够用但是在某些场景下就不够了 场景1 一个项目需要将原来在SQL SERVER上面运行的ETL系统最近因为数据量暴涨需要迁移到MaxCompute。发现某些表用了VARCHAR有的用了INT。这些类型也被系统的多处SQL脚本用到还参与了运算。迁移到ODPS上时候用STRING代替VARCHAR用BIGINT代替INT ( 注1 )。 迁移完成后发现数据和原有系统对不上是不是VARCHAR的截断INT的溢出行为导致数据不同呢还是什么其他原因面对着现存系统没办法只好一点点看代码跑数据做分析。本来以为挺轻松的项目花了几周时间才搞定。。。 场景2 我的项目需要存放二进制数据到表中因为是语音识别项目每小段采集的音频如果作为一个字段存下去然后用个UDF处理起来很方便。可是ODPS没有BINARY数据类型好吧就存成STRING好了。可是编写写UDF时候好麻烦为了存进去必须将byte[]编码成string, 读的时候又必须解码代码写了一大堆运行速度也慢了好多。。。 MaxCompute采用基于ODPS2.0的SQL引擎大幅度扩充了基本类型并提供了配套的内建函数基本解决了上述问题。 基本类型的扩充 此文中采用MaxCompute Studio作展示首先安装MaxCompute Studio导入测试MaxCompute项目创建工程建立一个新的MaxCompute脚本文件, 如下运行后建立另一个文件插入数据如下 运行后可以在MaxCompute Studio的Project Explorer中找到新创建的表察看表的详细信息并预览数据如下图 可以看到 创建表的时候首先指定使用MaxCompute新类型系统因为兼容性的考虑需要您主动打开这个设定。也可以在MaxCompute Studio中缺省指定如下图 MaxCompute Studio支持含新类型表数据的导入导出可参考此ATA文章 如果不使用MaxCompute Studio可以在脚本中指定set odps.sql.type.system.odps2true;。Studio实际上在后台也是使用这个开关来控制是否启用新类型。odps.sql.type.system.odps2设定为true的时候除了可以使用新类型也控制其它方面的一些行为改变。将在相关部分说明。 如果需要在MaxCompute 项目中缺省打开可以联系您的项目管理员在项目模板中设定。 扩充后MaxCompute支持的基本数据类型如下表新增类型有TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP, BINARY。 新的隐式转换规则表如下表 ( 注5 ) booleantinyintsmallintintbigintfloatdoubledecimalstringvarchartimestampbinaryboolean toTRUEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEtinyint toFALSETRUETRUETRUETRUETRUETRUETRUETRUETRUEFALSEsmallint toFALSEFALSETRUETRUETRUETRUETRUETRUETRUETRUEFALSEint toFALSEFALSEFALSETRUETRUETRUETRUETRUETRUETRUEFALSEbigint toFALSEFALSEFALSEFALSETRUETRUETRUETRUETRUETRUEFALSEfloat toFALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUETRUEFALSEdouble toFALSEFALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUEFALSEdecimal toFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUETRUETRUEFALSEstring toFALSEFALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUEFALSEvarchar toFALSEFALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUEFALSEtimestamp toFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSETRUETRUETRUEbinary toFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSE 此外还新增了DECIMAL类型与DATETIME的常量定义方式, 100BD就是数值为100的DECIMALdatetime ‘2017-11-11 00:00:00’就是个datetime类型的常量。常量定义的方便之处在于可以直接用到values子句和values表中以后会单独介绍。 内建函数的扩充 任何编程语言包括SQL不管语言本身多强大如过没有丰富的函数后者类库支持在应用的时候还是会很不方便MaxCompute配合新数据类型大大丰富了内建函数如下 数学函数 log2, log10, bin, hex, unhex, degrees, radians, sign, e, pi, factorial, cbrt, shiftleft, shiftright, shiftrightunsigned 日期函数 unix_timestamp, year, quarter, month, day, dayofmonth, hour, minute, second, millisecond, nanosecond, from_utc_timestamp, current_timestamp, add_months, last_day, next_day, months_between 字符串函数 concat_ws, lpad, rpad, replace, soundex, substring_index, base64, unbase64 聚合函数 corr 这些函数大部分与Hive的内建函数兼容用法可以直接参考Hive的文档。与Hive不同的是MaxCompute提供的这些函数都是用本地代码实现的高效版本。 新增的TIMESTAMP数据类型支持纳秒级别的精度与之配合新增了MaxCompute特有的millisecond, nanosecond函数可以取出TIMESTAMP, DATETIME的毫秒部分与TIMESTAMP的纳秒部分。 如本系列上一篇中提到的MaxCompute支持新的强制转换写法例如要强制bigint变量为转换为string可以直接写string(a_bigint), 和写成cast(a_bigint as string)是等效的。具体用哪种形式完全取决于您的偏好。 需要注意的是所有用来支持新类型的函数例如current_timestamp也需要设定set odps.sql.type.system.odps2true;否则会报告编译错误。 分区类型的扩充 分区类型的支持也进行了扩充目前分区类型支持TINYINT, SMALLINT, INT, BIGINT, VARCHAR与STRING ( 注6 ) 另外原ODPS在动态分区的时候如果分区列的类型与对应SELECT列表中的列的类型不严格一致会报错。MaxCompute支持隐式类型转换 例如: set odps.sql.type.system.odps2true; create table parttable(a int, b double) partitioned by (p string); insert into parttable partition(p) (p, a) select key, value, current_timestmap() from src; select * from parttable; 返回 可以看到分区列p的值为从timestamp类型隐含转换而来。 使用UDF 目前MaxCompute2.0的JAVA UDF已经支持了新类型Python UDF会尽快实现。JAVA UDF使用新类型的方法如下 UDAF和UDTF通过Resolve注解来获取signatureMaxCompute2.0支持在注解中使用新类型如 Resolve(“smallint-varchar(10)”) UDF通过反射分析evaluate来获取signature此时max compute内置类型与JAVA类型符合一一映射关系 需要注意的是这里array类型对应的java类型是List而不是数组 小结 MaxCompute大大扩充了基本数据类型与内建函数可以更好的适应丰富的应用场景。不过很多比较复杂的场景仅使用基本类型仍然很麻烦请期待MaxCompute重装上阵下一篇复杂类型的支持 标注 注1 对于INT常量如果超过INT取值范围会转为BIGINT如果超过BIGINT取值范围会转为DOUBLE 在原ODPS下因为历史原因SQL脚本中的所有int类型都被转换为bigint例如 create table a_bigint_table(a int); -- 这里的int实际当作bigint处理 select cast(id as int) from mytable; -- 这里的int实际当作bigint处理 为了与ODPS原有模式兼容MaxCompute在没有设定odps.sql.type.system.odps2为true的情况下仍然保留此转换但是会报告一个警告提示int被当作bigint处理了如果您的脚本有此种情况建议全部改写为bigint避免混淆。 注2 VARCHAR类型常量可通过STRING常量的隐式转换表示 注3 STRING常量支持连接, 例如’abc’ ‘xyz’会解析为’abcxyz’不同部分可以写在不同行上 注4 受底层系统限制目前调用current_timestamp还达不到纳秒精度例如 meta_devset odps.sql.type.system.odps2true;select nanosecond(current_timestamp()); 输出为类似 ------ | _c0 | ------ | 877000000 | ------ Timestamp常量与外部数据导入可以支持纳秒精度。 注5 在原ODPS下因为历史原因DOUBLE可以隐式的转换为BIGINT这个转换潜在可能有数据丢失一般数据库系统都不允许。为了与ODPS原有模式兼容MaxCompute在没有设定odps.sql.type.system.odps2为true的情况下仍然允许此转换但是会报告警告在设定odps.sql.type.system.odps2为true的情况下不允许此隐式类型转换。 注6 在原ODPS下因为历史原因虽然可以指定分区类型为BIGINT但是除了表的schema表示其为BIGINT, 任何其他情况都被处理为STRING。例如: create table parttest (a bigint) partitioned by (pt bigint); insert into parttest partition(pt) select 1, 2 from dual; insert into parttest partition(pt) select 1, 10 from dual; select * from parttest where pt 2; 返回的结果只有一行因为10被按照字符串和2比没能返回。为了与ODPS原有模式兼容MaxCompute在没有设定odps.sql.type.system.odps2为true的情况下仍然如此处理在设定odps.sql.type.system.odps2为true的情况下BIGINT类型的分区严格按照BIGINT类型处理。
http://www.zqtcl.cn/news/192922/

相关文章:

  • 做搬运的话哪个网站好网站模板建站
  • 建设个人信息网站wordpress 用户权限
  • 网站不显示域名解析错误怎么办公益网站设计
  • 怎么上传网站图片的链接手表网站排行榜
  • 网站推广方法100种百度排名规则
  • 上海专业网站建设公司站霸网络萝岗区网站建设推广
  • 做微商网站的公司永久免费crm管理系统
  • 网站开发的环境专业的建设网站
  • 公司网站建设知识注册网站备案
  • 营销型网站建设申请域名在域名做网站
  • 电商网站设计公司立找亿企邦山东德州网站建设哪家最好
  • 免费自建网站工具网站建设公司那个好
  • wordpress集成环境搭建短视频优化
  • 做网站一般把宽度做多少中国企业报集团官网
  • 什么软件可以建网站网站建设应该计入什么费用
  • 网站制作 手机版重庆网站建设mswzjs
  • 网站建设犀牛云品牌建设方案和思路
  • 网络管理系统的管理软件抖音优化推广
  • 昆山市有没有做网站设计的交互设计研究生
  • 本地网站asp iiswordpress 感染支付宝
  • 成都最专业做网站的wordpress升级500
  • 做网站首页图的规格网站建设的市场分析
  • a032网站模版自己建立网站怎么建
  • wordpress.商品厦门做网站优化价格
  • 学校网站建设源码视频生成链接网站
  • 江苏建设工程招投标网站wordpress 全部tags
  • 十堰网站建设有哪些公司wordpress删除摘要
  • 网站的功能和特色网页设计公司哪个济南兴田德润实惠吗
  • 汕头建站模板泰安建设银行网站
  • 服装平台网站有哪些网站开发 零基础