Cube
2023-09-18 23:21:56 5 举报
AI智能生成
Cube 文档(https://cube.dev/docs/) 阅读笔记
作者其他创作
大纲/内容
核心功能
Data modeling 数据模型
Cubes 多维数据集
类似于 SQL 中的视图
使用方式
数据库单个表
cube(`orders`, {<br> sql_table: `orders`<br>});
SQL
cube(`orders`, {<br> sql: `<br> SELECT *<br> FROM orders, line_items<br> WHERE orders.id = line_items.order_id<br> `<br>});
Demensions 维度
cube(`orders`, {<br> // ...<br><br> dimensions: {<br> id: {<br> sql: `id`,<br> type: `number`,<br> // Here we explicitly let Cube know this field is the primary key<br> // This is required for de-duplicating results when using joins<br> primary_key: true,<br> },<br><br> status: {<br> sql: `status`,<br> type: `string`,<br> },<br> },<br>});
多维数据集中<font color="#ed77b6">单个</font>数据点的属性
Measures 度量
cube(`orders`, {<br> // ...<br><br> measures: {<br> count: {<br> type: `count`,<br> },<br> },<br>});
多维数据集中<font color="#70d5d7">一组</font>数据点的属性
Joins 表关联
cube(`orders`, {<br> // ...<br><br> joins: {<br> line_items: {<br> relationship: `many_to_one`,<br> // Here we use the `CUBE` global to refer to the current cube,<br> // so the following is equivalent to `orders.id = line_items.order_id`<br> sql: `${CUBE}.id = ${line_items.order_id}`,<br> },<br> },<br>});
多维数据集之间的关系
Cube 中有连接默认都是左连接
三种连接关系
一对一
one_to_one
一对多
one_to_many
多对一
many_to_one<br>
Segments 数据模型过滤器
cube(`orders`, {<br> // ...<br><br> segments: {<br> only_completed: {<br> sql: `${CUBE}.status = 'completed'`,<br> },<br> },<br>});
数据模型中预定义的过滤器
不是 Cube 查询,允许简化 Cube 查询,并使得跨各种查询重用通用过滤器变得容易
Pre-aggregaions 预聚合
cube(`orders`, {<br> // ...<br><br> pre_aggregations: {<br> main: {<br> measures: [CUBE.count],<br> dimensions: [CUBE.status],<br> timeDimension: CUBE.created_at,<br> granularity: `day`,<br> },<br> },<br>});
缓存指定组合查询条件结果
其他
Drilldowns 数据钻取
Introducing a Drill Down Table API in Cube.js<br>
Subquery 子查询
String time dimensions 字符串时间维度
可对时间进行格式化
滑动窗口 rolling window<br>
必须要给出一个 date range
0 条评论
下一页