正则表达式
- [] 表述
一个字符
应该是什么样子- [abc] 表示一个字符可以是a\b\c
- [a-z] 表示所有小写
- [a-zA-Z]所有大小写
- [ a-zA-Z0-9_ ] 所有大小写字母及数字和下划线 -> \w
- [0-9] \d
- \s 空格
- . 表示任意字符
- {} 表示有多少个这样的字符
- [a-z]{1,10}最少有一个,最多有10个
- [a-z]{,10}最多10个
- [a-z]{2,}至少2个
- {1,} -> + 至少一个可以用+代替
- {0,1} -> ? 最多一个
- {,} -> * 多少个都行,可以没有
- .* 表示任意字符有任意多个
- ()修饰可以是一个什么样的词组
- (zhang3 | li4)可以是zhang3或者li4
- ^ 表示以什么开头
- [^] 表示非
- $ 表示以什么结尾
代码使用
public static void main(String[] args){String email = "windyzj@qq.com";Pattern emailPattern = Pattern.compile("正则");Matcher matcher = emailPttern.matcher(email);if(matcher.matches()){sout("符合规范");}else{sout("不符合规范 ");}
}
时间复杂度
O(1) : 根据key从map中查询,从set中查询某个值是否存在
集合转换
可以使用.stream().
指标类之读写访问权限检查
- 文件目录是否超过建议权限
- 指标code: FILE_ACCESS_PERMISION
- 领域:SECURITY
- 建议权限:
- 目录权限:755
- 文件权限:644
- 处理步骤:
- 提取相关元数据
- 准备递归遍历
- 递归工具 FileSystem
- 递归起点 一级子目录
- 递归的容器 收集所有超过权限的文件、目录,位置
- 判断权限的参数 perssion
- 递归执行
- 循环起点目录
- 如果是中间节点(目录):采集处理,张开下一层次,递归回调自己
- 如果是叶子节点(文件):采集处理,权限检查
- 根据结果容器进行评价:如果容器有内容,差评,填写问题位置
考评领域划分
- calc 计算
- quality安全
- spec 规范
- storage存储
mysql相关命令
- 启动sudo systemctl restart mysqld
- 配置文件 /etc/my.cnf
- 日志: /var/lib/mysqld.log
- 如果执行启动脚本出错:sudo journalctl -xe
表产出数据监控
- 先判断为日分区表
- 当日产出的数据量,超过前x天产出量{upper_limit}%, 或低于{lower_limit}%
- 当日分区的数据量 / 前n天平均值
- 表目录/ dt , 递归累加计算
Dolphinscheduler面向数据治理
- 不要每层一个节点,而是每个表一个节点
- ds中的sql节点实际上是使用jdbc方式的方式执行SQL,需要使用hiveserver2,但是hiveserver2在大数据量时非常不稳定
- 由于经过hiveserver2,会丢失掉yarn_id
- 而做数据治理时,yarn_id是用来找到对应任务日志的唯一标识
- ds.3 bug比较多,功能也较多,3.x版本不采集yarn_id,需要改源码重新编译
- 如何根据表名查询该表对应的流程节点,把节点名命名为库名+表名
要从DS中获取哪些东西
- 任务定义:获得SQL,总共一份。在表t_ds_task_definition
- 任务运行状况(每天一份):在表 t_ds_task_instance
- 是否运行成功 state 成功是7,失败是6
- 耗时: end_time - submit_time
- yarn_id 用于提取日志 app_link