MaxCompute auto increment PythonUDF

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介:

 有一些时候需要生成一个自增的id,以便能和mysql的表对应进行同步。参考了相关文档,写了一个python版的udf。

# coding=utf-8
from odps.udf import annotate
@annotate("*->bigint")
class AutoIncrement(object):
    count=0
    def evaluate(self,*args):
        base =0
        if len(args)==1 and isinstance(args[0],(int,long)) and args[0]>=0 :
            base=args[0]
        self.count=self.count+1
        return self.count+base

  这个方法接受变长的参数,参数可以用来指定auto increment开始的值。当且仅当传入参数的个数为1,并且是大于等于0的int或者long才会生效。


转自临栏

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
消息中间件 分布式计算 Kafka
Flink 1.16.2 版本在流式读取 Iceberg upsert primary key 表方面存在一些限制
Flink 1.16.2 版本在流式读取 Iceberg upsert primary key 表方面存在一些限制【1月更文挑战第14天】【1月更文挑战第69篇】
20 3
|
6月前
|
关系型数据库 MySQL 数据库
MySQL中如何设置 auto_increment 重新计数 主键id从1开始
几句话解决 auto_increment 重新计数?
131 0
MySQL中如何设置 auto_increment 重新计数 主键id从1开始
|
存储 SQL 关系型数据库
MySQL 主键自增 Auto Increment用法
MySQL 主键自增 Auto Increment用法
179 0
|
SQL 关系型数据库 MySQL
AUTO INCREMENT 字段
AUTO INCREMENT 字段
55 0
|
SQL 消息中间件 分布式计算
Flink写入Odps报Modify DDL meta encounter exception
Flink读取Kafka数据写入Odps中,时而报org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException: Could not forward element to next operator错误
1211 0
Flink写入Odps报Modify DDL meta encounter exception
|
存储 缓存 算法
PolarDB-X 中的 AUTO_INCREMENT 兼容性
分布式系统和分布式数据库中,有哪些实现全局唯一 ID 的典型方案?在满足了全局唯一的要求后,如何在分布式数据库中兼容 MySQL AUTO_INCREMENT 特性?PolarDB-X 是怎样做到兼容 AUTO_INCREMENT 功能,又能保持高性能水准的?本文将揭示这些细节。
1327 1
|
存储 对象存储 开发者
DLA支持Parquet/ORC/OTS表的Alter Table Add Column
蛮多客户提过需求:要给一个表添加列,之前推荐的做法是让客户把表删掉重建,因为DLA是计算存储分离的,删掉的其实只是计算层的元数据,存储层的数据不会动,还是比较轻量级的一个操作。不过这种做法对于一些有特别多分区的表来说代价还是还是挺大的,要删掉所有的分区,而且可能会影响其它正在使用这个表的任务,为了解决用户的这个痛点,我们现在对部分数据源(Parquet/Orc)进行了的Alter Table Add Column的支持。
1789 0
DLA支持Parquet/ORC/OTS表的Alter Table Add Column
|
关系型数据库 MySQL 对象存储
DLA如何分析Table Store的数据
数据湖(Data Lake)是时下热门的概念,基于数据湖,可以不用做任何ETL、数据搬迁等过程,实现跨各种异构数据源进行大数据关联分析,从而极大的节省成本和提升用户体验。
1139 0
|
关系型数据库 Perl
Redshift 通过重新建表修改varchar(60) 到varchar(90)
首先需要知道的是redshift不支持SQL语法直接修改varchar(60) 到varchar(90),但PostgreSQL和MySQL都支持。 1.PostgreSQL如何修改varchar(60)到varchar(90)? Syntax: ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]     action [, .
983 0

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 开源大数据平台 E-MapReduce
  • 实时计算 Flink版