首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >大数据:DataBand数据帮框架简介及说明

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

作者头像
Freedom123
发布2024-03-29 14:48:46
发布2024-03-29 14:48:46
3360
举报
文章被收录于专栏:DevOpsDevOps

简介

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等格式字符,不便于使用=,等分隔字符(因为要组装参数数组),所以参数之间使用特殊字符分隔($

),比如{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:运行脚本:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 一、技术栈
    • 1. 存储
    • 2. 计算
    • 3. 集成
    • 4. 前端技术栈
    • 5. 后端技术栈
  • 二、工程说明
    • 1. 大数据模拟数据源生成数据
    • 2. 数据采集清洗
    • 3. 数据分析作业
    • 4. 数据分析门户
  • 三、具体工程介绍
    • 1. databand-mock-api (模拟数据源API工程) API模拟工具
    • 2. databand-mock-log (模拟数据源生成日志数据工程) 日志模拟工具
    • 3. databand-mock-mq (模拟数据源生成日志数据工程) MQ消息模拟生成工具
  • 其他
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档