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

● 分布式存储:HDFS、HBase ● 行式关系存储:MySQL、Oracle ● 列式存储:ClickHouse ● 列族存储:HBase、Cassandra ● 文档库:ElasticSearch、MongoDB
● 计算引擎:Presto、Hive ● 流处理:Storm、Flink
● Flume ● Filebeat ● Logstash
● Vue ● Element UI
● Spring Boot ● Spring Cloud ● MyBatis

● databand-mock-api:接口模拟工具,模拟业务系统api; ● databand-mock-log:日志模拟工具,手动产生大量的日志数据供调试测试,比如Syslog、log、CSV生成、Json、MySQL注入、RPC写、NetCat等; ● databand-mock-mq:日志模拟工具,通过MQ写产生大量的日志数据供调试测试,比如RabbitMQ写、Kafka写等; ● databand-mock-hadoop:大数据日志模拟工具,写hdfs;
● 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;
● databand-job:定时任务工具
● databand-ui:前端UI工程,数据展现; ● databand-admin:后端权限、关系、站点配置管理; ● databand-api:数据api服务; ● databand-tools:BI工具集; ● databand-ml:数据科学工程;
● 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等格式字符,不便于使用=,等分隔字符(因为要组装参数数组),所以参数之间使用特殊字符分隔($
${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:

目前是简单的控制台小程序,直接运行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键值对形式对数据表进行写操作。
目前是简单的控制台小程序,直接运行main即可。 ● KafkaProducer.java:Kafka消息生成: ● KafkaConsumer.java:Kafka消息消费: ● RabbitMQProducer.java:RabbitMQ消息生成: ● RabbitMQConsumer.java:RabbitMQ消息消费:
git地址:https://gitee.com/475660/databand