当前位置: 首页 > news >正文

龙腾盛世网站建设医院管理系统

龙腾盛世网站建设,医院管理系统,php主机网站,网络规划设计师通过率多少数据处理的规范中#xff0c;第一个层次是ODS#xff0c;一般成为贴元层#xff0c;最靠近业务库的数据。需要统计ODS中有数据表的行数#xff0c;及更新频率。#xff08;假设在ODS中是Mysql数据库#xff09; 需求描述 有多个mysql的实例#xff0c;每个实例中有多个…数据处理的规范中第一个层次是ODS一般成为贴元层最靠近业务库的数据。需要统计ODS中有数据表的行数及更新频率。假设在ODS中是Mysql数据库 需求描述 有多个mysql的实例每个实例中有多个数据库schema每个shema有多个数据表。原始的数据定时增量同步或全量同步到ODS中ODS中不包含数据的历史版本。是同步的最新版本。 根据当前的现状需要统计 每个表有多少行 每个表更新的频率 每个表的字段详细 实现思路 分析需求 通过读取myql的元数据获取到每个数据表的行数。然后持续保存一定的周期如60天可以观察一下它的趋势如果在60天之后都没有更新基本上不是高频数据。 通过读取mysql的元数据获取每个表的字段信息可以获取到每个表的字段详细信息这个不需要保留历史版本仅仅保留最新的一个版本 技术方案 使用SpringBootjpa的方式来进行实现 表元数据获取 解析config.xml文件形成一个类。然后采用jdbc的原始方式进行循环连接各url。获取到数据之后转入到相应的类中。使用jpa的entity的方式将数据保存到数据库中 列元数据获取 解析config.xml文件形成一个类。然后采用jdbc的原始方式进行循环连接各url。获取到列的数据之后转入到相应的类中。使用jpa的entity的方式将数据 分批 保存到数据库中 非功能性 为保障程序的稳健性运行需要考虑 日志异常可配置性 日志 logback:rolling policy:file-name-pattern: datemeta.%d{yyyy-MM-dd}.%i.logmax-history: 10max-file-size: 1000KBtotal-size-cap: 20000KB 异常 自定义异常及枚举异常的类型 public enum DbMetaErrorCode {// 文件相关错误CONFIG_FILE_NOT_FOUND(1001, 配置文件未找到: {0}),CONFIG_PARSE_ERROR(1002, 配置文件解析失败: {0}),// 配置验证错误DUPLICATE_DATA_INSTANCE(2001, 发现重复的数据源实例名称: {0}),MISSING_DATA_INSTANCE_NAME(2002, 数据源实例缺少有效的 dbinstancename),INVALID_DATASOURCE_URL(2003, {0}: URL无效),MISSING_DRIVER_CLASS(2004, {0}: 缺少驱动类名),INVALID_KEEPDAYS(2005, 保留天数无效, 必须在{0}-{1}之间, 当前值: {2}),MISSING_DEST_DATASOURCE(2006, 目标数据源配置缺失),MISSING_DEST_URL(2007, 目标数据源URL缺失),MISSING_DEST_DRIVER(2008, 目标数据源驱动类名缺失),// 系统错误SYSTEM_STARTUP_FAILED(5001, 系统启动失败),DATABASE_CONNECTION_FAILED(5002, 数据库连接失败: {0}),// 通用错误INVALID_CONFIG(6001, 配置无效: {0});private final int code;private final String messageTemplate;DbMetaErrorCode(int code, String messageTemplate) {this.code code;this.messageTemplate messageTemplate;}public int getCode() {return code;}public String getMessage(Object... params) {return MessageFormat.format(messageTemplate, params);} } 配置化 原始数据库的连接配置化 目标数据库的连接配置化 用户的使用方式 本机具有jdk8以上环境 有3个文件将这3个文件复制到同一个目录下。该目录不要使用中文。 数据源配置config.xml 字段解释 keepdays在数据库中保留的表的元数据历史版本天数 sourcedatasource 是针对原始的数据库实例的目录 datainstance是数据库的实例可以有多个实例如ABC等 数据库实例中有多个数据库仅选择任意一个数据库配置数据库连接。这样就可以访问该实例中所有的元数据。 如数据库有5个实例ABCDE每个实例下有100个库。 那么在 需要配置 datainstance 5个。 每个里面的原始选择该 datainstance下任意一个数据库的driveclass urlpassword destinationdatasource 这个是将结果的元数据存入的数据库统计的数据会被执行到该数据库中 注意在xml中配置连接的时候如果出现特殊字符需要进行转义。如 字符需要转换为amp, destinationdatasourcedriverclassnamecom.mysql.cj.jdbc.Driver/driverclassnameurljdbc:mysql://localhost:3306/speed?useUnicodetrueamp;characterEncodingutf-8amp;useSSLfalseamp;serverTimezoneAsia/Shanghai/urlusernameroot/usernamepasswordSteven123/passwordnote目标数据库/note/destinationdatasource 目标数据库下sql语句执行 CREATE TABLE tablemetainfo (id bigint NOT NULL,codecreateUserId varchar(255) DEFAULT NULL,codecreateTime datetime(6) DEFAULT NULL,codelastModifiedUserId varchar(255) DEFAULT NULL,codelastModifiedTime datetime(6) DEFAULT NULL,codeversion int DEFAULT NULL,dbinstancename varchar(255) DEFAULT NULL,note varchar(255) DEFAULT NULL,tableCatalog varchar(255) DEFAULT NULL,tableSchema varchar(255) DEFAULT NULL,tableName varchar(255) DEFAULT NULL,tableType varchar(255) DEFAULT NULL,engine varchar(255) DEFAULT NULL,version int DEFAULT NULL,rowFormat varchar(255) DEFAULT NULL,tableRows bigint DEFAULT NULL,avgRowLength bigint DEFAULT NULL,dataLength bigint DEFAULT NULL,maxDataLength bigint DEFAULT NULL,indexLength bigint DEFAULT NULL,dataFree bigint DEFAULT NULL,autoIncrement bigint DEFAULT NULL,createTime datetime(6) DEFAULT NULL,updateTime datetime(6) DEFAULT NULL,checkTime datetime(6) DEFAULT NULL,tableCollation varchar(255) DEFAULT NULL,checksum varchar(255) DEFAULT NULL,createOptions varchar(255) DEFAULT NULL,tableComment varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;CREATE TABLE columnmetainfo (id bigint NOT NULL,codecreateUserId varchar(255) DEFAULT NULL,codecreateTime datetime(6) DEFAULT NULL,codelastModifiedUserId varchar(255) DEFAULT NULL,codelastModifiedTime datetime(6) DEFAULT NULL,codeversion int DEFAULT NULL,dbname varchar(255) DEFAULT NULL,note varchar(255) DEFAULT NULL,tableCatalog varchar(255) DEFAULT NULL,tableSchema varchar(255) DEFAULT NULL,tableName varchar(255) DEFAULT NULL,columnName varchar(255) DEFAULT NULL,ordinalPosition int NOT NULL,columnDefault varchar(255) DEFAULT NULL,isNullable varchar(255) DEFAULT NULL,dataType varchar(255) DEFAULT NULL,numericPrecision int DEFAULT NULL,numericScale int DEFAULT NULL,datetimePrecision int DEFAULT NULL,characterSetName varchar(255) DEFAULT NULL,collationName varchar(255) DEFAULT NULL,columnType varchar(255) DEFAULT NULL,columnKey varchar(255) DEFAULT NULL,extra varchar(255) DEFAULT NULL,privileges varchar(255) DEFAULT NULL,columnComment varchar(255) DEFAULT NULL,generationExpression varchar(255) DEFAULT NULL,srsId varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;CREATE TABLE logdto (id bigint NOT NULL,codecreateUserId varchar(255) DEFAULT NULL,codecreateTime datetime(6) DEFAULT NULL,codelastModifiedUserId varchar(255) DEFAULT NULL,codelastModifiedTime datetime(6) DEFAULT NULL,codeversion int DEFAULT NULL,logContent varchar(255) DEFAULT NULL,logType int DEFAULT NULL,operateType int DEFAULT NULL,createBy varchar(255) DEFAULT NULL,createTime datetime(6) DEFAULT NULL,costTime bigint DEFAULT NULL,ip varchar(255) DEFAULT NULL,requestParam varchar(255) DEFAULT NULL,requestType varchar(255) DEFAULT NULL,requestUrl varchar(255) DEFAULT NULL,method varchar(255) DEFAULT NULL,username varchar(255) DEFAULT NULL,userid varchar(255) DEFAULT NULL,tenantId int DEFAULT NULL,clientType varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci; 运行程序 在3个文件的目录下进入dos的界面执行 java -jar .\dbmeta-1.0.1.jar将自动部署一个web服务程序 获取表的元数据 用户手动触发访问 这个是获取到最新的表的元数据。 http://127.0.0.1:8066/tabledatainfo 自动定时任务 // 每天凌晨5点执行cron 表达式0 0 5 * * ? Scheduled(cron 0 0 5 * * ?)每次执行的时候把今天的数据先进行删除然后把60天的数据删除然后在插入本次获取的数据。 获取列的元数据 这个是获取到最新的列的元数据 http://127.0.0.1:8066/columndatainfo 列每次手动更新没有必要定时任务 数据分析 SELECT     dbinstancename,     tableSchema,     tablename,(     max( tablerows )- min( tablerows )) maxmindiff  FROM     tableinfo  GROUP BY     dbinstancename,     tableSchema,     tablename  HAVING     max( tablerows )- min( tablerows )10 假设   最大值-最小值10为更新频率高的标记。 从这个结果集中可以初步评估有哪些是高频更新哪些是低频更新。 这种评估方法对于在ods中没有更新时间的来看是可参考的。 最理想的方式是在ODS的同步时候同时需要同步 updatetime的时间 开源的代码地址 https://gitee.com/stevenworkshop_admin/dbmeta
http://www.w-s-a.com/news/145229/

相关文章:

  • 网站切换图片做背景怎么写外贸营销邮件主题一般怎么写
  • 基于html5的网站开发wordpress主题工具
  • php网站开发的成功经历公司网站现状
  • 软件发布网站源码中国企业公示信息网
  • flash 的网站网站型销售怎么做
  • 营销型网站单页网站的域名和密码
  • 建网站保定seo自动发布外链工具
  • 做公众号关注网站做课件用这15大网站
  • 怎么制作公司自己网站店铺设计软件手机版
  • 深圳网站关键词优化公司哪家好怎么选择锦州网站建设
  • 标准网站优势项目合作网站
  • 无人机东莞网站建设wordpress站群管理破解版
  • 深圳企业官网网站建设教育培训学校
  • 医疗网站建设及优化西安网站建设开发公司
  • 网站建设详细流程ydg wordpress theme
  • 湖北黄石域名注册网站建设编程网站项目做哪个比较好
  • 旺道网站排名优化咸阳建设网站
  • 建设一个类似淘宝的网站律师做推广宣传的网站
  • 东阳网站建设方案网站建设asp
  • 模板网站建设一条龙平面设计师招聘信息
  • 制作一个网站流程企业建设网站的母的
  • 九州建网站网页游戏平台代理
  • 培训课程网站网上下载的网站模板怎么用
  • 重庆山艺网站建设塘厦理工学校
  • 做网站的人叫什么软件玩具网站设计
  • 网站说服力营销型网站策划 pdf深圳有什么公司名称
  • 做物流的可以在那些网站找客户男生晚上正能量你懂我意思
  • 宁德市城乡住房建设厅网站教育机构logo
  • 做定制网站价格有网站了怎么做app
  • 做网站和制作网页的区别北京朝阳区最好的小区