Transactional Table(事务表)创建和使用

本文详细介绍了如何在MaxCompute中使用TransactionalTable,包括创建表结构、建表语句、表操作(如写入、更新和删除数据,以及新增字段)等内容。
摘要由CSDN通过智能技术生成

Transactional Table(事务表)创建和使用

1. 介绍

创建可以支持增删改操作(insert,delete,update)的事务表
使用工具: maxcomputer
本次创建 Transactional Table 1.0表
初次使用,欢迎指教;

2. 建表语句
CREATE TABLE IF NOT EXISTS tmp_monitor_tbl_info (
      `id`					STRING COMMENT '表编号id'
	, `tbl_name`			STRING COMMENT '表名'
	, `pt_format`			STRING COMMENT '分区格式: yyyy-MM-dd,yyyyMMdd 等'
	, `val_type`			STRING COMMENT '值类型: 表行数,周期值等'
    , `monitor_flag` 		int COMMENT '监控标识: 0:不监控, 1:监控;'
    , `rule_code` 			int COMMENT '规则编码: 1:表行数,上周期差值, 2:表行数,固定值 等'
    , `rule_type`			STRING COMMENT '规则类型: 表行数,上周期差值; 表行数,固定值; 与固定值比较 等'
    , `expect_val` 			int COMMENT '期望值'
    , `tbl_sort_code`       int COMMENT '表类型编码: 0:其它(维表类), 1:亚马逊, 2:中小平台, 3:市场数据 等'
    , `tbl_sort_name`       STRING COMMENT '表类型名字: 0:其它(维表类), 1:亚马逊, 2:中小平台, 3:市场数据 等'
) COMMENT '数据监控表信息' 
tblproperties ("transactional"="true");
-- 注意: MaxCompute只允许在创建表时设置Transactional属性。已创建的表不允许通过alter table方式修改Transactional属性,执行如下语句会报错:
alter table tmp_monitor_tbl_info set tblproperties("transactional"="true");
-- 报错
FAILED: ODPS-0130071:[1,1] Semantic analysis exception - alter transactional property is not supported
-- -- 查看表信息
DESC tmp_monitor_tbl_info ;

+------------------------------------------------------------------------------------+
| Owner:                    RAM$****科技有限公司:johnathan                               |
| Project:                  puture_bigdata                                           |
| TableComment: 数据监控表信息                                                              |
+------------------------------------------------------------------------------------+
| CreateTime:               2024-01-03 14:48:39                                      |
| LastDDLTime:              2024-01-03 14:48:39                                      |
| LastModifiedTime:         2024-01-03 14:49:46                                      |
+------------------------------------------------------------------------------------+
| InternalTable: YES      | Size: 3383                                               |
+------------------------------------------------------------------------------------+
| Native Columns:                                                                    |
+------------------------------------------------------------------------------------+
| Field           | Type       | Label | Comment                                     |
+------------------------------------------------------------------------------------+
| id              | string     |       | 表编号id                                       |
| tbl_name        | string     |       | 表名                                          |
| pt_format       | string     |       | 分区格式: yyyy-MM-dd,yyyyMMdd 等                 |
| val_type        | string     |       | 值类型: 表行数,周期值等                               |
| monitor_flag    | int        |       | 监控标识: 0:不监控, 1:监控;                          |
| rule_code       | int        |       | 规则编码: 1:表行数,上周期差值, 2:表行数,固定值 等              |
| rule_type       | string     |       | 规则类型: 表行数,上周期差值; 表行数,固定值; 与固定值比较 等          |
| expect_val      | int        |       | 期望值                                         |
| tbl_sort_code   | int        |       | 表类型编码: 0:其它(维表类), 1:亚马逊, 2:中小平台, 3:市场数据 等   |
| tbl_sort_name   | string     |       | 表类型名字: 0:其它(维表类), 1:亚马逊, 2:中小平台, 3:市场数据 等   |
+------------------------------------------------------------------------------------+
3. 表操作
写入数据
-- 写入数据
INSERT INTO TABLE tmp_monitor_tbl_info
SELECT * FROM (
  VALUES  (1 , 'ods_amazon_amz_customer_returns_df',              'yyyyMMdd', '表行数', 1, 1, '表行数,上周期差值', 0,      1, '亚马逊' )     
        , (2 , 'ods_amazon_amz_flat_file_all_orders_df',          'yyyyMMdd', '表行数', 1, 1, '表行数,上周期差值', 0,      1, '亚马逊' )         
        , (3 , 'dim_sys_salesman_info_df',                        'yyyyMMdd', '表行数', 1, 1, '表行数,上周期差值', 0,      0, '其它' )  
        , (4 , 'ods_dawnwin_erp_ba_goods_brand_df',               'yyyyMMdd', '表行数', 1, 1, '表行数,上周期差值', 0,      0, '其它' ) 
        , (5 , 'ods_dawnwin_erp_op_bom_vc_relation_df',           'yyyyMMdd', '表行数', 1, 1, '表行数,上周期差值', 0,      2, '中小平台' )
) AS table_name(id, tbl_name, pt_format, val_type, monitor_flag, rule_code, rule_type, expect_val, tbl_sort_code, tbl_sort_name ) ;
-- 查看数据
SELECT id, tbl_name, pt_format, val_type, monitor_flag FROM tmp_monitor_tbl_info ;
idtbl_namept_formatval_typemonitor_flag
1ods_amazon_amz_customer_returns_dfyyyyMMdd表行数1
2ods_amazon_amz_flat_file_all_orders_dfyyyyMMdd表行数1
3dim_sys_salesman_info_dfyyyyMMdd表行数1
4ods_dawnwin_erp_ba_goods_brand_dfyyyyMMdd表行数1
5ods_dawnwin_erp_op_bom_vc_relation_dfyyyyMMdd表行数1
更新数据
-- 更新一条数据
UPDATE tmp_monitor_tbl_info SET id = 6 WHERE id = 5 ;

-- 查看数据
SELECT id, tbl_name, pt_format, val_type, monitor_flag FROM tmp_monitor_tbl_info ;
idtbl_namept_formatval_typemonitor_flag
1ods_amazon_amz_customer_returns_dfyyyyMMdd表行数1
2ods_amazon_amz_flat_file_all_orders_dfyyyyMMdd表行数1
3dim_sys_salesman_info_dfyyyyMMdd表行数1
4ods_dawnwin_erp_ba_goods_brand_dfyyyyMMdd表行数1
6ods_dawnwin_erp_op_bom_vc_relation_dfyyyyMMdd表行数1
删除数据
-- 删除一条数据
DELETE FROM tmp_monitor_tbl_info  WHERE id = 6 ;

-- 查看数据
SELECT id, tbl_name, pt_format, val_type, monitor_flag FROM tmp_monitor_tbl_info ;
idtbl_namept_formatval_typemonitor_flag
1ods_amazon_amz_customer_returns_dfyyyyMMdd表行数1
2ods_amazon_amz_flat_file_all_orders_dfyyyyMMdd表行数1
3dim_sys_salesman_info_dfyyyyMMdd表行数1
4ods_dawnwin_erp_ba_goods_brand_dfyyyyMMdd表行数1
插入数据
-- 插入一条数据
INSERT INTO TABLE tmp_monitor_tbl_info (id, tbl_name, pt_format, val_type, monitor_flag, rule_code, rule_type, expect_val, tbl_sort_code, tbl_sort_name) 
VALUES (8, 'dws_amazon_market_sales_return_stat_di', 'yyyyMMdd', '表行数', 1, 2, '表行数,固定值', 80, 1, '亚马逊') ;

-- 查看数据
SELECT id, tbl_name, pt_format, val_type, monitor_flag FROM tmp_monitor_tbl_info ;
idtbl_namept_formatval_typemonitor_flag
1ods_amazon_amz_customer_returns_dfyyyyMMdd表行数1
2ods_amazon_amz_flat_file_all_orders_dfyyyyMMdd表行数1
3dim_sys_salesman_info_dfyyyyMMdd表行数1
4ods_dawnwin_erp_ba_goods_brand_dfyyyyMMdd表行数1
8dws_amazon_market_sales_return_stat_diyyyyMMdd表行数1
新增字段
-- 添加列 添加字段
ALTER TABLE puture_bigdata.tmp_monitor_tbl_info ADD COLUMNS pt_num INT COMMENT '分区日期差值' ;

在这里插入图片描述

-- 更新数据, 给新增字段设置值
UPDATE puture_bigdata.tmp_monitor_tbl_info SET pt_num = -1 ;

在这里插入图片描述

-- 更新数据, 修改其中一条数据一个字段值
UPDATE puture_bigdata.tmp_monitor_tbl_info SET pt_num = -2 WHERE id = 38 ;

在这里插入图片描述

end
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值