开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 16 天,点击查看活动详情
说点题外话
今天式疯狂星期四,所以我也想疯狂一下,所以我打算出售我家小猫咪性感写真一份,有意的掘友们可以出价了,起拍价50元起,大家快冲啊
cubeJS的使用
使用Cube.js
- 运行Cube.js开发服务器
使用以下命令在本地环境中运行 Cube.js 服务端:npm run dev
启动服务器后,可以前往以下服务端连接:http://localhost:4000。
- 前端框架集成
Cube.js可以通过任何框架进行访问并与每个前端库进行集成。例如:React、Angular、Vue等。
3.为数据源构建模型
为数据源构建模型是Cube.js非常重要的一部分
一个模型定义了项目中所有信息的来源和定义,从数据源到维度和指标。模型通过定义数据流和逻辑来指示 Cube.js 来计算结果。您可以使用可视化模型构建器或手动定义模型。
在 Cube.js 示例项目中,模型定义在cube.js文件中,可以添加以下内容:
const { polymorphic } = require('@cubejs-backend/postgres-schema');
const airlineSchema = require('./airline-schema.json');
module.exports = {
databases: {
test: {
type: 'postgres',
host: 'localhost',
port: 5432,
user: 'root',
password: '',
database: 'airline'
}
},
schemaVersion: "1.0.0",
caching: {
"LogLevel": "info",
"driver": "redis",
"redisUrl": process.env.REDIS_URL || 'redis://localhost:6379/0'
},
apiSecret: "SECRET",
dataSourceStorage: {
type: 'fileSystem',
path: './examples/schema-files'
},
preAggregations: {
'flights_by_day_of_week_and_destination': {
type: 'originalSql',
sql: `SELECT
'flights_by_day_of_week_and_destination' as generatedTableName,
flights.destination_city,
CAST(EXTRACT(dow FROM flights.flight_date) as INTEGER) as day_of_week,
COUNT(*) as flights_count
FROM
flights
GROUP BY
flights.destination_city, CAST(EXTRACT(dow FROM flights.flight_date) as INTEGER)`,
refreshKey: {
sql: 'SELECT 1',
invalidateKeyQueries: [],
}
}
},
cubeEvaluator: {
external: {
runningQuery: '/usr/bin/running-query'
}
},
以上代码定义了以下内容:
- 我们使用的数据源是本地的PostgreSQL实例。
- [可选] 系统访问日志级别进行日志记录,指定缓存驱动程序和其 Redis 的 PUB/SUB URL。
- 一个APISecret。
- 数据源存储设置为文件系统,以便将适当的代码存储在相应的目录中,并根据不同的源迭代版本。
- 缓存的定义,指示 Cube.js 如何缓存预聚合和SQL查询的结果。
- 未加工的聚合物,为减少查询时间而生成的精简视图。
- 嵌入式的代码映射器,为定制的代码映射器提供了一个配置接口。
如果大家有其他想要配置的,详情可参考官方手册,包括加密认证等等,大家可自行探索
说再见
今天就说到这里