cube.js 学习(十一)cube + gitbase 分析git 代码
这个是一个简单的demo,使用gitbase+cube 分析git 仓库代码
需求
我们平时使用的gitlab,或者gogs 等git 仓库管理工具,有自己的管理强项,但是对于分析上可能就不是那么强大了
这个就需要我们进行git 代码文件级别的分析了,可选的工具很多gitstats 就是一个不错的选择,但是大部分是基于
单仓库管理的,gitbase 则不同,给予我们提供了大批量的分析能力
环境准备
- gitbase 安装
参考官方文档,直接二进制文件就可以了 - cube.js
这个我们可以通过全局安装,很简单npm install -g cubejs-cli
分析几个git 仓库代码
demo 很简单,但是当前使用的cube-cli 在获取元数据上有点问题(<0.9.0),但是我们可以手动编写cube schema解决
- 初始化cube 项目
cubejs create dalongdemo -d mysql
- 启动gitbase 项目
自己准备git 代码,以下demo 是我自己的环境
gitbase server -v --host=192.168.0.104 -d git-demos
- 修改cube 数据库配置
cube 使用dotenv 解决配置管理,只需要修改.env 文件即可,以下为我自己的环境
CUBEJS_DB_HOST=192.168.0.104
CUBEJS_DB_NAME=gitbasee
CUBEJS_DB_USER=root
CUBEJS_DB_TYPE=mysql
CUBEJS_API_SECRET=c9ad3523f1ccf6e6c0c17654b22baa0c942a1106a4e493c025bca1cbf79b61cc2a019d95b77b34d666ebc6172fd09b4b6d9dd0618ee21da6cda3875295cb4f36
- 手工编写cube schema
因为gitbase 没有提供表的schema 元数据表信息,为了集成cube 需要我们自己编写cube schema ,以下是一个简单的count 聚合操作
cube(`repos`, {
sql: `
select * from repositories
`,
measures: {
count: {
type: `count`
},
},
dimensions: {
repository_id: {
sql: `repository_id`,
type: `string`
}
}
});
- 项目结构
├── index.js
├── package.json
└── schema
└── repos.js
启动&&测试
- 启动cube 项目
yarn dev
效果 

- 简单操作
使用ui 界面操作

- 说明
这个只是简单的操作,实际上我们可以做好多强大的功能,充分利用 gitbase 提供的sql 查询接口,可以做好多很灵活的操作
参考资料
https://docs.sourced.tech/gitbase/using-gitbase/schema
https://cube.dev/docs/cube
cube.js 学习(十一)cube + gitbase 分析git 代码的更多相关文章
- cube.js 学习 cube docker-compose 运行
cube.js 官方为我们也提供了backeng 部署的模型,为了测试方便以下是一个使用docker-compose 运行的demo 项目是一个集成gitbase 的demo,实际可以按照自己的项目修 ...
- cube.js 学习(十)cube 来自官方的学习网站
尽管cube.js 包含了一个doc 站点,但是资料不是很全,同时如果查看了cube github 代码中的一些demo的话,发现还是很不错的 但是一些实践没有在文档展现出来,还好我们可以从cube ...
- cube.js 学习(一)简单项目创建
cube.js 是一个很不错的模块化分析框架,基于schema生成sql 同时内置可代码生成,可以快速的搞定 web 分析应用的开发 安装cli 工具 npm install -g cubejs-cl ...
- cube.js 学习 cube 连接mongodb 试用
cube.js 对于mongodb 的连接是通过mongodb bi connector(mysql 协议)处理的,以下为简单的试用 安装mongo bi connector 这个玩意用docker ...
- cube.js 学习(八)backend部署模式
cube.js 从设计上就进行了系统上的分层,backend,frontend,backend 是cube.js 的核心 对于cube.js backend 的部署官方也提供了好多中方法 部署模型 s ...
- cube.js 学习(七)cube.js type 以及format 说明
cube.js 对于measure以及dimension 提供了丰富的数据类型,基本满足我们常见应用的开发,同时对于不同类型也提供了 格式化的操作 measure类型 number 格式 purc ...
- cube.js 学习(五)cube.js joins 说明
cube.js 也支持join, 参考格式 joins: { TargetCubeName: { relationship: `belongsTo` || `hasMany` || `hasOne ...
- cube.js 学习(四)cube.js cube 说明
cube 是cube.js data schema 的核心,里面定义了生成sql 的说明 一个比较全的schema 例子 cube(`Users`, { sql: `select * from u ...
- cube.js 学习(三)cube.js data schema
cube.js的 data schema 类似graphql 的type 定义,但是cube.js 的data schema 更偏向于dsl, 其中抽象了进行数据分析应用开发中的东西,自己提炼了mea ...
随机推荐
- 安装Nexus时报Error occurred shutting down framework: java.lang.NumberFormatException: null
Error occurred shutting down framework: java.lang.NumberFormatException: null 原因 :路径中有中文
- 基于vue的分页插件
相信大家用过很多jquery的分页插件,那这次就用一用基于vue的分页插件. 这里的环境用的是springboot 首先要引入pagehelper的jar文件,版本是1.2.3,配置文件也需要配置一下 ...
- eclipse创建springboot项目的三种方法
本文链接:https://blog.csdn.net/mousede/article/details/81285693 方法一 安装STS插件 安装插件导向窗口完成后,在eclipse右下角将会出现安 ...
- selenium中的元素操作之三大等待(一)
等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完 ...
- 利用nfs-client-provisioner动态提供Kubernetes后端存储卷
原文:https://www.kubernetes.org.cn/3894.html 利用NFS client provisioner动态提供Kubernetes后端存储卷 本文翻译自nfs-clie ...
- js运算符及数据类型转换(二)
1.一元运算符+.-[将其它类型转化为number类型,相当于调用了Number()函数]var num = +('hello') NaN typeof num->numbernum = + ...
- JavaScript之轮播图
(1)html <div class="box" id="box"> <ul class="uls" id="u ...
- 房地产propretie财产
property 1. 财产:所有物(不可数); 地产, 房地产 He has a large property in the county. 他在这个县有一大宗地产. 1.Propretie obs ...
- 使用jquery.datatable.js注意事项
本文链接:https://blog.csdn.net/ylg01/article/details/76463908写在最前面的话,如果不是维护老项目或者在老项目上二次开发尽量不要用这个表格插件 为什么 ...
- 【HICP Gauss】数据库 数据库管理(数据库对象 表空间 索引 序列 分区 视图)-8
什么是数据库对象 数据库对象包括 表 索引 分区 视图 序列 同义词 数据库支持对象存储过程 自定义函数 触发器 表空间 高级包 表 数据库中的数据结构 存储数据以及描述数据间的关系 表由行和列组成 ...