diff --git a/2023-04-23.md b/2023-04-23.md new file mode 100644 index 0000000..e69de29 diff --git a/Snipaste_2023-03-28_09-21-51.png b/Snipaste_2023-03-28_09-21-51.png new file mode 100644 index 0000000..4b65766 Binary files /dev/null and b/Snipaste_2023-03-28_09-21-51.png differ diff --git a/Snipaste_2023-04-01_17-47-48 1.png b/Snipaste_2023-04-01_17-47-48 1.png new file mode 100644 index 0000000..e6ea422 Binary files /dev/null and b/Snipaste_2023-04-01_17-47-48 1.png differ diff --git a/Snipaste_2023-04-01_17-47-48.png b/Snipaste_2023-04-01_17-47-48.png new file mode 100644 index 0000000..88fb566 Binary files /dev/null and b/Snipaste_2023-04-01_17-47-48.png differ diff --git a/work常用/CQL 常用语句.md b/work常用/CQL 常用语句.md new file mode 100644 index 0000000..f51e0f3 --- /dev/null +++ b/work常用/CQL 常用语句.md @@ -0,0 +1,15 @@ ++ 查询节点入度为1的其他节点 +```sql +# view 为标签 name 为节点属性, <--表示指向方向 +match (n:view{name: "CRZ_FINANCE_INVEST_PRJ_DETAIL_VW" })<--(b) return n,b +``` ++ 查询某个节点入度(其他节点指向该节点) +``` +match (n:view{name: 'CRZ_FINANCE_INVEST_PRJ_DETAIL_VW'}) with n, size((n)<-[]-()) as s return s; +``` ++ 向上遍历 +```cpyher +# 查询与视图CRZ_FINANCE_INVEST_PRJ_DETAIL_VW相关的所有节点及关系,<-表示入度,在这个例子中,视图是作为被其他节点指向的一方 +MATCH (c:view{name:"CRZ_FINANCE_INVEST_PRJ_DETAIL_VW"})<-[r*0..]-(result) return result +MATCH (c:view{name:"DW_INFRASTRUCTURE_INDEX_VW"})<-[r*0..]-(result) return result +``` diff --git a/work常用/Linux命令.md b/work常用/Linux命令.md index 2ae48b6..dea8918 100644 --- a/work常用/Linux命令.md +++ b/work常用/Linux命令.md @@ -153,6 +153,29 @@ lsof -i:8080 # 查看文件进程 lsof xxx.txt ``` + ++ ip +``` +ip link show # 显示网络接口信息 +ip link set eth0 up # 开启网卡 +ip link set eth0 down # 关闭网卡 +ip link set eth0 promisc on # 开启网卡的混合模式 +ip link set eth0 promisc offi # 关闭网卡的混个模式 +ip link set eth0 txqueuelen 1200 # 设置网卡队列长度 +ip link set eth0 mtu 1400 # 设置网卡最大传输单元 +ip addr show # 显示网卡IP信息 +ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1 +ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址 + +ip route show # 显示系统路由 +ip route add default via 192.168.1.254 # 设置系统默认路由 +ip route list # 查看路由信息 +ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口 +ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254 +ip route del 192.168.4.0/24 # 删除192.168.4.0网段的网关 +ip route del default # 删除默认路由 +ip route delete 192.168.1.0/24 dev eth0 # 删除路由 +``` ## 2.2 查看网关 ``` # 查看gateway @@ -203,6 +226,49 @@ scp local_file remote_host:remote_file scp -r local_dir remote_host:remote_folder ``` +## 2.8 查看网卡 +查看当前使用网卡 +``` +nmcli d +``` + +修改IP,添加DNS +```text +nmcli c m ens33 ipv4.address 192.168.80.10/24 # 修改 IP 地址和子网掩码 +nmcli c m ens33 ipv4.method manual # 修改为静态配置,默认是 auto +nmcli c m ens33 ipv4.gateway 192.168.80.2 # 修改默认网关 +nmcli c m ens33 ipv4.dns 192.168.80.2 # 修改 DNS +nmcli c m ens33 +ipv4.dns 114.114.114.114 # 添加一个 DNS +nmcli c m ens33 ipv6.method ignored # 将 IPv6 禁用,针对CentOS8,三个可选项:disabled、auto、manual +nmcli c m ens33 connection.autoconnect yes # 开机启动 +``` + +显示连接信息 +``` +nmcli connection show +或 +nmcli c show +``` + +## 2.9 安装SSH +```shell +yum -y install openssh openssh-server openssh-clients +systemctl start sshd +systemctl status sshd +``` + +## 2.10 修改DNS +``` +vim /etc/resolv.conf +# 重启网络 +systemctl start network.service +``` + +## 2.11 网络测试 +```shell +# 返回0表示正常 +wget --spider -T 5 -q -t 2 www.baidu.com | echo $? +``` # 三、权限 ## 3.1 用户权限及用户组 Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users) @@ -313,6 +379,46 @@ df -h jsp ``` +## 4.9 软链接 +将python2.7.9映射为python,可以先用whereis python或者which python查找位置 +```shell +ln -s /usr/local/python-2.7.9/bin/python /usr/bin/python +``` + +## 4.10 查看上次登录 +```shell +who -b +``` + +## 4.11 配置定时任务 +hadoop任务可能不会执行,因为crontab的path和系统path不一致,找到hadoop命令。如果出现找不到命令情况请添加cron path +```shell + root 用户 + vim /etc/crontab + + SHELL=/bin/bash + PATH=/sbin:/bin:/usr/sbin:/usr/bin + MAILTO=root + + # For details see man 4 crontabs + + # Example of job definition: + # .---------------- minute (0 - 59) + # | .------------- hour (0 - 23) + # | | .---------- day of month (1 - 31) + # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... + # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat + # | | | | | + # * * * * * user-name command to be executed + 20 04 * * * root reboot + + # 加载配置 + crontab /etc/crontab + + # 重启crontab服务 + systemctl restart crond.service +``` + # 五、vim ![[vi-vim-cheat-sheet-sch.gif]] @@ -329,3 +435,15 @@ jsp | 修改文件format | :set fileformat=unix | | 删除 | dd 删除当前行 | | 方向键 | h:左 j:下 k:上 l:右 | + +# 六、环境变量 +## 6.1 java 环境变量 +```shell +export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar +source ~/.bashrc +# 验证 +java -version +echo $JAVA_HOME +``` diff --git a/work常用/Oracle常用.md b/work常用/Oracle常用.md new file mode 100644 index 0000000..2b7146d --- /dev/null +++ b/work常用/Oracle常用.md @@ -0,0 +1,159 @@ +# 一、元数据 +## 1.1 存储过程 ++ 查看所有存储过程 +```sql +select distinct name From user_source where type = 'PROCEDURE' +``` ++ 查看存储过程语句 +```sql +SELECT text + FROM user_source + WHERE NAME = 'EXECUTE_JOB_FINANCE_SURVEY' +ORDER BY line +``` +## 1.2 表 ++ 查看所有表 +```sql +# 查询当前用户 +select * from user_tab_comments where table_type='TABLE'; +# 查询所有用户,当前用户必须有sysdba权限 +select * from all_tab_comments +``` ++ 查看表所有字段 +```sql +SELECT + COLUMN_NAME, + DATA_TYPE +FROM + user_tab_columns +WHERE + table_name = 'DW_INFRASTRUCTURE_SURVEY' +ORDER BY + COLUMN_ID ASC; +``` ++ 查看具体字段 +```sql +SELECT + COLUMN_NAME, + DATA_TYPE, + DATA_LENGTH, + NULLABLE, + DEFAULT_LENGTH, + DATA_DEFAULT +FROM + user_tab_columns +WHERE + table_name = 'DW_INFRASTRUCTURE_SURVEY' + AND COLUMN_NAME = 'STATISTICAL_TIME' +ORDER BY + COLUMN_ID ASC; +``` ++ 查看字段及注释 +```sql +SELECT + b.COLUMN_NAME, + a.COMMENTS, + case when DATA_PRECISION is null and DATA_SCALE=0 and DATA_TYPE='NUMBER' then 'NUMBER(38,0)' when + DATA_PRECISION is not null and DATA_SCALE>0 then 'NUMBER('||DATA_PRECISION||','||DATA_SCALE||')' when + DATA_TYPE<>'DATE' then DATA_TYPE||'('||DATA_LENGTH||')' else DATA_TYPE end as DATA_TYPE_, + b.NULLABLE, + b.DATA_LENGTH, + b.DEFAULT_LENGTH, + b.DATA_DEFAULT, + DATA_PRECISION, + DATA_SCALE, + b.COLUMN_ID, + b.DATA_TYPE +FROM + user_col_comments a + LEFT JOIN user_tab_columns b ON a.table_name = b.table_name + AND a.COLUMN_NAME = b.COLUMN_NAME +WHERE + a.table_name = 'OA_VEHICLE_OIL_CHARGE' +ORDER BY + b.COLUMN_ID ASC +``` + ++ 修改表备注 +``` +# 表备注 +Comment on table DW_RE_PROGRESS_DETAIL is '项目进度-进度明细'; +# 字段备注 +comment on column Student.id is '学生id'; +comment on column Student.name is '学生姓名'; +``` + +## 1.3 视图 ++ 查询当前用户所有视图 +```sql +select * from user_tab_comments where table_type='VIEW' +``` + ++ 视图创建语句 +```sql +select text from all_views where view_name='DW_SAFETY_RISK_LARG_QS_VW' +``` + +# 二、常用函数 +## 2.1 行转列、列转行 ++ pivot +```sql +--行转列 +select * + from SalesList pivot( + max(salesNum) for shangPin in ( --shangPin 即要转成列的字段 + '上衣' as 上衣, --max(salesNum) 此处必须为聚合函数, + '裤子' as 裤子, --in () 对要转成列的每一个值指定一个列名 + '袜子' as 袜子, + '帽子' as 帽子 + ) + ) + where 1 = 1; --这里可以写查询条件,没有可以直接不要where +``` + +```sql +with hsb_stat as (select count(1) as num,'已完成重大污染物识别与评价项目' as item from SU_CHECK_ENVWATER_IMPL where STAT_ITEM_ID=110 and FINISH_STATUS=1 and PROJECT_ID=#{project_id} +union +select count(1) as num,'已完成环水保检测项目' as item from SU_CHECK_ENVWATER_IMPL where STAT_ITEM_ID=111 and FINISH_STATUS=1 and PROJECT_ID=#{project_id} +union +select count(1) as num,'已完成“三同时”落实情况项目' as item from SU_CHECK_ENVWATER_IMPL where STAT_ITEM_ID=112 and FINISH_STATUS=1 and PROJECT_ID=#{project_id} +union +select count(1) as num,'已完成环水保验收项目' as item from SU_CHECK_ENVWATER_IMPL where STAT_ITEM_ID=113 and FINISH_STATUS=1 and PROJECT_ID=#{project_id} +union +select nvl(sum(CHECK_COUNT),0) as num,'检查次数' as item from SU_CHECK_ENVWATER_IMPL where PROJECT_ID=#{project_id} +union +select nvl(sum(CHECK_ISSUE_COUNT),0) as num,'发现问题数' as item from SU_CHECK_ENVWATER_IMPL where PROJECT_ID=#{project_id} +union +select nvl(sum(RECTIFY_ISSUE_COUNT),0) as num,'整改完成' as item from SU_CHECK_ENVWATER_IMPL where PROJECT_ID=#{project_id}) +-- 重点 +select * from hsb_stat pivot(max(num) for item in ( + '已完成“三同时”落实情况项目' as santongshi, + '已完成环水保检测项目' as hsjc, + '已完成环水保验收项目' as hsys, + '已完成重大污染物识别与评价项目' as zdwrw, + '检查次数' as jccs, + '整改完成' as zgwc, + '发现问题数' as fxwts +)) +``` ++ merge into 合并 +```sql +MERGE INTO t1 +USING (SELECT id,name FROM t2) t2 +ON ( t1.id=t2.id) +WHEN MATCHED THEN +UPDATE SET T1.name= t2.name +WHEN NOT MATCHED THEN +INSERT (id,name) VALUES (t2.id,t2.name); + + +# 结合with +MERGE INTO #TEMP1 A +USING ( +WITH SUMORDER AS + (SELECT PRODUCTID, SUM(AMOUNT) TOTAL + FROM ORDER GROUP BY PRODUCTID) + SELECT * FROM SUMORDER +) B ON (A.PRODUCTID = B.PRODUCTID) +WHEN MATCHED THEN UPDATE SET A.TOTAL = B.TOTAL; +``` diff --git a/work常用/SqlServer常用.md b/work常用/SqlServer常用.md new file mode 100644 index 0000000..618924a --- /dev/null +++ b/work常用/SqlServer常用.md @@ -0,0 +1,147 @@ +# 一、统计 +## 1.1 数据量统计 +```sql +exec sp_spaceused 表名; +``` + +## 1.2 批量统计 +本质是循环 +```sql +exec sp_MSforeachtable "exec sp_spaceused '?'" +``` + +# 二、分页 +## 2.1 topN +查看前5条 +```sql +select TOP 5 *from T_ProductMain +``` + +## 2.2 分页查询 +要查询上述结果中第 7 条到第 9 条记录 +```sql +select top 3 id from tablename +where id not in ( +  select top 6 id from tablename +) +``` +m-1=6,m=7 +```sql +select top (n-m+1) id from tablename +where id not in ( +  select top m-1 id from tablename +) +``` +通过行号分页 +```sql +SELECT * FROM +( +SELECT ROW_NUMBER()over(order by getdate()) AS rownumber,* from T_ProductMain +) AS #a +WHERE #a.rownumber>=1 AND #a.rownumber<=5 +``` +sqlserver 2012及以上版本支持 +```sql +SELECT * FROM T_AttrPart +ORDER BY PartNo offset 0 ROWS FETCH NEXT 10 ROWS ONLY +``` + +# 三、元数据 +## 3.1 查看所有表名 +```sql +select top 10000 +ROW_NUMBER() OVER (ORDER BY a.name) AS No, +a.name AS 表名, +CONVERT(NVARCHAR(100),isnull(g.[value],'-')) AS 说明 +from +sys.tables a left join sys.extended_properties g +on (a.object_id = g.major_id AND g.minor_id = 0); +``` + +## 3.2 查看字段及类型 +```sql +select column_name name,data_type type +from information_schema.columns +where table_name = 'T_AltAffix' +``` + +## 3.3 查看数据库版本 +```sql +SELECT SERVERPROPERTY('productversion') as version_code, SERVERPROPERTY ('productlevel') as version_level, SERVERPROPERTY ('edition') as version_type +``` + +## 3.4 系统自带 ++ 存储过程 +```sql +dt_addtosourcecontrol +dt_addtosourcecontrol_u +dt_adduserobject +dt_adduserobject_vcs +dt_checkinobject +dt_checkinobject_u +dt_checkoutobject +dt_checkoutobject_u +dt_droppropertiesbyid +dt_dropuserobjectbyid +dt_generateansiname +dt_getobjwithprop +dt_getobjwithprop_u +dt_getpropertiesbyid +dt_getpropertiesbyid_u +dt_getpropertiesbyid_vcs +dt_getpropertiesbyid_vcs_u +dt_isundersourcecontrol +dt_isundersourcecontrol_u +dt_removefromsourcecontrol +dt_setpropertybyid +dt_setpropertybyid_u +dt_validateloginparams +dt_validateloginparams_u +dt_vcsenabled +dt_verstamp006 +dt_verstamp007 +dt_whocheckedout +dt_whocheckedout_u +``` + +## 3.5 查看字符集 +```sql +SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage'); +``` +| 字符集编码 | 类型 | +| ---------- | --------------- | +| 936 | 简体中文GBK | +| 950 | 繁体中文BIG5 | +| 437 | 美国/加拿大英语 | +| 932 | 日文 | +| 949 | 韩文 | +| 866 | 俄文 | +| 65001 | unicode UFT-8 | + +## 3.6 查看数据占用大小 +```sql + SELECT a.name [文件名称] ,cast(a.[size]*1.0/128 as decimal(12,1)) AS [文件设置大小(MB)] , + CAST( fileproperty(s.name,'SpaceUsed')/(8*16.0) AS DECIMAL(12,1)) AS [文件所占空间(MB)] , + CAST( (fileproperty(s.name,'SpaceUsed')/(8*16.0))/(s.size/(8*16.0))*100.0 AS DECIMAL(12,1)) AS [所占空间率%] , + CASE WHEN A.growth =0 THEN '文件大小固定,不会增长' ELSE '文件将自动增长' end [增长模式] ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 + THEN '增量为固定大小' WHEN A.growth > 0 AND is_percent_growth = 1 THEN '增量将用整数百分比表示' ELSE '文件大小固定,不会增长' END AS [增量模式] , + CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN cast(cast(a.growth*1.0/128as decimal(12,0)) AS VARCHAR)+'MB' + WHEN A.growth > 0 AND is_percent_growth = 1 THEN cast(cast(a.growth AS decimal(12,0)) AS VARCHAR)+'%' ELSE '文件大小固定,不会增长' end AS [增长值(%或MB)] , + a.physical_name AS [文件所在目录] ,a.type_desc AS [文件类型] +FROM sys.database_files a +INNER JOIN sys.sysfiles AS s ON a.[file_id]=s.fileid +LEFT JOIN sys.dm_db_file_space_usage b ON a.[file_id]=b.[file_id] ORDER BY a.[type] +``` + +# 四、视图 ++ 索引视图 +```sql +# 创建索引视图,必须指定列名 +create view vwi_T_AttrPart WITH SCHEMABINDING as +SELECT ROW_NUMBER()over(order by getdate()) AS rownumber,PartNo ,ParentNO ,PartName ,SectNo ,OrderNo ,SessionCode ,IsNew ,AltMainNo ,PayPartID ,EngineerTypeID1 ,EngineerTypeID2 ,EngineerTypeID3 ,EngineerID ,SectDetailID ,StartPile ,EndPile ,CenterPile ,Mileage ,PartTypeID ,PartRemarks from dbo.T_AttrPart + +# 添加索引列(报错:不能在索引或统计信息中使用 视图'dbo.vwi_T_AttrPart' 的列 'rownumber',也不能将该列用作分区键,因为它不具有确定性) +CREATE UNIQUE CLUSTERED INDEX + ucidx_rownumber +ON dbo.vwi_T_AttrPart(rownumber); +``` \ No newline at end of file diff --git a/work常用/docker 命令.md b/work常用/docker 命令.md index 636ff73..596c74d 100644 --- a/work常用/docker 命令.md +++ b/work常用/docker 命令.md @@ -125,6 +125,8 @@ docker exec -i -t mynginx /bin/bash 通过 exec 命令对指定的容器执行 bash: ``` docker exec -it 9df70f9a0714 /bin/bash +# root 权限进入 +docker exec -it -u root 9df70f9a0714 bash ``` # 二、容器rootfs命令 diff --git a/work常用/java 并发任务编排.md b/work常用/java 并发任务编排.md new file mode 100644 index 0000000..ce37845 --- /dev/null +++ b/work常用/java 并发任务编排.md @@ -0,0 +1 @@ +[Gobrs-Async](https://async.sizegang.cn/) \ No newline at end of file diff --git a/work常用/pip 命令.md b/work常用/pip 命令.md new file mode 100644 index 0000000..df8702c --- /dev/null +++ b/work常用/pip 命令.md @@ -0,0 +1,5 @@ +# 一、 镜像加速 +```shell +# 添加 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com +pip install 'acryl-datahub[oracle]' -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com +``` \ No newline at end of file diff --git a/work常用/常用linux命令.md b/work常用/常用linux命令.md deleted file mode 100644 index 29d043a..0000000 --- a/work常用/常用linux命令.md +++ /dev/null @@ -1,107 +0,0 @@ -* 显示前N个 - - ``` - ll -lht|head -n 20 - ``` - -* 压缩命令过长 - - ```shell - find ./ -name '*' -print |zip files -@ - ``` - -* 合并文件 - - ```sql - cat *.txt > target.txt - ``` - -* 配置定时任务 - - ```sql - root 用户 - vim /etc/crontab - - SHELL=/bin/bash - PATH=/sbin:/bin:/usr/sbin:/usr/bin - MAILTO=root - - # For details see man 4 crontabs - - # Example of job definition: - # .---------------- minute (0 - 59) - # | .------------- hour (0 - 23) - # | | .---------- day of month (1 - 31) - # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... - # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat - # | | | | | - # * * * * * user-name command to be executed - 20 04 * * * root reboot - - # 加载配置 - crontab /etc/crontab - - # 重启crontab服务 - systemctl restart crond.service - ``` - -* 查看上一次启动 - - ```sql - who -b - ``` - -* 切分文件 - - ```sql - # 按大小切分 - split -b 100m xxxx - # 按行切分 - split -l xxxx - # 设置拆分后文件名,指定数字后缀 - split -b 100m -d xxxx xxxx_part_ - ``` - -* 显示文件大小 - - ```sql - du -sh xxxx - ``` - -* grep - - ```sql - # 高亮查找结果 - grep --color "test" catalina.out - # 显示在第几行 - grep -n test catalina.out - ``` - -* zip - - ```shell - # 压缩 - zip -r ./xxx.zip ./* - # 解压 - unzip xxx.zip - # 查看压缩文件内容 - unzip -v xxx.zip - # 从zip中删除xxx.txt文件 - zip xxx.zip -d xxx.txt - ``` -* 软链接 - - ```shell - ln -s 源文件名 软链接文件名 - ``` - -* 查看端口占用情况 - - ```shell - # 查看所有 - lsof -i - # 查看指定端口 - lsof -i:8080 - # 查看文件进程 - lsof xxx.txt - ``` diff --git a/工作日志/ATD/202303/2023-03-27.md b/工作日志/ATD/202303/2023-03-27.md new file mode 100644 index 0000000..c9275b4 --- /dev/null +++ b/工作日志/ATD/202303/2023-03-27.md @@ -0,0 +1,3 @@ +1. 了解计量支付前期数据前期方案及工作,整理方案中存在的问题 +2. 整理新版数据前期思路并与董工讨论 +3. 编写SqlServer数据量统计代码对旧库数据统计并输出文档 \ No newline at end of file diff --git a/工作日志/ATD/202303/2023-03-28.md b/工作日志/ATD/202303/2023-03-28.md new file mode 100644 index 0000000..9a81868 --- /dev/null +++ b/工作日志/ATD/202303/2023-03-28.md @@ -0,0 +1,10 @@ +计划: +- [x] 从网上整理数据迁移方案模板、chatGpt协助 +- [x] 梳理SqlServer迁移至oracle可能出现的问题(表空间、字符集、字段类型、函数、触发器等) +- [ ] 搭建dataX、dataX-web测试环境 +- [x] 编写数据迁移方案-技术篇(总体分为技术篇与业务篇) + +工作日志: +1. 编写数据迁移方案 + 共6个模块,完成1~3模块 +2. 思路验证 \ No newline at end of file diff --git a/工作日志/ATD/202303/2023-03-29.md b/工作日志/ATD/202303/2023-03-29.md new file mode 100644 index 0000000..cafde51 --- /dev/null +++ b/工作日志/ATD/202303/2023-03-29.md @@ -0,0 +1,11 @@ +计划: +- [ ] 搭建dataX、dataX-web测试环境 +- [x] 测试大表range分页方案 +- [x] 数据一致性校验工具设计 +- [x] 完成第一版数据迁移方案编写 + +工作日志: +一、数据迁移方案 +1. 对分表策略进行测试,分别测试视图、索引视图分表。 +2. 完善方案,新增质量要求、决策依据、未来规划模块 +3. 虚拟机搭建dataX测试环境 \ No newline at end of file diff --git a/工作日志/ATD/202303/2023-03-30.md b/工作日志/ATD/202303/2023-03-30.md new file mode 100644 index 0000000..c9999ea --- /dev/null +++ b/工作日志/ATD/202303/2023-03-30.md @@ -0,0 +1,9 @@ +计划: +云南交发省级事权高速公路建设项目综合管理信息平台- +- [x] 筹融资及资金使用SQL修改 +- [x] 质量安全SQL修改 + +工作日志: +1. 勐醒至江城至绿春高速公路--->筹融资及资金使用--->资金到位及投资完成界面查询SQL(修复月份重复bug) +2. 勐醒至江城至绿春高速公路--->质量安全--->监理检验 (修复年份SQL-bug) +3. 发现勐醒至江城至绿春高速公路--->筹融资及资金使用--->资金到位与投资完成情况对比-->年度数据为0 bug,经排查后端接口正常,已提交前端处理。 \ No newline at end of file diff --git a/工作日志/ATD/202303/2023-03-31.md b/工作日志/ATD/202303/2023-03-31.md new file mode 100644 index 0000000..ef3f62e --- /dev/null +++ b/工作日志/ATD/202303/2023-03-31.md @@ -0,0 +1,10 @@ +计划: +一、计量支付、投融资系统数据迁移 +- [ ] 梳理任务清单 +- [ ] 填写风险评估 +- [ ] 数据探查工具开发 + +工作日志: +1. 数据迁移方案评审(参与人:公司领导) +2. 数据探查工具开发 +3. 协助罗丹排查源表及汇总表同步问题,发现存储过程执行异常,但是无法排查异常原因。 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-03.md b/工作日志/ATD/202304/2023-04-03.md new file mode 100644 index 0000000..352af74 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-03.md @@ -0,0 +1,45 @@ +计划: +一、事权 +- [ ] 梳理事权项目涉及到的表、视图、存储过程并整理出完整的数据模型(方式方法不限) + - [x] 安装datahub对库进行扫描---->元数据、数据血缘、数据流向 + - [ ] 整理事权高速公路建设项目综合管理信息平台查询SQL--->数据血缘 + - [ ] 修改存储过程逻辑:1.将删除后插入修改为:状态位修改插入或查询插入到临时表再插入新数据 2.增加日志表记录执行过程 + + +工作日志: +1. WSL-docker 搭建datahub对事权库进行扫描 +2. 对照事权-->数据填报采集系统及数据库设计文档梳理填报用到的表 +3. 使用pdman对事权库逆向出ODS表89张,与数据库设计文档提供的67张有差异,其余22张表用途不明 +4. 清除合同管理、征地拆迁测试数据 +```sql +-- 合同管理 +-- 合同签订情况总览、合同支付情况 +select * from DW_CONTRACT where rownum<=10; + +create table DW_CONTRACT_bak_zr_20230403 as select * from DW_CONTRACT; + +-- truncate table DW_CONTRACT; + +-- 征地拆迁 +-- 项目征地拆迁进度及费用支付情况 DW_LAND_DETAIL、DW_MAIN_DIMENSION +select * from DW_LAND_DETAIL where rownum<=10; + +create table DW_LAND_DETAIL_bak_zr_20230403 as select * from DW_LAND_DETAIL; + +-- truncate table DW_LAND_DETAIL; + +select * from DW_MAIN_DIMENSION where rownum<=10; + +create table DW_MAIN_DIMENSION_bak_zr_20230403 as select * from DW_MAIN_DIMENSION; + +-- truncate table DW_MAIN_DIMENSION; + +-- 工程变更,指定project_ID +delete from dw_change where ID_ in ( +select ID_ from dw_change where MAIN_ID_ in ( +select id from dw_main_dimension where PROJECT_ID in (600000000000000138)) +) +-- 工程变更台账 +delete from ods_change_account where PROJECT_ID in (600000000000000138) +``` +5. 手动调用存储过程P_DW_MAIN_DIMENSION、P_DW_PROJECT_PROGRESS_LIST补充dw_main_dimension、dw_progress_complete表数据 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-04.md b/工作日志/ATD/202304/2023-04-04.md new file mode 100644 index 0000000..d73ae8e --- /dev/null +++ b/工作日志/ATD/202304/2023-04-04.md @@ -0,0 +1,12 @@ + +问题: +一、通过逆向分析事权数据库得到89张ODS表,已知70张,未知19张,如何分析出未知表的用途与数据流? +方法:1. 分析填报接口SQL 2. 分析视图 3. 将未知表整理出来交给其他人(熟悉业务) + +二、如何描述表与表、表与视图、视图与视图、表与存储过程、视图与存储过程的关系及数据流向? +要求:1. 字段级别的血缘(自动分析、手动录入) 2. 支持搜索 + +计划: +- [x] 事权ODS表梳理及建模(共89张,已知70张) +- [ ] 分析数据库视图及存储过程,梳理数据血缘关系(分析剩余22张ODS表用途) +- [ ] 梳理填报接口,并整理数据插入逻辑及目标表(ODS) \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-06.md b/工作日志/ATD/202304/2023-04-06.md new file mode 100644 index 0000000..c658e47 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-06.md @@ -0,0 +1,8 @@ +计划: +事权DW表重写 +- [ ] 编写代码递归扫描存储过程,找出需要处理的DW表并形成台账 +- [ ] 根据扫描结果绘制数据血缘关系图(表级别) +- [ ] 梳理前端查询接口反推DW表-->反推存储过程-->ODS表--->视图替换 +工作日志: +1. 梳理事权统计前端接口,并根据接口回溯代码,代码回溯DW表,DW表回溯存储过程 +2. 协助罗丹搭建代码SpringCloud环境 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-07.md b/工作日志/ATD/202304/2023-04-07.md new file mode 100644 index 0000000..82a2bb6 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-07.md @@ -0,0 +1,9 @@ +计划: +上午: +- [x] 根据已梳理ODS表使用pdManer工具绘制ER图 +- [x] 整理ODS表重建视图思路 +下午: +- [ ] 数据血缘工具功能点及流程图 +- [ ] 测试Neo4j 节点查询,学习并整理常用查询语句 + +工作日志: diff --git a/工作日志/ATD/202304/2023-04-10.md b/工作日志/ATD/202304/2023-04-10.md new file mode 100644 index 0000000..baeb3b3 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-10.md @@ -0,0 +1,18 @@ +计划: +一、数据迁移 +- [x] 梳理完整任务计划表并进行时间评估(核对新旧系统表结构除外) +二、数据血缘 +- [ ] 测试数据血缘管理,完成元数据提取模块 + +工作日志: +数据迁移: +1. 梳理完整任务计划表并进行时间评估 +2. 新旧表字段核对思路: + 以计量支付为例: + 从系统功能反推数据流 + 1、拆分新版计量支付功能点 + 2、通过debug回溯功能点与新表对应关系 + 3、人工分析旧表与新表字段关系 + 4、搭建测试环境,模拟从旧表抽数到新表 + 5、通过步骤1、2梳理的功能与表对应关系进行功能性验证。如果功能不正常需修改步骤4产出脚本。 +3. 搭建dataX、dataX-web集群,并编写安装维护手册(缺少集群配置) diff --git a/工作日志/ATD/202304/2023-04-11.md b/工作日志/ATD/202304/2023-04-11.md new file mode 100644 index 0000000..559e9da --- /dev/null +++ b/工作日志/ATD/202304/2023-04-11.md @@ -0,0 +1,17 @@ +计划: +数据迁移 +- [x] 在windows server上安装sqlServer数据库并将计量支付历史数据导入 +- [x] 新Linux服务器搭建worker节点,并完成dataX双节点部署,完成后完善ETL安装维护手册 +- [ ] 梳理计量支付用户、部门相关表结构 + +工作日志: +一、数据迁移 +1. 同步基投库到1.2 sqlserver +2. 对基投库进行逆向建模 +3. 安装dataX执行器并进行测试,目前已搭建2节点ETL小集群。ETL集群安装维护文档编写完毕。 +二、事权 +1. 修改多项目危大工程风险分级管控情况 +2. 修改多项目各项目危大工程风险分级管控情况 +3. 单项目危大工程风险分级管控情况 +4. 单项目月度危大工程风险分级管控情况 +上述均新增 已评审危大工程专项方案数、已评审危大工程专项数占比2个字段 diff --git a/工作日志/ATD/202304/2023-04-12.md b/工作日志/ATD/202304/2023-04-12.md new file mode 100644 index 0000000..b3c9ebc --- /dev/null +++ b/工作日志/ATD/202304/2023-04-12.md @@ -0,0 +1,66 @@ +数据迁移: +- [ ] 梳理RoadInfoMgrYNJT表结构 + +工作日志: +一、事权 +1. 新增环水保多项目及单项目汇总、详情统计接口共4个 +2. 质量安全->风险分级管控->危大工程分级管控情况、各项目危大工程管控情况增加已评审专项、未评审专项统计字段 +3. 清理质量安全数据 +```sql +-- 物理表 +-- 红线问题隐患排查治理情况(过程问题隐患排查) +create table ODS_SAFETY_PROBLEM_RED_DETAIL_bak_20230412 as select * from ODS_SAFETY_PROBLEM_RED_DETAIL; +truncate table ODS_SAFETY_PROBLEM_RED_DETAIL; + +-- ODS_SAFETY_TRAIN_DETIAL 安全教育培训(明细表) +create table ODS_SAFETY_TRAIN_DETIAL_bak_20230412 as select * from ODS_SAFETY_TRAIN_DETIAL; +truncate table ODS_SAFETY_TRAIN_DETIAL; + +-- ODS_SAFETY_DRILL_DETAIL 应急预案与演练 +create table ODS_SAFETY_DRILL_DETAIL_bak_20230412 as select * from ODS_SAFETY_DRILL_DETAIL; +truncate table ODS_SAFETY_DRILL_DETAIL; + + +-- ODS_SAFETY_PROBLEM_DETAIL 非红线问题隐患排查治理情况(过程问题隐患排查) +create table ODS_SAFETY_PROBLEM_DETAIL_bak_20230412 as select * from ODS_SAFETY_PROBLEM_DETAIL; +truncate table ODS_SAFETY_PROBLEM_DETAIL; + + +-- ODS_SAFETY_RISK_LEVEL_DETAIL 安全风险分级管控情况(风险分级管控) +create table ODS_SAFETY_RISK_LEVEL_DETAIL_bak_20230412 as select * from ODS_SAFETY_RISK_LEVEL_DETAIL; +truncate table ODS_SAFETY_RISK_LEVEL_DETAIL; + + +-- ODS_SAFETY_RISK_LARG_DETAIL 危险性较大工程风险管控情况 +create table ODS_SAFETY_RISK_LARG_DETAIL_bak_20230412 as select * from ODS_SAFETY_RISK_LARG_DETAIL; +truncate table ODS_SAFETY_RISK_LARG_DETAIL; + +-- ODS_SAFETY_CONTR_DETAIL 平安工地考核 +create table ODS_SAFETY_CONTR_DETAIL_bak_20230412 as select * from ODS_SAFETY_CONTR_DETAIL; +truncate table ODS_SAFETY_CONTR_DETAIL; + +-- ODS_SAFETY_FEE_COST_DETAIL 安全生产费投入情况(安全生产费用) +create table ODS_SAFETY_FEE_COST_DETAIL_bak_20230412 as select * from ODS_SAFETY_FEE_COST_DETAIL; +truncate table ODS_SAFETY_FEE_COST_DETAIL; + +-- 交工检测 +create table ODS_HANDOVER_INSPECTION_bak_20230412 as select * from ODS_HANDOVER_INSPECTION; +truncate table ODS_HANDOVER_INSPECTION; + +create table ODS_HANDOVER_INSPECTION_DETAIL_bak_20230412 as select * from ODS_HANDOVER_INSPECTION_DETAIL; +truncate table ODS_HANDOVER_INSPECTION_DETAIL; + +-- 质量问题排查 +create table ODS_QUALITY_PROBLEM_RED_DETAIL_bak_20230412 as select * from ODS_QUALITY_PROBLEM_RED_DETAIL; +truncate table ODS_QUALITY_PROBLEM_RED_DETAIL; + +create table ODS_QUALITY_PROBLEM_NO_RED_DETAIL_bak_20230412 as select * from ODS_QUALITY_PROBLEM_NO_RED_DETAIL; +truncate table ODS_QUALITY_PROBLEM_NO_RED_DETAIL; + +-- 中间表 +truncate table HZ_AQ_ZTXX; +truncate table HZ_AQ_PAGDZT; +truncate table HZ_AQ_PAGDZT; +truncate table HZ_AQ_SCF; +truncate table HZ_ZL_ZTQK; +``` \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-13.md b/工作日志/ATD/202304/2023-04-13.md new file mode 100644 index 0000000..a35ad17 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-13.md @@ -0,0 +1,9 @@ +计划: +一、数据迁移 +- [ ] 梳理RoadInfoMgrYNJT表结构 +- [ ] 对照计量支付界面梳理新表 + +工作日志: +事权: +1. 对接段,讨论事权中间表处理方式 +2. 梳理目前统计层接口使用到的汇总表 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-14.md b/工作日志/ATD/202304/2023-04-14.md new file mode 100644 index 0000000..2333eef --- /dev/null +++ b/工作日志/ATD/202304/2023-04-14.md @@ -0,0 +1,9 @@ +计划: +一、事权 +- [x] 完成统计层接口使用到的汇总表梳理 + +工作日志: +一、事权: +1. 新增环水保多项目明细跳转单项目明细查询接口 +2. 完成统计层接口使用到的汇总表梳理 +3. 环水保多项目排序规则修改 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-15.md b/工作日志/ATD/202304/2023-04-15.md new file mode 100644 index 0000000..9a7eb86 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-15.md @@ -0,0 +1,4 @@ +计划: +一、事权 +- [ ] bugfix +- [ ] 梳理事权统计表与ODS表数据流向 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-17.md b/工作日志/ATD/202304/2023-04-17.md new file mode 100644 index 0000000..2979010 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-17.md @@ -0,0 +1,11 @@ +计划: +一、事权 +- [x] 梳理征地拆迁、合同管理、质量安全环水保汇总表与原始表关系 +- [ ] 存储过程执行语句分析功能开发 + +工作日志: +一、事权: +1. 完成项目进度、质量安全环水保、合同管理、征地拆迁、工程变更汇总表与原始表关系梳理 +2. 单项目-->征地拆迁问题明细去重 +3. 单项目-->环水保落实情况接口新增OID +4. 多项目-->质量安全环水保-->风险分级管控-->危大工程分级管控情况、各项目危大工程管控情况新增未评审方案占比数 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-18.md b/工作日志/ATD/202304/2023-04-18.md new file mode 100644 index 0000000..6829e1e --- /dev/null +++ b/工作日志/ATD/202304/2023-04-18.md @@ -0,0 +1,9 @@ +计划: +一、事权: +- [x] 完成总体概况、基建程序、筹融资及资金使用汇总表与原始表关系梳理 + +工作日志: +一、事权 +1. 完成汇总表数据血缘关系梳理 +2. 整理梳理过程中发现的问题 +3. 编写征地拆迁、质量安全汇总表数据清理脚本 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-19.md b/工作日志/ATD/202304/2023-04-19.md new file mode 100644 index 0000000..993a451 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-19.md @@ -0,0 +1,9 @@ +计划: +一、事权 +- [ ] 汇总表问题梳理及改造评审 +- [ ] 梳理昭通高速企业智慧办公系统中HR部分设计及字段不合理情况 + +工作日志: +一、昭通OA +1. 梳理昭通OA-HR管理模块问题点 +2. 梳理HR管理模块-人员管理流程图并进行评审 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-20.md b/工作日志/ATD/202304/2023-04-20.md new file mode 100644 index 0000000..efe23ff --- /dev/null +++ b/工作日志/ATD/202304/2023-04-20.md @@ -0,0 +1,13 @@ +计划: +一、昭通OA +- [x] 根据19号评审结果对HR-人员管理流程进行细化 +- [x] 组织二次评审 + +工作日志 +一、昭通OA +1. HR-人员管理流程细化 +2. 增加人员合同管理模块 +3. 根据评审意见进行修改: + 1. 修改退休及返聘流程 + 2. 增加终止合同流程 + 3. 加入合同状态变化 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-21.md b/工作日志/ATD/202304/2023-04-21.md new file mode 100644 index 0000000..e99f27e --- /dev/null +++ b/工作日志/ATD/202304/2023-04-21.md @@ -0,0 +1,7 @@ +计划: +一、昭通OA +- [ ] 根据客户给出工资计算表及现有OA系统,梳理并设计薪资管理模块 + +工作日志: +一、昭通OA +1. 对照蓝凌OA,HR模块梳理并补充现有HR模块 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-23.md b/工作日志/ATD/202304/2023-04-23.md new file mode 100644 index 0000000..a87c9d8 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-23.md @@ -0,0 +1,9 @@ +计划: +一、事权 + - [ ] 使用pdman 梳理DW表到ODS表字段级别血缘关系 + + +工作日志: +一、事权 +1. 搭建事权ODS-DW表同步框架 +2. 编写周报 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-24.md b/工作日志/ATD/202304/2023-04-24.md new file mode 100644 index 0000000..ea61317 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-24.md @@ -0,0 +1,9 @@ +计划: +一、事权 +- [x] 项目进度-->合理性分析ODS到DW层数据同步 + +工作日志: +一、事权 +1. 项目进度-->控制性工程进度重写DW_RE_PROGRESS_DETAIL表 +二、其他 +1. 茶话会 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-25.md b/工作日志/ATD/202304/2023-04-25.md new file mode 100644 index 0000000..5e08a7e --- /dev/null +++ b/工作日志/ATD/202304/2023-04-25.md @@ -0,0 +1,12 @@ +计划: +一、事权 +- [ ] 开发DW_RE_PROGRESS_DETAIL 接口(按年、按月刷新数据) +- [ ] 部署到测试服务器 +- [ ] 对接前端 +- [ ] 修改控制性工程进度界面查询接口对接DW_RE_PROGRESS_DETAIL表 + +工作日志: +一、事权 +1. 排查DW_RE_PROGRESS_DETAIL表数据不准确问题 +二、昭通OA +1. 梳理车辆管理建表需求,对照蓝凌OA、泛微 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-26.md b/工作日志/ATD/202304/2023-04-26.md new file mode 100644 index 0000000..7304841 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-26.md @@ -0,0 +1,7 @@ +计划: +一、昭通OA +1. 对照需求及第三方OA梳理车辆管理表结构 + +工作日志: +一、昭通OA +1. 新建车辆管理模块11张表并进行评审 \ No newline at end of file diff --git a/工作日志/ATD/202304/2023-04-27.md b/工作日志/ATD/202304/2023-04-27.md new file mode 100644 index 0000000..600e0c7 --- /dev/null +++ b/工作日志/ATD/202304/2023-04-27.md @@ -0,0 +1,7 @@ +计划: +一、昭通OA +- [ ] 完成车辆模块建表,并输出表结构文档提交昭通团队二次评审 +- [ ] 确定代码集定义及需新增的字段 + +二、事权 +1. \ No newline at end of file diff --git a/工作日志/ATD/环境/项目地址.md b/工作日志/ATD/环境/项目地址.md new file mode 100644 index 0000000..1801fdc --- /dev/null +++ b/工作日志/ATD/环境/项目地址.md @@ -0,0 +1,48 @@ +[云南交发省级事权高速公路建设项目综合管理信息平台](http://172.16.3.244/home) ---未上线 +admin/admin@2022 + +FINANCE_ACOUNT_DW --- 到位资金金额 +FINANCE_ACOUNT_DW_RATIO --资金到位率 +FINANCE_TOTAL --累计计划到位金额 +INVEST_ACOUNT_DW --- 投资到位金额 +INVEST_ACOUNT_DW_RATIO ----投资到位率 +INVEST_TOTAL --- 计划投资金额 +MY --- 年月 + + +[软件研发与服务云平台]([软件研发和服务云平台](http://172.16.3.219/atdplatform/)) ---正式环境 +Zourui/12345 + + +[交通工程建设项目管理平台(计量支付)](http://172.16.3.145/) +admin/12345 + +http://220.165.247.94:3227/index.php/apps/files/?dir=/20230403&openfile=34168 +邹瑞 +zhourui +zhourui12345678 + +[dataX-web](http://172.16.3.145:9527/index.html) +admin/123456 +dataX-web使用的mysql 172.16.3.145:3306 root/1qaz@1234 + +[禅道](http://220.165.247.68:29980/zentao) +zourui/zourui#123 + +[昭通高速企业智慧办公系统-测试环境](http://172.16.3.220/home) +admin/Atd@2021 + +[昭通高速企业智慧办公系统](http://172.16.3.221/home) +admin/Atd@2021 + +代码集: http://172.16.3.219/ +zour / dasiwoyebushuo + +SVN:http://172.16.2.2/svn/paas/microservice/server/other/xmgl-sqddt +zourui/zourui + + +泛微 :访问地址:![](file:///C:\Users\89295\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.png)https://enterprise.e-cology.com.cn +登录账号:demoano  |  登录密码:90683 + +蓝凌 :18787010990 diff --git a/开发计划/tiny-datahub/开发计划.md b/开发计划/tiny-datahub/开发计划.md new file mode 100644 index 0000000..3dbd126 --- /dev/null +++ b/开发计划/tiny-datahub/开发计划.md @@ -0,0 +1,17 @@ +## 一、第一阶段 +### 1. 视图、存储过程逆向分析并构建关系图 +已完成 +### 2. 定时构建 +1. 通过apscheduler实现定时任务 + +## 二、第二阶段 +### 1. 数据库版本差异扫描及版本管理 +### 2. 数据比对工具 +### 3. 数据探查 +### 4. 表结构生成(支持不同类型数据库互转) +### 5. FastApi 开发http查询接口 + +## 三、第三阶段 +### 1. 元查询、展示 +### 2. 字段级别血缘关系分析实现 +### 3. 字段级别、表级别血缘关系展示 \ No newline at end of file diff --git a/日常学习/中间件/redis/spring-boot-redis.md b/日常学习/中间件/redis/spring-boot-redis.md new file mode 100644 index 0000000..1d516e3 --- /dev/null +++ b/日常学习/中间件/redis/spring-boot-redis.md @@ -0,0 +1,149 @@ +# 一、POM +```xml + + org.springframework.boot + spring-boot-starter-data-redis + +``` + +# 二、使用注解 + ++ 配置redis + +```java +//开启基于注解的配置 +@EnableCaching +@Configuration +public class RedisConfig { + + /** + * redis数据库自定义key的命名空间 + */ + public static final String REDIS_DATABASE_KEY="tmall_springboot"; + public static final String REDIS_CATEGORY_KEY="category"; + public static final String REDIS_ORDER_ITEM_KEY="orderItem"; + public static final String REDIS_ORDER_KEY="order"; + public static final String REDIS_PRODUCT_KEY="product"; + public static final String REDIS_PROPERTY_KEY="property"; + public static final String REDIS_PROPERTY_VALUE_KEY="propertyValue"; + public static final String REDIS_REVIEW_KEY="review"; + public static final String REDIS_USER_KEY="user"; + public static final String REDIS_PRODUCT_IMAGE_KEY="productImage"; + + + /** + * 自动配置的redisTemplate,存在序列化问题,会导致存入redis数据库中的数据,不容易看清所以需要自己配置 + */ + /** + * 配置自定义redisTemplate + * @return + */ + @Bean + RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory,RedisSerializer redisSerializer) { + + RedisTemplate redisTemplate = new RedisTemplate<>(); + + redisTemplate.setConnectionFactory(redisConnectionFactory); + + // 设置键(key)的序列化采用StringRedisSerializer。 + redisTemplate.setKeySerializer(new StringRedisSerializer()); + // 设置值(value)的序列化采用Jackson2JsonRedisSerializer。 + redisTemplate.setValueSerializer(redisSerializer); + // 设置hashKey的序列化 + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashValueSerializer(redisSerializer); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } + + /** + * 配置json序列化器(我们使用jackson的序列化器) + */ + @Bean + public RedisSerializer redisSerializer(){ + + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jackson2JsonRedisSerializer.setObjectMapper(objectMapper); + + return jackson2JsonRedisSerializer; + } + + /** + * 配置redis缓存管理器,管理注解版的缓存 + */ + @Bean + public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory,RedisSerializer redisSerializer) { + RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory); + //设置Redis缓存有效期为10分钟 + RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig() + .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)) + //ttl + .entryTtl(Duration.ofHours(2)); + return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration); + } + +} + +``` + + ++ @Cacheable +先从redis数据库中 按照当前key查找,有没有。如果redis中有,是不会走当前该方法的,如果没有再调用方法返回结果,如果结果不为null将其缓存到数据库中(一般用于find) +```java +@Cacheable(value = RedisConfig.REDIS_DATABASE_KEY, key = "'user-'+#p0", unless = "#result==null") + @Override + public User getUserByName(String name) { + UserExample example = new UserExample(); + example.createCriteria().andNameEqualTo(name); + List users = userMapper.selectByExample(example); + if(users.size()==0){ + return null; + } + return users.get(0); + } + +``` + +value:key的一部分(前缀),主要是指明数据放在那个key范围 +key:key的主体,#p0:指明取出第一个参数 #p1:指明取出第二个参数。。。依此类推 +unless:结果为true,将当前的数据结果不保存到redis,#result:指明取出数据库中返回的结果 +condition 结果如果为true,将当前数据保存到redis + ++ @CachePut +主要用于向数据库中插入数据,向数据中插入数据的时候,会将返回的int类型,放入redis中缓存,当然是有选择性的(一般用于insert) + +```java +@CachePut(value = RedisConfig.REDIS_DATABASE_KEY,key = "'user-insert-'+#p0.id",unless = "#result==0") + @Override + public int insert(User record) { + return userMapper.insert(record); + } + +``` + +value:key的一部分,命名空间 +key:指定key的名称 +unless:满足条件,则不将返回的结果放入redis +condition: 满足条件,则将返回的结果放入redis + ++ @CacheEvict +满足条件则移除当前key在redis中的数据(一般用于update/delete) +```java +@CacheEvict(value = RedisConfig.REDIS_DATABASE_KEY,key = "'user-'+#p0.id",condition = "#result==1") + @Override + public int updateByPrimaryKey(User record) { + return userMapper.updateByPrimaryKey(record); + } + +``` +value: 同理命名空间 +key: key名称 +condition:满足什么条件从缓存中移除指定的key +AllEntries:true/false 是否移除命名空间下的所有key + +# 三、硬编码 + +使用StringRedisTemplate \ No newline at end of file diff --git a/日常学习/数据同步/DataX-web/在linux上安装.md b/日常学习/数据同步/DataX-web/在linux上安装.md new file mode 100644 index 0000000..feb152a --- /dev/null +++ b/日常学习/数据同步/DataX-web/在linux上安装.md @@ -0,0 +1,6 @@ +# 一、安装 +1. 需要先安装datax + +# 二、测试及使用 + +# 三、节点扩容(集群搭建) \ No newline at end of file diff --git a/日常学习/数据同步/DataX/在Linux上安装.md b/日常学习/数据同步/DataX/在Linux上安装.md new file mode 100644 index 0000000..3b72ab4 --- /dev/null +++ b/日常学习/数据同步/DataX/在Linux上安装.md @@ -0,0 +1,14 @@ +[dataX](https://github.com/alibaba/DataX/blob/master/userGuid.md) + +# 一、下载及安装 +1. 从dataX github页面下载tar包并放在/home下 +2. 验证Linux是否安装python及jdk,python可以为3,jdk为1.8版本 +3. 解压datax tar -zxvf /xxxx/datax.tar.gz + +# 二、运行测试用例 +在datax 目录进入bin,例如/home/zr/DataX/datax/bin,执行 +```shell +python datax.py ../job/job.json +``` +执行完成后输出,表示安装成功 +![[Snipaste_2023-03-28_09-21-51.png]] diff --git a/未命名 1.canvas b/未命名 1.canvas new file mode 100644 index 0000000..2289854 --- /dev/null +++ b/未命名 1.canvas @@ -0,0 +1,4 @@ +{ + "nodes":[], + "edges":[] +} \ No newline at end of file diff --git a/本机环境/WSL/WSL 桥接网络.md b/本机环境/WSL/WSL 桥接网络.md new file mode 100644 index 0000000..6caa81f --- /dev/null +++ b/本机环境/WSL/WSL 桥接网络.md @@ -0,0 +1,51 @@ +前提:开启hyper-V +1. 获取所有网卡信息 +```shell +Get-NetAdapter +``` +![[Snipaste_2023-04-01_17-47-48.png]] +2. 启动WSL,打开powershell(管理员模式),选择网卡桥接 +这里桥接到WLAN +```shell +Set-VMSwitch WSL -NetAdapterName WLAN +# 中文 +Set-VMSwitch WSL -NetAdapterName "以太网 3" +``` + +3. 查看宿主机网关 +```shell +ipconfig +``` +找到IP段和网关 +![[Snipaste_2023-04-01_17-47-48 1.png]] +4. 修改WSL IP地址及网关 +```shell +# 绑定到eth0网卡 +sudo ip addr del $(ip addr show eth0 | grep 'inet\b' | awk '{print $2}' | head -n 1) dev eth0 +# 设置IP段 +sudo ip addr add 192.168.0.150/24 broadcast 192.168.0.255 dev eth0 +# 设置网关 +sudo ip route add 0.0.0.0/0 via 192.168.0.1 dev eth0 +``` +5. 更新名称解析服务器地址 +```shell +vim /etc/resolv.conf +``` +修改其中内容为 `nameserver 网关地址` + + +## 快速设置 +```shell +# powershell 管理员,注意修改网卡名称 +Set-VMSwitch WSL -NetAdapterName WLAN + +# 在wsl中执行 +sh /home/zr/setnet.sh +``` + + +## 取消桥接 +powershell管理员执行,即可恢复 +```shell +Set-VMSwitch WSL -SwitchType Internal +``` \ No newline at end of file diff --git a/本机环境/开发环境.md b/本机环境/开发环境.md index 6a9cad7..bc96462 100644 --- a/本机环境/开发环境.md +++ b/本机环境/开发环境.md @@ -1,4 +1,12 @@ + PG12 localhost:5432 postgres:root@123 + redis -localhost:6379 redispw \ No newline at end of file +localhost:6379 redispw ++ oracle +localhost:1521 zr:root@123 ++ neo4j +docker 安装: + 1.docker pull neo4j + 2. docker run -d --name container_name -p 7474:7474 -p 7687:7687 --env NEO4J_AUTH=neo4j/root@12345 neo4j +http://localhost:7474/ neo4j/clone-formula-shelf-hair-neptune-3446 +修改密码::server change-password \ No newline at end of file