TODO - zhongjiajie/zhongjiajie.github.com GitHub Wiki
todo
personal
自己感觉四大基础书籍,数据结构与算法,计算机组成原理,计算机网络,计算机操作系统 数据科学导论、概率论、机器学习、深度学习、大数据分析及应用、统计推断、凸优化、线形代数、数据结构、算法导论 数据结构、机器学习/统计学习、深度学习、数据分析etc 这些吧
https://deepsense.ai/optimize-spark-with-distribute-by-and-cluster-by/ https://stackoverflow.com/questions/22279368/exporting-data-from-hive-table-to-local-machine-file-system https://www.jianshu.com/p/1a3625a71118
博客
- 写一篇小结 总结近期的开源情况
- 写一篇 Airflow sla timeout 的文章
content
- python-collection: Counter
- git revert
- airflow.md 将创建connection variables pool持续化到DAG中 将代码从ga网中拿出来
- docker-multi-stage
- 某一次面试题
- 浏览器的一个请求从发送到返回都经历了什么,讲的越详细越好
- 浏览器的一个请求从发送到返回都经历了什么
- py:可变对象不可变对象区别、 Python 垃圾回收机制之类的题目
- 两个队列模拟栈
- 记得让手写了快排,然后 Python 相关基础知识,一些 LeetCode 题,tcp 相关知识,epoll 服务模型、tornado 的一些原理 ( 可以看博主之前文章 tornado ioloop 分析 )数据库知识 ( 坦白掌握不多 )末尾问了下二分查找,一面就过了。
- 然后 hash 表又问了冲突解决方案,主要是拉链法和进位法
- 不过也算是答到了点子上,也就算过了。回去后特意看了看,缓存失效的解决方案,感兴趣的同学自行搜索 “缓存重建”。
- 单链表逆置的题目
- 浏览器的一个请求从发送到返回都经历了什么,讲的越详细越好
- 相关库
- pickle
- argparse
- from collections import Counter
- @property
- from future import print_function
- from string import Template
- @property @abstractmethod
- top sort by cpu
- python一些值得研究的模块:
- python-pexpect: Pexpect is a Pure Python Expect-like module
- python-paramiko: Python SSH module
- python queue 与 multiprocessing
- python高阶函数-map-reduce-filter-lamda
- python-json
- python-fnmatch
- sql in vs exists
- mac怎么使用键盘控制 don't save
- python-mypy
- vscode插件
- kerberos
- spark中的执行计划
- 找大数据工作的相关准备
- Hadoop
- Hive
- Spark
- Yarn
format
- Es-test remove
- DBS/Oracle很多错误提醒
- dbs/mysql: [1][7][9][11]的链接
- Oracle.md
- 修改wiki格式
- java
- 将python-功能实现切出来,FAQ和功能实现合并
- Oracle修改一下
开源相关
Datax
- datax兼容Python3和Python2
- Es
- datax Es 支持自定义日期类型
- HDFS
- 支持 parquet 文件读写
- 支持文件 overwrite 方式写入
- 不存在就创建分区
- 日志
- 日志可配置,可以调节减少日志文件,只输出错误的日志文件情况
Airflow
-
airflow create_user -r Viewer -u viewer -p viewer -e [email protected] -l viewer -f viewer
_mysql.connection.query(self, query) sqlalchemy.exc.ProgrammingError: (MySQLdb._exceptions.ProgrammingError) (1146, "Table 'airflow.ab_permission_view_role' doesn't exist") [SQL: 'SELECT ab_permission_view_role.id AS ab_permission_view_role_id, ab_permission_view_role.permission_view_id AS ab_permission_view_role_permission_view_id, ab_permission_view_role.role_id AS ab_permission_view_role_role_id \nFROM ab_permission_view_role INNER JOIN ab_permission_view ON ab_permission_view.id = ab_permission_view_role.permission_view_id INNER JOIN ab_view_menu ON ab_view_menu.id = ab_permission_view.view_menu_id \nWHERE ab_permission_view_role.role_id = %s AND ab_permission_view.view_menu_id != %s'] [parameters: (4, 51)] (Background on this error at: http://sqlalche.me/e/f405)
fix:
airflow.cfg
配置rbac=true
-
scheduler keep warning
[2019-05-07 08:53:19,412] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting... [2019-05-07 08:53:30,423] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting... [2019-05-07 08:53:41,435] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting... [2019-05-07 08:53:52,447] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting... [2019-05-07 08:54:03,457] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting... [2019-05-07 08:54:14,472] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...
-
问下各位大佬,subdagoperator 里面所有的子任务都跑同一个worker上,这个是什么原理
-
DAG触发DAG:
- sensor有个比较大的问题就是你无法确认上游什么时候跑完
- 我的做法是上游成功跑完主动去触发下游,而不是下游通过条件被动去判断上游是否成功完成
- 主要就是要创建一个存储DAG关系的表
- 然后能够通过API或者命令行去触发DAG
- 最后就是在models表加上判断上游逻辑以及触发DAG逻辑
- 对,最好是有两张表,一张表存储DAG属性及关系,一张表存储DAG下的任务属性及关系,这两张表对后期二开很有帮助
-
在使用 airflow 过程中也发现了一些缺点,主要集中在 web UI 上,在这先列出一些:
- 官方文档上说 dag run 对象表示一个 dag 的执行,在 web UI 上直接创建这个并没有什么用, 无论选成哪种状态,似乎 scheduler 并没有轮询到这个
- webserver 启动时无法指定 subdir,这导致它的 dags 显示非常混乱,有时候可以显示不在 airflow_home下的 dag, 有时候又消失了
- web UI 在子图中,点查看 Code 会抛异常
- web UI 在 dag run 下,无法修改状态,会报 CSRF token missing
- 无法在 web UI 下新启之前没跑过的任务(可以重跑之前完成的任务),只能通过打开任务让它自己去跑
- Mark success 链接对于子任务不起作用,会报 404 lots of circles 的错误
- Task Instances 无法对单列进行排序,总是先按状态排序,再排 dag_id等等
-
加入FAQ?: http://morefreeze.github.io/2017/10/airflow-priority_weight.html
-
r-base
https://rpy2.readthedocs.io/en/version_2.8.x/overview.html#installation https://cran.r-project.org/ https://github.com/rocker-org/rocker/blob/a7ecee9111f3b5dde35555d338a0e30401f5c095/r-base/Dockerfile Complete output from command python setup.py egg_info: Error: Tried to guess R's HOME but no command 'R' in the PATH.
-
元数据库数据数据没更新: 给一个旧的dag做了更新,旧dag的任务数据和调度数据有问题,虽然更新了dag,但是元数据数据没更新就会导致新的dag初始化失败.解决方法: 去元数据库删除dag_run和dag对应dag_id的数据
replace imp to importlib
[31m [31m[1m[31mAssertionError[0m[0m[31m: [0m[31mFalse != True : dag "master.opSubdag_0" should have been found after processing dag "master"[0m
[31m -------------------- >> begin captured logging << --------------------[0m
[31m airflow.models.dagbag.DagBag: INFO: Filling up the DagBag from /tmp/tmpruac5lff[0m
[31m airflow.models.dagbag.DagBag: ERROR: Failed to import: /tmp/tmphat5prut[0m
[31m Traceback (most recent call last):[0m
[31m File "/app/airflow/models/dagbag.py", line 197, in process_file[0m
[31m mod = importlib.util.module_from_spec(spec)[0m
[31m File "<frozen importlib._bootstrap>", line 574, in module_from_spec[0m
[31m AttributeError: 'NoneType' object has no attribute 'loader'[0m
[31m airflow.models.dagbag.DagBag: INFO: validating master.opSubdag_0[0m
[31m --------------------- >> end captured logging << ---------------------[0m
d3居中,DAG点进去并不是居中的
@深圳-老夫华发 这个问题我也有发现了, 但是现在还没有时间搞他, 如果你有什么进展的话可以通知下我么? 居中么? 我刚刚找了下d3.js 应该也是可以实现的 就是我获取到的高度都是auto d3.select("svg g#dig").transition().duration(10000).attr("transform","translate("+x+","+(y)/2+")"); 中间的.duration(10000)可以不加 那个只是为了看出变换效果
导入导出connection
https://github.com/puckel/docker-airflow/issues/323
dbapi hook mysql 使用多个sql的时候会报错
_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't tun this command now")
应该是两个sql是有关联的,下一个sql的表由上一个sql生成,这样的话两个
怎么渲染模板的
HUE
导出记录的数量不对(HUE版本3.12.0)
free book
中文版url有误
work
业务点记录
警综
- 刑拘和逮捕之间可能间隔一两个月
- 如果一个流程比较顺利: 110警情->警综授案->立案(或者不立案)->破案->全国禁毒
平台交接
- spark1 spark2 的区别
- spark 和 hive 的关系
- Ambari 怎么安装新的组件
- spark total memory怎么计算? driver + executor?
- spark on yarn configure
- spark.driver.memory 可以删除? spark.yarn.am.memory
- spark.yarn.jar
- STS向yarn申请资源的时候平衡在多台机器上
- spark thrift server检测失败后自动重启
- 文件类型设置了
parquet
,压缩格式设置了snappy
应该是 snappy.parquet 结尾的,为什么有部分不是以这个结尾的 - spark sql写法
- 链接hive , jdbc连接去 写语句
- 就是大佬之前说过的 enablehivesupport, 使用sparksession去 写sql
平台相关
- Hdfs问题要看看怎么考虑, 要不要增加副本数量
- 挂载硬盘 每台机器4个T
- yarn内容一直跑不满
- 不要申请了executor但是不怎么运行程序
- HDFS中存在不必要文件
- hive相关配置设置在 spark-hive-site-override
- hive.exec.dynamic.partition.mode
- hive.exec.max.dynamic.partitions
- hive.exec.max.dynamic.partitions.pernode
- hive相关配置设置在 spark-hive-site-override
其他
- ftp乱码
功能分类
数据
- 人员轨迹经纬度是空时使用 null
- 维护目前已有的数据
- 让unitttest可以跑正确,不会报错
- 让Es的数据可以更新
- 摆脱部分数据要放在Mysql的情况
- 然后再增加新的数据源
- 通话的数据有问题,字段值对错了
- 手机全采率一直失败
- 使用NIS新的接口来实现通话分析
- NIS通话相关的数据使用新的 自己计算的结果
- NCIP全国禁毒人员信息 为什么和NIS中的全国吸涉毒人员信息总量不一样的
- 近期查处 广州到全国 看看有没有问题
- 110警情数据判断是否全部派出所都在对应的行政区
- 检查下警综的主键是否有重复的 dz_sjz_case dz_sjz_document
- 两打两控 和全市案件是有关系 要和茜姐确定每个月哪一号去抽数据 逮捕 刑拘 以茜姐的为准 查获 强戒 茜姐和伟哥不一样
全局
- 色块的色系统一,且按照一定情况分成多个色块,图长得颜色差不多
- 污水监测是否要做
- 增加监测模块的描述规则,找地方放对应的统计规则 不确定有多少,最好给一个(?)给他点
- 防止异常 每天查看 定期检查异常
- 监测 发现异常 慢慢找到异常 锁定异常原因(位置 人)
- 导出excel按钮要统一,目前毒情监测和分析模块等和导出不统一
首页
- 动态首页(初验之前)
- (自己想的)排名头几名是gif会旋转
- (自己想的)饼图在别的刷新的时候也刷新一下
毒情监测
- 雷达图
- 到了某个指标只看这个指标的值
- 国家毒情监测
- 新发现吸毒人员变化数量(如果有身份证号码的应该+身份证,会比人员编号好)
- 广州涉毒违法人员比例(有部分数据户籍详址是广州某区 但是户籍地是空)
- 毒品泛滥 人员编号 改身份证
- 街镇一级毒情
- 街镇一级数据改成全国禁毒和案事件分析全国禁毒数量不一样(嘉杰)
- 定期从洪科那边导入各个派出所管控的吸毒人员数量(嘉杰)
- 市一级 街镇级 能从ES来的数据要从ES来
- 涉毒效能评估 -> 110涉毒警情 -> 判断警情是否有效 -> 之后要将该警情从统计中去除
轨迹分析
- 三大队
- 三大队 管控人员状态 管控历史状态 看看能不能 我们直接从我们的数据库中得到
- 增加权限
- 人员轨迹
- 白云区觉得三元里的数据不应该这么多
- 人员感知
- 贵州 遵义 为什么这么少人
- 网吧 出住屋 火车站 飞机 客运站(??)这个飞机客运站是用来干什么的
- 有部分数据不能对应区县
- 通话轨迹
- 小时的选择是怎么定义的(沃裕), 0和24是怎么区分
- 基站的总数要以基站码为基础,不应该以基站码和小区号为基础(嘉杰)
- 近期查处
- 去掉NIS选项
- 吸毒人员(2019年数据少了很多)
- 吸毒1000多 涉毒3000多(?????)
- 近期查处是每查处一次算一次 和是否发生轨迹无关(嘉杰待确定)
- 近期查处感知数据俊哥觉得都不太对(嘉杰)
- 要素管控
- 肇事肇祸
- 导出和明细不符
- 管控吸毒人员统计数据(嘉杰))
- 肇事肇祸
- 管控吸毒人员统计
- 要增加说明,说明这部分数据及都应的统计逻辑
- 需要确认的数据
- 近期人员查处需要确认数据
- 案事件分析需要确认数据
重点推荐
- 全局
- (自己想的)上了地图打点之后可以让他叠加热力图图层
- 涉毒重点位置预警
- 数据不太对,和地区推荐不太一样(按照道理应该是一样的)
- (可能是下一个项目的机会)
- 将画的图形保存到数据库,下次直接调用保存的图
- 点一个点,输入一个半径找附近的轨迹(或者在画圆的时候给出具体的半径长度)
- 画的图形
- 圆形(实验性 初验之后尝试(现在先不做) 或者先用多边形的样式解决(现在做))
- 右侧栏所选值改变之后要重新请求数据
- 人员/地点上PGIS地图后,基站的数据没有显示对应的基站名称
- 探索
- 近期高发案件类型 作案时间 地点 推荐出来然后专门去打击
智能化工具
- 全文检索
- 点击enter返回了首页
- 不能模糊匹配
- 新目标
- 显示全息档案
- 显示姓名 身份证 手机 微信 QQ 对应的线索 情报 哪个系统来的 户籍地址 常用地址 相关的案件 相关的轨迹
- 要素管控
- 管控吸毒人员
- 协调管理处 -> 管控吸毒人员(尽快恢复) -> 数据不能更新
- 管控吸毒人员
- 话单分析
- 对端分析:
- 多少次 号码 身份证?(昵称)
- NIS人机对应关系 蛛网人机对应关系
- (钟嘉杰)通过蛛网和NIS(可能的对端)分析出对端,然后增加一个对端分析,显示姓名或者昵称(实时找,因为实时录入),这两个数据源是确定的,别的凡是有电话的都拿出来,增加一个电话来源的分析
- 对端分析:
- 数据导入
- 人口相关问题,按照公布的数据为准,每月手工录入一次
系统管理
- 数据匹配
- 和PGIS网吧酒店进行匹配
- mysql
- 用户权限切换
- 更换一个更加保密的密码
- 重命名
- 权重配置管理 -> 权重配置
- 角色管理
- (最后)角色管理中角色限制管理员和普通用户: 只有管理员才能修改 录入 删除数据,普通用户只能查看
- 角色管理
- 权限控制要修改,不能因为取消了某一模块的 修改/导出 功能导致用户整个模块不可见(方霞)
- 效能评估模块和导出功能不在里面(方霞)
- 增加维度管理
- 基站经纬度对应关系
- 网吧 酒店经纬度关系
- 行政区划关系
外部系统
- PGIS
- 边界图: 先自己生成一个矢量图,然后调用dynamiclayer的服务
- 放大到一点级别后显示派出所名称
- 打点是分批打点,多次遍历
- 图形的调研:
- 色块图: ClassBreaksRenderer
- 密点图: DotDensityRenderer
- 边界图: 先自己生成一个矢量图,然后调用dynamiclayer的服务
- 系统热力图
- 想要修改热力图渲染效果,变成全覆盖
新功能规划
目标
- 数据全链条打通,用户画像,重点推荐 (怎么打通,希望得到的结果是什么)
- 将线下的工作流搬到线上,有利于电话化记录整个过程 (改变工作流程)
污水检测
- 不要以年来,要以季度来
- 增加明细列表
- 增加同比环比
- 允许各个区上传自己区域污水监测的结果(要研究 是不是可行 因为市和区的衡量标准不一样)
财富调查
- 不要因为建了系统导致基层的工作增加
- 能抽取就抽取(警综的基本信息抽取)
- 为了避免重复录入,要尝试识别复印件(标准化的比较简单 车牌 银行编号)
- 直系亲属: 对应的人及对应的总金额
- 对资产的措施(必填)
- 卡: 冻结 未冻结
- 房: 查封 未查封
- 车: 扣押 未扣押
- 导出的时候要刚好符合A4纸大小
话单分析
- 现在想要的(可能居住地)
- 找到睡觉前和睡觉后的第一通电话,作为可能的隔夜号码,每个人推荐出可能的隔夜基站,作为可能家所在的位置
- 主号码和对端号码都显示来源的系统(如果有),主号码:NIS嫌疑人 全国禁毒人员 警综查处人员 社会化管控人员 对端号码: 云资源人员 通讯录人员 微信人员 NIS嫌疑人 全国禁毒人员 警综查处人员 社会化管控人员
- 基站码一样的情况下不一定经纬度一样,有的还需要小区号一样
- 一个excel里面有多个主号码要将其且分成多个主号码实体
- 如果主号码已经有对应的值,再导进去应该是累加对应的通话记录
- 默认的查询时间段是三个月前,但是允许认为调整时间段
- 未来想要的(可能交易地)
- 找到对端也是嫌疑人的情况,看看是否存在短时间内连续通话多次的情况存在,可能是交易地
项目相关
主要点
- 初验时演示的PPT中一定注明要本项目无变更
重要的注意文档
- 四大计划
- 测试计划
- 测试报告