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

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 ;
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 '分区日期差值' ;

Transactional Table(事务表)创建和使用_第1张图片

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

Transactional Table(事务表)创建和使用_第2张图片

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

Transactional Table(事务表)创建和使用_第3张图片

end

你可能感兴趣的:(大数据,数仓,数据库,hive,大数据)