cube.js 集成citus pg 扩展实现多租户的数据分析
citus 是一个强大的pg 扩展,我们可以方便的用来开发多租户的应用,同时cube.js 支持对于多租户的数据分析
cube.js 连接citus
这个不变,就是普通的pg 连接配置
cube.js 对于多租户的处理
我们可以通过添加查询转换处理,代码如下
- 比较适合schema 相同的数据模型
对应的数据查询就是过滤citus 中分布式表的健
const CubejsServer = require('@cubejs-backend/server');
const server = new CubejsServer({
queryTransformer: (query, { authInfo }) => {
const user = authInfo.u;
if (user.id) {
query.filters.push({
dimension: 'Users.id',
operator: 'equals',
values: [user.id]
})
}
return query;
}
});
server.listen().then(({ port }) => {
console.log(`🚀 Cube.js server is listening on ${port}`);
});
说明
cube.js 当前对于多数据库以及多租户支持还是很不错的,方便灵活,自定义程度比较高了,目前对于schema 处理暂时只
提供了基于FileRepository 的处理,如果能提供基于s3,或者类似的解决方法的话,会更好点,暂时还没看到接口,同时对于
schema 的处理,希望也同时提供hotreload 的功能,可以实现灵活的schema 变动处理
参考资料
https://github.com/cube-js/cube.js/blob/master/docs/Cube.js-Backend/Multitenancy-Setup.md
http://docs.citusdata.com/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-03-05 CONTINUOUS MIGRATION
2019-03-05 How to scale Complex Event Processing (CEP)/ Streaming SQL Systems?
2019-03-05 Understanding Complex Event Processing (CEP)/ Streaming SQL Operators with WSO2 CEP (Siddhi)
2019-03-05 Stream Processing 101: From SQL to Streaming SQL in 10 Minutes
2015-03-05 mysql 多行合并一列