栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

MAX

MAX

一、简述

select max_pt('tableName')对于分区的表,此函数返回该分区表的一级分区的最大值,按字母排序,且该分区下有对应的数据文件。

说明:
tableName:String 类型,指定表名(必须带上 project 名,例如:prj.src),用户必须拥有该表的读权限。
返回值:最大的一级分区的值。

例:tab 是分区表,该表对应的分区如下,且都有数据文件。
pt=‘20080807’
pt=‘20080808’

select * from tab where pt=max_pt('project.tab');该语句 max_pt 值为“20080808”,阿里云 ODPS 数据库 SQL 语句读出 pt=‘20080808’ 分区下的数据。

备注:如果只是用 alter table 的方式新加了一个分区,但是此分区中并无任何数据文件,则此分区不会做为返回值。

二、使用场景

max_pt 是个非常好用的函数,可以获取分区表的最新分区,正因为好用,促成使用人员养成了在任意场景下都使用 max_pt 来替代 ‘${bizdate}’ 的习惯。什么场景下会使用?

    当天数据无法及时产出,想使用最近一个分区的数据。使用最新分区的数据,回刷历史某一天的数据。
三、使用 max_pt 可能引发的风险
    部分任务会产出未来日期的分区,比如某业务订单表 ccbOrder 有 20080808 分区,把未完结订单都放在 20080808 分区里,此时用 max_pt 可能会取不到想要的数据。同一个结果表,分多段 insert 数据至同一结果表,当多段任务并未完成时,使用 max_pt 获取不到全量数据当 datax 同步任务刚添加好分区,数据未完成同步,使用 max_pt,只获取了部分数据回刷数据,确保数据源自历史分区数据状态,使用 max_pt 达不到这个目的。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号