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 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...
    
  • 是否需要在FAQ中加入这个说明

  • 问下各位大佬,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   AssertionError: False != True : dag "master.opSubdag_0" should have been found after processing dag "master"
   -------------------- >> begin captured logging << --------------------
   airflow.models.dagbag.DagBag: INFO: Filling up the DagBag from /tmp/tmpruac5lff
   airflow.models.dagbag.DagBag: ERROR: Failed to import: /tmp/tmphat5prut
   Traceback (most recent call last):
     File "/app/airflow/models/dagbag.py", line 197, in process_file
       mod = importlib.util.module_from_spec(spec)
     File "<frozen importlib._bootstrap>", line 574, in module_from_spec
   AttributeError: 'NoneType' object has no attribute 'loader'
   airflow.models.dagbag.DagBag: INFO: validating master.opSubdag_0
   --------------------- >> end captured logging << ---------------------
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

其他

  • 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
  • 系统热力图
    • 想要修改热力图渲染效果,变成全覆盖

新功能规划

目标
  • 数据全链条打通,用户画像,重点推荐 (怎么打通,希望得到的结果是什么)
  • 将线下的工作流搬到线上,有利于电话化记录整个过程 (改变工作流程)
污水检测
  • 不要以年来,要以季度来
  • 增加明细列表
  • 增加同比环比
  • 允许各个区上传自己区域污水监测的结果(要研究 是不是可行 因为市和区的衡量标准不一样)
财富调查
  • 不要因为建了系统导致基层的工作增加
    • 能抽取就抽取(警综的基本信息抽取)
  • 为了避免重复录入,要尝试识别复印件(标准化的比较简单 车牌 银行编号)
  • 直系亲属: 对应的人及对应的总金额
  • 对资产的措施(必填)
    • 卡: 冻结 未冻结
    • 房: 查封 未查封
    • 车: 扣押 未扣押
  • 导出的时候要刚好符合A4纸大小
话单分析
  • 现在想要的(可能居住地)
    • 找到睡觉前和睡觉后的第一通电话,作为可能的隔夜号码,每个人推荐出可能的隔夜基站,作为可能家所在的位置
    • 主号码和对端号码都显示来源的系统(如果有),主号码:NIS嫌疑人 全国禁毒人员 警综查处人员 社会化管控人员 对端号码: 云资源人员 通讯录人员 微信人员 NIS嫌疑人 全国禁毒人员 警综查处人员 社会化管控人员
    • 基站码一样的情况下不一定经纬度一样,有的还需要小区号一样
    • 一个excel里面有多个主号码要将其且分成多个主号码实体
    • 如果主号码已经有对应的值,再导进去应该是累加对应的通话记录
    • 默认的查询时间段是三个月前,但是允许认为调整时间段
  • 未来想要的(可能交易地)
    • 找到对端也是嫌疑人的情况,看看是否存在短时间内连续通话多次的情况存在,可能是交易地

项目相关

主要点

  • 初验时演示的PPT中一定注明要本项目无变更

重要的注意文档

  • 四大计划
  • 测试计划
  • 测试报告