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");
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 ;
id | tbl_name | pt_format | val_type | monitor_flag |
---|
1 | ods_amazon_amz_customer_returns_df | yyyyMMdd | 表行数 | 1 |
2 | ods_amazon_amz_flat_file_all_orders_df | yyyyMMdd | 表行数 | 1 |
3 | dim_sys_salesman_info_df | yyyyMMdd | 表行数 | 1 |
4 | ods_dawnwin_erp_ba_goods_brand_df | yyyyMMdd | 表行数 | 1 |
5 | ods_dawnwin_erp_op_bom_vc_relation_df | yyyyMMdd | 表行数 | 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 ;
id | tbl_name | pt_format | val_type | monitor_flag |
---|
1 | ods_amazon_amz_customer_returns_df | yyyyMMdd | 表行数 | 1 |
2 | ods_amazon_amz_flat_file_all_orders_df | yyyyMMdd | 表行数 | 1 |
3 | dim_sys_salesman_info_df | yyyyMMdd | 表行数 | 1 |
4 | ods_dawnwin_erp_ba_goods_brand_df | yyyyMMdd | 表行数 | 1 |
6 | ods_dawnwin_erp_op_bom_vc_relation_df | yyyyMMdd | 表行数 | 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 ;
id | tbl_name | pt_format | val_type | monitor_flag |
---|
1 | ods_amazon_amz_customer_returns_df | yyyyMMdd | 表行数 | 1 |
2 | ods_amazon_amz_flat_file_all_orders_df | yyyyMMdd | 表行数 | 1 |
3 | dim_sys_salesman_info_df | yyyyMMdd | 表行数 | 1 |
4 | ods_dawnwin_erp_ba_goods_brand_df | yyyyMMdd | 表行数 | 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 ;
id | tbl_name | pt_format | val_type | monitor_flag |
---|
1 | ods_amazon_amz_customer_returns_df | yyyyMMdd | 表行数 | 1 |
2 | ods_amazon_amz_flat_file_all_orders_df | yyyyMMdd | 表行数 | 1 |
3 | dim_sys_salesman_info_df | yyyyMMdd | 表行数 | 1 |
4 | ods_dawnwin_erp_ba_goods_brand_df | yyyyMMdd | 表行数 | 1 |
8 | dws_amazon_market_sales_return_stat_di | yyyyMMdd | 表行数 | 1 |
新增字段
ALTER TABLE puture_bigdata.tmp_monitor_tbl_info ADD COLUMNS pt_num INT COMMENT '分区日期差值' ;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8279253ca20369d638066f9558f3d801.png)
UPDATE puture_bigdata.tmp_monitor_tbl_info SET pt_num = -1 ;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/539e7c233a6af1d2ce2f98a9dc9292ae.png)
-- 更新数据, 修改其中一条数据一个字段值
UPDATE puture_bigdata.tmp_monitor_tbl_info SET pt_num = -2 WHERE id = 38 ;
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/abdbeef2b5ec94f3321b49ced70ed90e.png)
end