Cube.js是否支持同时访问原始数据与聚合数据并绘制原始数据图表
Cube.js 使用问题解答
是否支持同时访问原始数据与聚合数据
完全支持,两种查询模式可以按需切换:
- 聚合查询:是Cube.js的核心能力,通过预定义度量(Measure)和维度(Dimension),可以快速返回求和、平均、最大值、计数等各类聚合结果,也支持自定义聚合规则。
- 原始数据查询:只需要在查询参数中添加
queryType: 'raw',即可直接拉取数据源的原始行数据,不需要经过预聚合计算,两种模式可以独立调用也可以结合使用,完全满足同时获取两类数据的需求。
能否基于sensor表生成温度随时间变化的趋势图
可以实现,这个场景是Cube.js非常典型的使用场景,操作逻辑如下:
- 首先在Cube.js Schema中定义对应Postgres表的数据模型,参考示例:
cube('SensorData', { sql: `SELECT * FROM public.your_sensor_table_name`, // 替换为你的实际表名 dimensions: { sensorId: { sql: `sensor_id`, type: `string` }, temperature: { sql: `temperature`, type: `number` }, timeRecorded: { sql: `time_recorded`, type: `time` } }, // 如果需要聚合查询可以加对应的度量定义,比如平均温度 measures: { avgTemperature: { sql: `temperature`, type: `avg` } } });
- 发起查询时按需配置参数即可:
- 如果你要展示每个原始采样点的温度趋势,设置
queryType: 'raw',返回的结果包含每条数据的timeRecorded和temperature值,直接传给前端图表组件作为x、y轴数据即可渲染。 - 如果你要按小时/天的时间粒度展示聚合后的温度趋势,不需要加raw查询参数,给
timeRecorded维度设置对应的timeGranularity(比如hour/day),度量选择avgTemperature即可得到聚合后的结果。
内容的提问来源于stack exchange,提问作者equatorial_daydreamer
相关产品推荐
相关产品推荐

