请先行在本博客《技术手册》专栏中查看与 SmartJob 相关的文章。
尤其是:《SmartJob 配置说明》《SmartJob 配置看护任务》
1. 创建小时统计表
CREATE TABLE SMARTSYS.STATISTICS_ANA_HOUR(
ID BIGINT NOT NULL ,
DESCRIPTION VARCHAR (100) NOT NULL DEFAULT 'dummy',
DEV_ID BIGINT,
STATICS_TIME VARCHAR(32),
MAX_VALUE DOUBLE precision,
MAX_TIME VARCHAR(32),
MIN_VALUE DOUBLE precision,
MIN_TIME VARCHAR(32),
DIFF_VALUE DOUBLE precision,
AVG_VALUE DOUBLE precision,
SYSID INTEGER NOT NULL DEFAULT 1,
CONSTRAINT STATISTICS_ANA_HOUR_PKEY PRIMARY KEY (ID,STATICS_TIME) USING INDEX TABLESPACE SMART_HISTORY_INDEX) WITHOUT OIDS
TABLESPACE SMART_HISTORY;
2. 创建日统计表
CREATE TABLE smartsys.STATISTICS_ANA_DAY(
ID BIGINT NOT NULL ,
DESCRIPTION VARCHAR (100) NOT NULL DEFAULT 'dummy',
DEV_ID BIGINT,
STATICS_TIME VARCHAR(32),
MAX_VALUE DOUBLE precision,
MAX_TIME VARCHAR(32),
MIN_VALUE DOUBLE precision,
MIN_TIME VARCHAR(32),
DIFF_VALUE DOUBLE precision,
AVG_VALUE DOUBLE precision,
SYSID INTEGER NOT NULL DEFAULT 1,
CONSTRAINT STATISTICS_ANA_DAY_PKEY PRIMARY KEY (ID,STATICS_TIME) USING INDEX TABLESPACE SMART_HISTORY_INDEX) WITHOUT OIDS
TABLESPACE SMART_HISTORY;
3. 创建月统计表
CREATE TABLE STATISTICS_ANA_MONTH
(
ID BIGINT NOT NULL ,
DESCRIPTION VARCHAR(100) NOT NULL DEFAULT 'dummy',
DEV_ID BIGINT,
STATICS_TIME VARCHAR(32),
MAX_VALUE DOUBLE PRECISION,
MAX_TIME VARCHAR(32),
MIN_VALUE DOUBLE PRECISION,
MIN_TIME VARCHAR(32),
DIFF_VALUE DOUBLE PRECISION,
AVG_VALUE DOUBLE PRECISION,
SYSID INTEGER NOT NULL DEFAULT 1,
CONSTRAINT STATISTICS_ANA_MONTH_PKEY PRIMARY KEY (ID,STATICS_TIME) USING INDEX TABLESPACE SMART_HISTORY_INDEX) WITHOUT OIDS
TABLESPACE SMART_HISTORY;
【注意】
如果表已存在,请确认表结构(字段和数据类型)相同,或者删除表后重新按步骤1-3建表。
删表语句:
drop table STATISTICS_ANA_HOUR;
drop table STATISTICS_ANA_DAY;
drop table STATISTICS_ANA_MONTH;
4. 配置需要统计的点
在sysmodel建模工具中,将对应的ana点,设置成“需采样”且“需统计”。并且在rhdb_client中对此项配置进行确认。
5. 停用原先日统计和月统计的任务,替换成新的常规统计服务
update job_task set enable = 0 where jar = 'AccDaily' or jar = 'AccMonthly';
insert into job_task(id,description,jar,cron,lastupdatetime,retrymaxsize,retrydelaytimeinminutes,enable,groupname)
values(1, '常规统计', 'Regular', '0 0 * * * ? *', '2019-xx-xx 03:00:00', 1, 1, 1, 'dky');
其中的日期部分:2019-xx-xx 03:00:00,应替换成此刻之后的时间(建议推迟1小时以上)
6. 上传程序包Regular.jar至task文件夹
7. 用jps杀死SmartJob,清理日志,然后重启。
【备注】由于日统计数据来源于小时统计数据,月统计数据来源于日统计数据。所以当SmartJob长期下线后,相关的日统计和月统计数据会不准确,所以请务必为SmartJob配置好看护。