WorkRobot设计方案
标签(空格分隔): Python MongoDB
数据库导出转换模块
简介
数据库导出转换模块主要负责从数据库中导出数据,进行格式转换,最终输出标准格式的数据。
主要功能
- 数据库数据导出
- 数据格式转换
数据库数据导入导出——数据库构架类
数据格式转换——MongoDB数据库格式与Pandas类型转换类
数据库架构类设计方案
简介
数据库模型基础类:MongoDB、MonDatabase和MonColletion,主要用于构建MongoDB的三级体系:MongoDB、Database和Collection。这些类是数据库体系的基础,基本的操作都在collection层面,这意味着MonCollection包括各种方法,例如插入、查询等。
MongoDB数据库collection具体类,对于每个collection定义一个具体类,命名以MonCollection开头。
设计模式、架构及算法
组合和继承的方式
- MonDatabse类包含MongoDB类
- MonCollection类包含MonDatabase类
- collection具体类继承自MonCollection雷
主要类和方法
数据库类: MongoDB
基于模块:pymongo
功能实现:连接MongoDB数据库
方法实现:
- 连接数据库
- 关闭数据库连接
数据库Database类:MonDatabase
基于模块:pymongo
功能实现:连接MongoDB数据库中的database
方法实现:
- 连接数据库
- 查询集合
- 创建集合
- 删除集合
- 退出数据库
数据库Collection基类:MonColletion
基于模块:pymongo
功能实现:连接MongoDB数据库中的collection
方法实现:
- 连接数据集合
- 查询
- 插入
- 建立索引
MongoDB数据库格式与Pandas类型转换类
简介
设计模式、架构及算法
架构
MongoDBFormatConverter是MongoDB格式转换主类,负责转换MongoDB数据格式到其他格式。
MongoDBToPandasFormat负责把MongoDB数据格式转换为Pandas相应的数据格式。PandasDataStructureTransformer是策略算法类,负责对Pandas内置的数据结构进行相互转换。
算法
基本说明:MongoDB数据储存格式是dict,即key-value对应。而pandas的数据结构主要有三类:Series,DataFrame和Panel。
MongoDB数据格式 —> Pandas数据格式
- 转换MongoDBcursor为key-value(原子格式,即数字或字符串)格式的字典列表,即pure dict list
- 转换pure dict list为pandas的DataFrame格式
- 通过pandas的pivot_table(),转换为相应的Series,DataFrame和Panel数据格式
主要类和方法
- MongoDBFormatConverter --- MongoDB数据格式转换基类
- MongoDBToPandasFormat --- MongoDB数据格式转换为Pandas支持的格式
- PandasDataStructureTransformer --- Pandas支持的数据格式相互转换,无须实例化
数据分析模块
简介
数据分析模块主要负责对数据进行统计分析和统计建模。核心模块是DataSet类,提供对数据的封装,工作流的设计,连接各种方法的类及报告类。
主要功能
- 工作流
- 数据探索性分析
- 数据可视化
- 数据挖掘和机器学习
- 数据建模
数据探索性分析 —— 数据探索类
数据可视化 —— 数据可视化类
数据挖掘和机器学习 —— 机器学习类
数据建模 —— 数据模型类
数据集
简介
对数据集进行封装,工作流模式的设计
设计模式、架构及算法
主要类和方法
- Dataset --- 数据集类
探索性数据分析
简介
对数据集进行基本的操作
设计模式、架构及算法
主要类和方法
机器学习
简介
对数据集进行基本的操作
设计模式、架构及算法
主要类和方法
文档编写
Python Help文档
Python帮助文档生成用sphinx。
Install Sphinx
$ pip install Sphinx
Setting up the documentation sources
$ sphinx-quickstart
这里一系列填写配置,务必设置文档输出目录为E:/github/workrobot/docs。Function auto manual
sphinx-apidoc [options] -o <outputdir> <sourcedir> [pathnames ...]
详细文档见这里。
例如
sphinx-apidoc -F -o E:/github/workrobot/docs E:/github/workrobot/workrobot
这里记得设置python函数库的目录。在outputdir中找到conf.py,插入下列语句sys.path.insert(0, os.path.abspath('E:/github/workrobot/workrobot'))
生成帮助文档
在E:/github/workrobot/docs下运行如下命令
$ make html
程序注释格式
程序头标准格式
"""
=========================================
MongoDB数据库类
=========================================
:Author: glen
:Date: 2016.7.21
:Tags: mongodb database
:abstract: 连接MongoDB数据库,并进行基本操作。
**类**
==================
MongoDB
连接MongoDB数据库
MonDatabase
连接MongoDB数据库中的database
**使用方法**
==================
连接数据库
创建MongoDB实例就可以建立数据库连接。
**示范代码**
==================
::
>>> mongo = MongoDB(conn_str='mongodb://plutoese:z1Yh29@139.196.189.191:3717/')
>>> mdb = MonDatabase(mongodb=mongo, database_name='region')
>>> print(mongo.client.database_names())
>>> print(mdb.collection_names)
"""