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 ...
随机推荐
- (转)为什么ssh一关闭,程序就不再运行了?
ref :https://www.cnblogs.com/lomper/p/7053694.html 问题描述 当SSH远程连接到服务器上,然后运行一个程序,eg: ./test.sh, 然后把终端开 ...
- python_操作linux上的mysql
在编写初期,遇见一个问题,发现怎么连接不上mysql,一直报错1045: 最后发现,只要下面的,连接写正确,不会出现这个问题, 只要你保证你的user.pwd是正确的, import pymysqld ...
- spring cloud各个版本之间的区别
最近公司在使用spring cloud进行开发,对于spring cloud版本号一直有疑惑. 那个版本在前?那个版本在后? 那个版本是最新的? 一.常见版本号说明 举个瓜:2.0.3 RELEASE ...
- C# vb .net实现相机视图效果滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的相机视图效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...
- 2019 斗鱼java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.斗鱼等公司offer,岗位是Java后端开发,因为发展原因最终选择去了斗鱼,入职一年时间了,之前面试了很多家公 ...
- 原生js ajax与jquery ajax的区别
原生js ajax的调用: ajax({ type : "get", url : "02_ajax_get.txt", data : { "userN ...
- 缓冲区溢出漏洞 ms04011
DSScan使用 扫描目标主机是否存在ms04011漏洞 getos使用 获取操作系统类型 > getos.exe 192.168.1.101 ------------------------- ...
- 应用在App Store上被拒重新提交审核流程指南
1. 打开地址: https://itunesconnect.apple.com 2. 输入APPID和密码后,再输入绑定手机后的验证码. 3. 查看“”我的APP“”,如果显示拒绝,可能需打开Mac ...
- Python使用numpy进行数据转换
一.测试数据 二.代码实现 # -*- coding: utf-8 -*- """ Created on Sun Jul 7 11:35:01 2019 加载数据时对指定 ...
- 根据不同配置.env获取不同的配置文件的配置
env 不同环境 1. 安装扩展 composer require vlucas/phpdotenv 2 . 创建文件 .env .env.test .env.production .env.exam ...