MaxCompute问答整理之12月

本文整理了MaxCompute在实际使用中遇到的问题,包括DATEPART函数错误处理、Datahub与Tunnel的区别、自增序列设置、SQL Flag配置、全表扫描费用、ORDER BY与LIMIT配合、分区数量策略、分区字段变更、数据量查看及行转多行解决方案。
摘要由CSDN通过智能技术生成

问题一、MaxCompute内建日期函数,DATEPART函数命令格式为 bigint datepart(datetime date, string datepart)用于提取日期date中指定的时间单位datepart的值。DATETIME类型。如果输入为STRING类型会隐式转换为DATETIME类型后参与运算,其它类型抛异常。但是客户在使用函数的时候没有实现STRING类型隐式转换为DATETIME。报错信息:FAILED:ODPS-0130121:[1,50] Invalid type STRING of argument 1 for function datepart, expect DATETIME。如何解决?

打开新类型odps.sql.type.system.odps2=true时某些隐式类型转换会被禁用,包括STRING->BIGINT,STRING->DATETIME,DOUBLE->BIGINT,DECIMAL->DOUBLE,DECIMAL->BIGINT都是有精度损失或者报错的风险。这种情况可以通过cast函数做强制转换的方式来解决或者关掉新类型flag。
例如:select datepart(cast('2019-12-02 00:00:30' as datetime),'yyyy');

set odps.sql.type.system.odps2=false

问题二:MaxCompute中的数据通道Datahub 和 Tunnel 应用场景的区别是什么?

Datahub是阿里云上的实时消息队列服务,与MaxCompute紧密集成。用户可以将实时数据写入Datahub的topic,并通过Datahub的投递策略,定期将数据投递到MaxComptue表,满足实时数据准实时写入MaxCompute的需要。 
Tunnel 用于批量上传数据到离线表里,适用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值