cube.js 对于mongodb 的连接是通过mongodb bi connector(mysql 协议)处理的,以下为简单的试用

安装mongo bi connector

这个玩意用docker 跑起来有点烦,直接试用本地运行,后期制作一个docker 镜像

  • 下载地址
参考地址 https://www.mongodb.com/download-center/bi-connector/releases
  • 简单配置
默认安装包已经内置了一个配置文件,我们只需要简单修改下就可以使用了,注意schema 的定义,为了简单,可以直接注释掉关于
schema 的部分,这样会自动生成(前提条件是已经有数据库以及集合了),实际使用还是建议自己定义好schema 文件,减少影响

cube 项目准备

使用docker-compose 运行,包含了mongo、cube、redis

  • docker-compose 文件
version: "3"
services:
redis_db:
image: redis
ports:
- "6379:6379"
cube:
build: ./cube
env_file: .env
ports:
- "4000:4000"
volumes:
- ./cube/schema:/usr/src/app/schema
command: node index.js
mongodb:
image: mongo
ports:
- "27017:27017"
  • cube .env 配置
REDIS_URL=redis://redis_db:6379/0
CUBEJS_DB_HOST=10.6.218.3 # 注意修改为自己的
CUBEJS_DB_NAME=dalongdemo
CUBEJS_DB_TYPE=mongobi
CUBEJS_DB_PORT=3307
CUBEJS_API_SECRET=f175c412a9136d6bf6cb84bc59c027f39cc93ae35887774ac3fe091bb0717a8d53409a967a1d2014988ef344e75214d48e0cd65c8b6c9403f8d0850a5545afdd

启动&&测试

  • 先启动mongo
因为直接使用docker 启动mongo 服务,所以需要先启动mongodb
docker-compose up mongo -d
  • mongo bi

    直接使用下载的二进制文件并做了一些修改(主要是端口、schema、以及mongodb 的连接)

bin/mongosqld --config example-mongosqld-config.yml
  • 启动cube 服务
docker-compose up -d
  • 效果

  • 查询

说明

cube 提供的基于mongo bi connector 进行数据分析的方法还是稍微不是很方便,主要是schema 的变动(mongodb的schemaless),但是对于
我们进行数据分析还是不错的,实际上cube 主要还是基于bi connector mysql 兼容协议的处理,实际上还是sql 的处理

参考资料

https://cube.dev/blog/building-mongodb-dashboard-using-node.js
https://www.mongodb.com/download-center/bi-connector/releases
https://cube.dev/docs/connecting-to-the-database

 
 
 
 

cube.js 学习 cube 连接mongodb 试用的更多相关文章

  1. cube.js 学习 cube docker-compose 运行

    cube.js 官方为我们也提供了backeng 部署的模型,为了测试方便以下是一个使用docker-compose 运行的demo 项目是一个集成gitbase 的demo,实际可以按照自己的项目修 ...

  2. cube.js 学习(十)cube 来自官方的学习网站

    尽管cube.js 包含了一个doc 站点,但是资料不是很全,同时如果查看了cube github 代码中的一些demo的话,发现还是很不错的 但是一些实践没有在文档展现出来,还好我们可以从cube ...

  3. cube.js 学习(八)backend部署模式

    cube.js 从设计上就进行了系统上的分层,backend,frontend,backend 是cube.js 的核心 对于cube.js backend 的部署官方也提供了好多中方法 部署模型 s ...

  4. cube.js 学习(七)cube.js type 以及format 说明

      cube.js 对于measure以及dimension 提供了丰富的数据类型,基本满足我们常见应用的开发,同时对于不同类型也提供了 格式化的操作 measure类型 number 格式 purc ...

  5. cube.js 学习(十一)cube + gitbase 分析git 代码

    这个是一个简单的demo,使用gitbase+cube 分析git 仓库代码 需求 我们平时使用的gitlab,或者gogs 等git 仓库管理工具,有自己的管理强项,但是对于分析上可能就不是那么强大 ...

  6. cube.js 学习(五)cube.js joins 说明

      cube.js 也支持join, 参考格式 joins: { TargetCubeName: { relationship: `belongsTo` || `hasMany` || `hasOne ...

  7. cube.js 学习(四)cube.js cube 说明

      cube 是cube.js data schema 的核心,里面定义了生成sql 的说明 一个比较全的schema 例子 cube(`Users`, { sql: `select * from u ...

  8. cube.js 学习(三)cube.js data schema

    cube.js的 data schema 类似graphql 的type 定义,但是cube.js 的data schema 更偏向于dsl, 其中抽象了进行数据分析应用开发中的东西,自己提炼了mea ...

  9. cube.js 学习(二)cube.js与 graphql2chartjs的比较

    cube.js 是目前看到从设计以及理念上很不错的数据分析事件,graphql2chartjs 是hasura graphql-engine 团队开发 的一个类库基于graphql,以下做一些比较 c ...

随机推荐

  1. Dubbo使用javassist生成动态类

    在服务(本地和远程)暴露的时候会调用proxyFactory.getInvoker方法 具体位置: 本地暴露:ServiceConfig#exportLocal line:538 远程暴露: Serv ...

  2. CLRS10.1-7练习 - 用双队列实现栈

    算法中心思想: 始终向非空队列进行入队操作 初始化时两个队列都为空,我们对q1进行入队操作 入栈: 只需执行其中一个队列入队操作即可, 具体操作哪一个队列,用一个标记变量标记 出栈流程图 代码实现 p ...

  3. Tr/ee AtCoder - 4433 (构造)

    大意: 给定长$n$的字符串$s$, 要求构造一棵树, 满足若第$i$个字符为$1$, 那么可以删一条边, 得到一个大小为$i$的连通块. 若为$0$则表示不存在一条边删去后得到大小为$i$的连通块. ...

  4. Teamviewer显示“未就绪,请检查您的连接”解决办法

    打开TeamViewer一直提示“未就绪,请检查您的连接”,一直会弹出一个框提示检查网路设置什么. 解决办法:修改DNS为114.114.114.114,然后TeamViewer就显示网络正常. 为什 ...

  5. Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量

    Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程:    1.线程是一堆指令,是操作系统调度 ...

  6. 使用cmd命令行登录mysql并查看mysql状态

    直接上代码,打开cmd命令窗口,进入mysql的安装目录(例如:cd  D:/lnmp/bin/mysql/mysql5.7.11/bin)输入: #mysql -u root -p Enter pa ...

  7. Java 读取控制台输入

    方式1:InputStreamReader+BufferedReader package my_package; import java.io.BufferedReader; import java. ...

  8. 自定义hybris生成订单的ID格式

    在项目local.properties里做出如下定义: keygen.order.code.digits=8 keygen.order.code.start=00000000 keygen.order ...

  9. 根据不同配置.env获取不同的配置文件的配置

    env 不同环境 1. 安装扩展 composer require vlucas/phpdotenv 2 . 创建文件 .env .env.test .env.production .env.exam ...

  10. MySQL每天产生了多大容量的binlog,用SQL语句能查到吗?

    首先,这是个假设性命题(又一个钓鱼题). 这个需求完全可以通过系统层命令,配合MySQL中的"FLUSH BINARY LOGS"快速完成. 运行SHOW MASTER/BINAR ...