MaxCompute非事务表如何更新数据

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本文主要讲解如何通过insert overwrite更新数据

背景

对于大数据中的大多数存储格式,支持随机更新非常复杂。它需要扫描大型文件,MaxCompute推出了最新的功能Transactional表可以支持update和delete语句,但是update和delete功能不适用于高频更新、删除数据或实时写入目标表场景,同时对于非Transactional表无法执行update和delete。本文主要讲解如何通过insert overwrite更新数据。



1.建表插入数据

createtable update_table(ID int, tranValue string, last_update_user string) PARTITIONED by(dt STRING ) LIFECYCLE 1;INSERTINTO update_table PARTITION (dt="20210510")VALUES(1,'value_01','creation'),(2,'value_02','creation'),(3,'value_03','creation'),(4,'value_04','creation'),(5,'value_05','creation'),(6,'value_06','creation'),(7,'value_07','creation'),(8,'value_08','creation'),(9,'value_09','creation'),(10,'value_10','creation');

2.更新一条数据

当id是1的时候更新成value_011

--更新一条数据INSERT OVERWRITE TABLE update_table PARTITION( dt)SELECT  id
,CASE    WHEN id=1 THEN "value_011"                 ELSE TranValue 
         END TranValue
,last_update_user
,dt
FROM    update_table
WHERE   dt ="20210510";

3.更新多条数据

根据增量表更新,首先创建增量表插入数据

createtable update_table_inc(ID int, TranValue string, last_update_user string) LIFECYCLE 1;INSERTINTO update_table_inc VALUES(5,'value_11','creation'),(6,NULL,'20170410'),(7,'value22','20170413');

id是5和7更新TranValue,由于6的TranValue是null不更新

INSERT OVERWRITE TABLE update_table PARTITION( dt)SELECT  a.id,CASE    WHEN a.id=b.idand b.TranValueisnotnull THEN b.TranValue                 ELSE a.TranValue         END TranValue
,CASE    WHEN a.id=b.idand b.TranValueisnotnull THEN b.last_update_user                 ELSE a.last_update_user         END last_update_user
,dt
FROM    update_table a
LEFT JOIN update_table_inc b
ON      a.id= b.idWHERE   a.dt="20210510";

4.删除数据

--删除数据INSERT OVERWRITE TABLE update_table PARTITION( dt)SELECT*FROM    update_table
WHERE   dt ="20210510"and id !=4;


大家如果对MaxCompute有更多咨询或者建议,欢迎扫码加入 MaxCompute开发者社区钉钉群,或点击链接 申请加入。

image.png

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
2月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
188 14
|
2月前
|
传感器 人工智能 监控
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
140 14
|
1月前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。
|
2月前
|
机器学习/深度学习 传感器 监控
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
吃得安心靠数据?聊聊用大数据盯紧咱们的餐桌安全
108 1
|
2月前
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
209 1
|
3月前
|
机器学习/深度学习 监控 大数据
数据当“安全带”:金融市场如何用大数据玩转风险控制?
数据当“安全带”:金融市场如何用大数据玩转风险控制?
140 10
|
3月前
|
机器学习/深度学习 自然语言处理 监控
大数据如何影响新兴市场投资决策?——数据才是真正的风向标
大数据如何影响新兴市场投资决策?——数据才是真正的风向标
93 3
|
4月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
166 4
|
3月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
151 0
|
4月前
|
分布式计算 DataWorks 数据处理
在数据浪潮中前行:记录一次我与ODPS的实践、思考与展望
本文详细介绍了在 AI 时代背景下,如何利用阿里云 ODPS 平台(尤其是 MaxCompute)进行分布式多模态数据处理的实践过程。内容涵盖技术架构解析、完整操作流程、实际部署步骤以及未来发展方向,同时结合 CSDN 博文深入探讨了多模态数据处理的技术挑战与创新路径,为企业提供高效、低成本的大规模数据处理方案。
297 3

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 下一篇
    oss云网关配置