# data-efficiency **Repository Path**: Langyk/data-efficiency ## Basic Information - **Project Name**: data-efficiency - **Description**: 快速实现数据集成、数据采集、数据服务于一体的轻量级数据中台产品 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 2 - **Created**: 2022-12-27 - **Last Updated**: 2025-02-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DATA-EFFICIENCY ## 0 项目介绍及技术选型 快速实现数据集成、数据采集、**数据分析**、**数据服务**、数据存储于一体的轻量级数据中台项目。 * 其功能主要包含多种异构数据源之间通过平台快速进行**数据抽取**、转换、清洗、脱敏、**分析**、**转存**等。 **项目总体架构** ![image-20230219104902812](picture-repository/image-20230219104902812.png) * 数据源模块 >提供各类的外部数据源,并建立连接 * 数据服务 >数据服务对数据源中的数据进行编目(字段的筛选、数据的加敏等),并以服务的形式发布数据超市 * 数据超市 >对编目完成的数据以数据推送、比对订阅、数据API的形式提供出去 * 数据分析 >数据分析目前仅针对于数仓的场景: > >* 离线开发 > >data-efficiency提供类似于Navicat的客户端,用户可以直接使用HiveSQL编码进行离线开发,并将结果数据转存至自己的数仓中 > >* 规则开发 > >提供标签的形式,用户可以直接配置标签达到编写SQL的作用 ### 前端 * Vue 3 * element ui ### 后端 * SpringBoot * gateway * MySQL * Redis * Kafka * ElasticSerach 总体架构 ## 1.data-source(数据源) data-source主要是维护各类数据源的连接信息,维护的数据源包括 * MySQL * ORACLE * Postgresql * Greeplum * ElasticSearch * Kafka * Redis * FTP * Hive * .... ### 1.1 使用数据库连接池 数据库连接池负责**分配**、**管理**和**释放**数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。 **原理**: * 初始化 >数据库连接池在初始化时创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小连接数的制约 * 最小连接数 >连接池一直保持的数据库连接 * 最大连接数 >连接池嫩申请的最大连接数,如果请求的连接吵过次数,后面的连接请求将被加入到等待队列中 数据库连接池的种类很多,在这里我们使用Druid,它支持所有JDBC兼容的数据库,包括Oracle、MySQL、Derby、Postgresql、SQL Server等 ### 1.2 DruidDatasource 使用DruidDatasouce进行数据源的操作,主要用于的数据源包含(MySQL、Oraacle等) 使用步骤如下: * 新建数据源连接池 ```java DruidDatasource dataSource = new DruidDatasource() ``` * 初始化配置 ```java dataSource.setMaxActive(20); dataSource.setInitialSize(5); dataSource.setValidationQueryTimeout(3);// 检测连接的是否有效的时间 dataSource.setTimeBetweenEvictionRunsMillis(60000); ``` * 使用(以获取连接为例) ```java dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setValidationQuery("select 1") ``` ### 1.3 Elasticsearch ## 2.data-service(数据服务) data-service是提供数据服务功能,主要为数据Api、数据推送、比对订阅和数据文件下载等 * 数据Api >以接口的形式对外提供数据 * 数据推送 >配置目的表,以推送的形式提供数据; > >全量推送、增量推送、定时推送 * 比对订阅 >配置目的表,以订阅的形式提供数据 > >全量、增量、定时 * 文件下载 ## 4. data-Analyse(数据分析) ### 4.1 离线开发 编写HiveSQL的形式进行开发 ### 4.2 规则开发 通过配置标签的形式进行开发 ## 5.user-center(用户) ## 数据源地址信息 * MySQL > 腾讯云Ip:3306 root/Root@123 * Kafka > 腾讯云Ip:9092 无认证 * Redis > 腾讯云Ip:6379 simon123,暂不支持用户名 * Elasticsearch > 腾讯云Ip:9200 elastic/EwIlE9gHsZlU_n7iA8ow >