Mongodb副本集与分片

因为之前没用过mongo,所以最近的开发踩了不少坑,现在熟练了不少。 mongo在许多地方用起来还有许多不如意的地方,比如不知道如何加行锁,虽然mongo本身可以加写锁, 多写的时候保证原子性,但不能向mysql在事务中select ... for update这样加锁, 这样可以在应用代码中添加逻辑并且保证该对应行不被读取或修改。 还好的是Mongodb4.0是支持事务的(看网上貌似3...

阅读全文

airflow自定义mongodb查询页面

之前主数据库都是用的关系型数据库,而现在公司的主流是mongo,也是第一次用,很多也是现学现卖的, 而且各种框架对mongo这种nosql数据库支持也不是很好,比如Django和sqlalchemy就不支持mongo。 由于做用户数据分析,所以需要一个data pipeline平台,而且线上和测试环境的mongo库不能外网连接,所以使用airflow来做ETL,并且可以通过 airflow...

阅读全文

全文检索调研(Mongodb和Whoosh)

公司有一个类似搜索引擎的项目,现在公司是做保险的,这个项目就是用来搜索已经解析格式化的保险的,现在的模式搜索比较简单,就是根据保险名称、 公司等字段筛选,而且也没有先后排名。最近我leader让我调研一下对该功能进行改造,以实现全文检索,并跟搜索引擎那样根据权重实现先后排名。 因为我们数据库存储用的Mongodb,所以首先查看的在mongo层面能否实现该需求,并且我们后端是python实现...

阅读全文

airflow任务上下文与区时

在使用ariflow的跑任务的时候有时候是要知道执行任务的逻辑时间,比如在20号跑15号的任务是,那么逻辑上时间就是15号,而不是20号,因为你可能会处理15号的数据。 这个是很多任务中经常用到的,实现这个比较简单,在PythonOperator传入参数provide_context=True,arilfow会自动传入上下文参数。 ... demo_task = PythonOperat...

阅读全文

Flask项目与clery实践

好久没写博客了,前段时间换工作天天加班,最近不加班了长时间不写就不想写了,今天先凑合一篇,主要记录一下现在公司的项目实践。之前项目一直用Django框架,现在的公司都用flask,于是新项目也用flask搭建的。 项目结构 ├── app │   ├── __init__.py │   ├── api │   │   ├── __init__.py │   │   ├── seriali...

阅读全文

使用Docker运行整套项目组件

对于docker其实没有系统的学习过,之前在蓝汛工作的时候就被安排做docker镜像,当时临时上手,直接进入container然后跟操作linux一样把环境部署好之后像git一样commit到镜像,然后push到我们的私有repository里面,用的时候就直接docker pull,然后run。 其实这样不太好,因为每次修改什么都得不到体现,后来开始写Dockerfile。当时的思想是直...

阅读全文