大数据:DataBand数据帮框架简介及说明

Posted Freedom3568

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据:DataBand数据帮框架简介及说明相关的知识,希望对你有一定的参考价值。

文章目录


简介

DataBand(数据帮),快速采集清洗,数据分析,预测分析,人工智能赋能服务,是一站式的大数据平台。我们致力于通过提供智能应用程序、数据分析和咨询服务来提供最优解决方案

一、技术栈

1. 存储

● 分布式存储:HDFS、HBase
● 行式关系存储:mysql、Oracle
● 列式存储:ClickHouse
● 列族存储:HBase、Cassandra
● 文档库:ElasticSearch、MongoDB

2. 计算

● 计算引擎:Presto、Hive
● 流处理:Storm、Flink

3. 集成

● Flume
● Filebeat
● Logstash

4. 前端技术栈

● Vue
● Element UI

5. 后端技术栈

● Spring Boot
● Spring Cloud
● MyBatis

二、工程说明

1. 大数据模拟数据源生成数据


● databand-mock-api:接口模拟工具,模拟业务系统api;
● databand-mock-log:日志模拟工具,手动产生大量的日志数据供调试测试,比如Syslog、log、CSV生成、Json、MySQL注入、RPC写、NetCat等;
● databand-mock-mq:日志模拟工具,通过MQ写产生大量的日志数据供调试测试,比如RabbitMQ写、Kafka写等;
● databand-mock-hadoop:大数据日志模拟工具,写hdfs;

2. 数据采集清洗

● databand-etl-mysql-ods:采集清洗mysql数据比如MySQL到ods临时中间库(包括Redis、Kafka等);
● databand-etl-mysql-olap:采集清洗mysql数据到OLAP数据仓库;
● databand-etl-mysql-hadoop:采集清洗mysql数据到Hadoop分布式存储;
● databand-etl-logfile-ods:采集清洗半结构化日志文件,比如json、xml、log、csv文件数据到ods临时中间库;
● databand-etl-logfile-olap:采集清洗半结构化日志文件数据到OLAP数据仓库;
● databand-etl-logfile-hadoop:采集清洗日志文件数据到Hadoop分布式存储;
● databand-etl-mq-ods:通过MQ消费采集数据,入ods库;
● databand-etl-mq-olap:通过MQ消费采集数据,入OLAP库;
● databand-etl-mq-hadoop:通过MQ消费采集数据,入Hadoop;

3. 数据分析作业

● databand-job:定时任务工具

4. 数据分析门户

● databand-ui:前端UI工程,数据展现;
● databand-admin:后端权限、关系、站点配置管理;
● databand-api:数据api服务;
● databand-tools:BI工具集;
● databand-ml:数据科学工程;

三、具体工程介绍

1. databand-mock-api (模拟数据源API工程) API模拟工具

● App.java:简单的mock控制台程序,用于实现实时动态mock,而不是传统使用静态mock,每次都要手动配置json,还要重新启动服务。
● 工程源码
● 一个服务器端mock的详细介绍,可以入门mock知识,https://www.cnblogs.com/starcrm/p/13745581.html

mock服务的使用目的在于前端测试、APP开发、前端测试人员在服务还没完备时模拟接口。

服务端mock过程:
a. 通过Netty提供真正mock-http服务端服务,而不是mockjs的浏览器客户端Js-URL拦截;
b. 拦截request请求,判断请求的分支(通过程序或配置文件)
c. 返回response,由mock-http服务提供响应数据
d. 或者forward,跳到其他服务url

使用方法:
还没有操作录入界面,在数据库中直接注入数据即可(数据提交后,实例大约30秒之内注册到mock服务),数据行对应的是Mock实例。
字段说明:
● id: 自增
● describe: 说明
● method: 请求类型,GET、POST、DELETE
● path: 路径,比如/mypath/id/type
● path_parameters: 路径参数,因为有可能存在json等格式字符,不便于使用=,等分隔字符(因为要组装参数数组),所以参数之间使用特殊字符分隔($ ) ,比如 i d = 1 , t y p e = a b c ,就使用了 i d < = > 1 ),比如id=1,type=abc,就使用了id<=>1 ),比如id=1,type=abc,就使用了id<=>1$type<=>abc的表达式。也可以使用正则:id<=>:[A-Z0-9\\-]+,含义是任意字符。具体可参考数据库里的例子
● query_string_parameters: 当GET类型时的地址栏query_string参数,比如pid:1,type:abc
● req_cookie: cookie集合,map类型,不需要双括号,如Session:97d43b1e-fe03-4855-926a-f448eddac32f,…
● req_headers: head集合,map类型, Content-Type:text/html;charset=utf-8,other:othervalue
● req_jsonbody: 请求body,支持json和string
● resp_statuscode: 默认200
● resp_cookie: 类似req_cookie,map类型
● resp_headers: 类似req_headers,map类型
● resp_body: 响应body,支持json和string,如 “id” : 1, “name” : “姓名”, “price” : “123”, “price2” : “121”, “enabled” : “true”, “tags” : [ “tag1”, “tag2数组项” ]
配置完成后提交数据,进入实例对应的路径测试:如: http://localhost:7821/mypath/1/eee

使用过程:
● 1. 运行sql脚本,在files目录中的mockinstances.sql
● 2. 修改数据库配置项CONNSTR、DBUSER、DBPASSWD,运行App里的main方法,控制台会输出api路径使用提示,ANYCHARS的意思是任意字符数字组合,在程序中使用正则表达式匹配;
● 3. 编译、maven打包(mvn:package),进入target\\目录 ,运行java -jar xxx.jar
● 4. 开发测试人员使用。

Mock服务启动:

各Mock实体属性说明:

模拟GET:

模拟POST:

2. databand-mock-log (模拟数据源生成日志数据工程) 日志模拟工具

目前是简单的控制台小程序,直接运行main即可。
● CsvMock.java:csv文件生成,运行后在"FILE_PATH"定义的文件夹中可找到csv文件:
● LogMock.java:log文件生成,生成路径见配置文件:logback.xml。 win下默认“c:/logs/”,linux 或 mac下路径请自行修改:
● JsonMock.java:json文件生成,在"FILE_PATH"定义的文件夹中可找到json文件:
● XmlMock.java:xml文件生成,在"FILE_PATH"定义的文件夹中可找到json文件:
● RpcMock.java:rpc输出,运行后可以用flume(或filebeat)进行测试,配置文件见:/flumeConf/avro-memory-log.properties:运行脚本:

flume-ng agent --conf conf --conf-file /usr/app/apache-flume-1.8.0-bin/avro-memory-log.properties --name a2 -Dflume.root.logger=INFO,console

● SyslogMock.java:syslog(udp)输出,运行后可以用flume(或filebeat)进行测试,配置文件见:/flumeConf/syslog-log.properties:
● TcpMock.java:Tcp输出,运行后可以用flume进行测试,配置文件见:/flumeConf/syslog-log.properties:
● MySQLMock.java:mysql数据生成,通过list键值对形式对数据表进行写操作。

3. databand-mock-mq (模拟数据源生成日志数据工程) MQ消息模拟生成工具

目前是简单的控制台小程序,直接运行main即可。
● KafkaProducer.java:Kafka消息生成:
● KafkaConsumer.java:Kafka消息消费:
● RabbitMQProducer.java:RabbitMQ消息生成:
● RabbitMQConsumer.java:RabbitMQ消息消费:

其他

git地址:https://gitee.com/475660/databand

以上是关于大数据:DataBand数据帮框架简介及说明的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop生态系统简介及大数据相关技术

基于Python/Flask框架的双色球数据采集(爬虫)及大数据可视化平台设计与实现

大数据框架原理简介

作业帮基于 DeltaLake 的数据湖建设实践

AiFlow大数据框架应用简介

AiFlow大数据框架应用简介