|
@@ -3,28 +3,24 @@ |
|
|
|
|
|
|
|
|
## 简述
|
|
|
## 简述
|
|
|
|
|
|
|
|
|
数据工厂是一套高集成度数据清洗加工工具平台,以及数据存储管理平台。
|
|
|
|
|
|
|
|
|
舆情系统的数据处理部分我们定义为:数据工厂。
|
|
|
|
|
|
|
|
|
数据清洗加工,先对原始数据进行垃圾标记,如果是垃圾数据则对类型进行分类直接存回数据仓库的垃圾数据库中。不是则将原数据数据加工任务队列。
|
|
|
|
|
|
|
|
|
数据工厂,是一套多组件化数据清洗加工及数据存储管理平台,同时能够管理所有的数据库的备份方案。
|
|
|
|
|
|
|
|
|
队列能对数据etl服务和标签工厂的nlp服务发送相应的任务。对原始数据进行相应的加工,将加工完成的数据发完数据仓库进行存储。
|
|
|
|
|
|
|
|
|
支持多数据源类型的数据同步实现和数据仓库其他的数据源互通。对接收数据进行解压,对外提供压缩后的数据。
|
|
|
|
|
|
|
|
|
数据仓库实现数据存储和对外提供数据的服务。
|
|
|
|
|
|
|
|
|
|
|
|
数据仓库的数据库管理能够对不同数据数据库进行crud操作。
|
|
|
|
|
|
|
|
|
|
|
|
能够管理所有的数据库的备份方案。支持多数据源类型的数据同步实现和数据仓库其他的数据源互通。对接收数据进行解压,对外提供压缩后的数据。
|
|
|
|
|
|
|
|
|
主要用途分为三大块:1.数据储存,2.数据标记,3.数据挖掘。
|
|
|
|
|
|
|
|
|
经历了很多版本的迭代升级,期间采用过机器学习、深度学习、tensorflow 和 PaddlePaddle,经历大量的开发测试与项目实战经验。
|
|
|
经历了很多版本的迭代升级,期间采用过机器学习、深度学习、tensorflow 和 PaddlePaddle,经历大量的开发测试与项目实战经验。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 开源技术栈
|
|
|
## 开源技术栈
|
|
|
- 开发框架:SpringBoot
|
|
|
- 开发框架:SpringBoot
|
|
|
- 开发语言:Java JEE
|
|
|
- 开发语言:Java JEE
|
|
|
- 数据暂存:MySQL
|
|
|
- 数据暂存:MySQL
|
|
|
- 数据索引:Redis
|
|
|
- 数据索引:Redis
|
|
|
- 深度学习:PaddlePaddle
|
|
|
- 深度学习:PaddlePaddle
|
|
|
- 自然语言处理:HaNLP &
|
|
|
|
|
|
|
|
|
- 数据流水线:Apache Flink
|
|
|
|
|
|
- 自然语言处理:HaNLP & THUCTC
|
|
|
- 数据处理和储存任务发送:Kafka&Zookeeper
|
|
|
- 数据处理和储存任务发送:Kafka&Zookeeper
|
|
|
- 数据中台:自研 & DataEase
|
|
|
- 数据中台:自研 & DataEase
|
|
|
|
|
|
|
|
@@ -33,11 +29,16 @@ |
|
|
## 主体流程
|
|
|
## 主体流程
|
|
|
1. 选择需要处理的数据源,开启(或者关闭)数据处理开关,获取爬虫工厂抓取初加工的数据。
|
|
|
1. 选择需要处理的数据源,开启(或者关闭)数据处理开关,获取爬虫工厂抓取初加工的数据。
|
|
|
|
|
|
|
|
|
2. 在配置界面上对数据处理流程自定义,并且可以看见处理列表和处理详情,以及当前总体的计算状态和计算负载统计。(整套技术方案可以自研,也可以使用Apache Flink为基础,初步评估flink可以满足我们大部分需求)
|
|
|
|
|
|
|
|
|
2. 在配置界面上对数据处理流程自定义,并且可以看见处理列表和处理详情,以及当前总体的计算状态和计算负载统计。(整套技术方案可以自研,也可以使用为基础,初步评估flink可以满足我们大部分需求)
|
|
|
|
|
|
|
|
|
3. 数据处理环节有6种类型:组合汇聚数据源、ETL 网页解析、自然语言处理、标签工场标记、自定义python java反射代码、对附件的处理。
|
|
|
3. 数据处理环节有6种类型:组合汇聚数据源、ETL 网页解析、自然语言处理、标签工场标记、自定义python java反射代码、对附件的处理。
|
|
|
|
|
|
|
|
|
4. 每种数据源类型可定义输出不同的数据处理结果和存储目标。
|
|
|
4. 每种数据源类型可定义输出不同的数据处理结果和存储目标。
|
|
|
|
|
|
|
|
|
5. 对应每一种数据处理结果有每个不同的数据调用接口,接口都是根据数据字段自动生成。管理员用户可操作关闭数据调用开关。
|
|
|
5. 对应每一种数据处理结果有每个不同的数据调用接口,接口都是根据数据字段自动生成。管理员用户可操作关闭数据调用开关。
|
|
|
|
|
|
|
|
|
6. 用户可以查看每个数据处理结果的数据结果,可以通过筛选、搜索关键词对具体的数据内容查看。
|
|
|
6. 用户可以查看每个数据处理结果的数据结果,可以通过筛选、搜索关键词对具体的数据内容查看。
|
|
|
|
|
|
|
|
|
备注:在项目初期应该用最简洁明了的方式对数据处理加工,等到对自身需求有一定深刻认识的时候,再对具体的数据工场的具体功能设计。进过对工商数据,对资讯数据,对招投标数据的输入、输出、处理、调用的各个环节后,会对数据工场具体需求有一个全面的认识。
|
|
|
备注:在项目初期应该用最简洁明了的方式对数据处理加工,等到对自身需求有一定深刻认识的时候,再对具体的数据工场的具体功能设计。进过对工商数据,对资讯数据,对招投标数据的输入、输出、处理、调用的各个环节后,会对数据工场具体需求有一个全面的认识。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -57,18 +58,51 @@ |
|
|
|
|
|
|
|
|
## 数据总线
|
|
|
## 数据总线
|
|
|
|
|
|
|
|
|
通过SmarterAPI与Elasticsearch对接,将内部整套数据处理流程完成后对外输出。
|
|
|
|
|
|
|
|
|
我们自研了一套数据总线系统API与Elasticsearch对接,将内部整套数据处理流程完成后对外输出。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 数据存储
|
|
|
|
|
|
|
|
|
|
|
|
为了储存海量的数据,同时还能保证系统的性能和运行效率,我们将一条数据储存了多份,用储存空间换取查询时间。
|
|
|
|
|
|
|
|
|
|
|
|
- MySQL
|
|
|
|
|
|
|
|
|
|
|
|
在系统中储存两部分相关的信息内容,系统配置和临时脏数据储存。
|
|
|
|
|
|
|
|
|
|
|
|
- redis
|
|
|
|
|
|
|
|
|
|
|
|
在系统中除了作为系统缓存,还作为站点数据采集的index索引库。
|
|
|
|
|
|
|
|
|
|
|
|
- kafak
|
|
|
|
|
|
|
|
|
|
|
|
由于数据处理的过程比较多,而且数据量很大,因此采用分布式以及异步的方式对海量数据加工处理。
|
|
|
|
|
|
|
|
|
|
|
|
- Elasticsearch
|
|
|
|
|
|
|
|
|
|
|
|
储存加工好的数据,以及打上各种标签的数据,储存在分布式搜索中,这样便于用户对数据的检索。
|
|
|
|
|
|
|
|
|
|
|
|
- MongoDB
|
|
|
|
|
|
|
|
|
|
|
|
带样式的文章正文原始网页储存在MongoDB中。
|
|
|
|
|
|
|
|
|
|
|
|
- Clickhouse
|
|
|
|
|
|
|
|
|
|
|
|
将每篇文章指纹及海明距离储存在clickhouse中,以便于对相似度和文章主题聚类的计算。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 数据去重
|
|
|
## 数据去重
|
|
|
- URL去重
|
|
|
|
|
|
|
|
|
- URL去重
|
|
|
采用了redis集群
|
|
|
采用了redis集群
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 内容去重
|
|
|
|
|
|
|
|
|
- 内容去重
|
|
|
采用Elasticsearch内部的查询将文章标题一样的内容检索过滤掉。
|
|
|
采用Elasticsearch内部的查询将文章标题一样的内容检索过滤掉。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 数据清洗
|
|
|
## 数据清洗
|
|
|
|
|
|
|
|
|
自动提取字段,标题、正文、时间、作者、来源 等。
|
|
|
自动提取字段,标题、正文、时间、作者、来源 等。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -110,33 +144,6 @@ |
|
|
自研算法
|
|
|
自研算法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 数据存储
|
|
|
|
|
|
|
|
|
|
|
|
为了储存海量的数据,同时还能保证系统的性能和运行效率,我们将一条数据储存了多份,用储存空间换取查询时间。
|
|
|
|
|
|
|
|
|
|
|
|
- MySQL
|
|
|
|
|
|
|
|
|
|
|
|
在系统中储存两部分相关的信息内容,系统配置和临时脏数据储存。
|
|
|
|
|
|
|
|
|
|
|
|
- redis
|
|
|
|
|
|
|
|
|
|
|
|
在系统中除了作为系统缓存,还作为站点数据采集的index索引库。
|
|
|
|
|
|
|
|
|
|
|
|
- kafak
|
|
|
|
|
|
|
|
|
|
|
|
由于数据处理的过程比较多,而且数据量很大,因此采用分布式以及异步的方式对海量数据加工处理。
|
|
|
|
|
|
|
|
|
|
|
|
- Elasticsearch
|
|
|
|
|
|
|
|
|
|
|
|
储存加工好的数据,以及打上各种标签的数据,储存在分布式搜索中,这样便于用户对数据的检索。
|
|
|
|
|
|
|
|
|
|
|
|
- MongoDB
|
|
|
|
|
|
|
|
|
|
|
|
带样式的文章正文原始网页储存在MongoDB中。
|
|
|
|
|
|
|
|
|
|
|
|
- Clickhouse
|
|
|
|
|
|
|
|
|
|
|
|
将每篇文章指纹及海明距离储存在clickhouse中,以便于对相似度和文章主题聚类的计算。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 数据运维
|
|
|
## 数据运维
|
|
|