2C4G 跑通数据全链路:从数据接入、指标建模到智能问数的实战指南

0 阅读5分钟

2C4G 跑通数据全链路:从数据接入、指标建模到智能问数的实战指南

你有多个电商平台,想知道每天卖得怎么样。用传统数据平台?Hadoop + Flink + ClickHouse 搭起来就要好几台机器。 现在换 DataY:一台 2 核 4G 的服务器,20 分钟跑完整条链路 —— 数据接入 → 维度建模 → 指标定义 → 自然语言问数。 本文就是这条链路的手把手实操。


你将跑通什么

订单CSV文件 ──ETL──▶ DuckDB 数仓  ────▶  维度建模
                                          │
                                          ▼
                                   指标(销售额/毛利率/客单价…)
                                          │
                        ┌─────────────────┴─────────────────┐
                        ▼                                   ▼
              公共指标查询面板                         智能问数(自然语言)
              "我选几个指标看看"                        "上个月北京销售额?"
                        └───────────► 数据结果 ◄────────────┘

跑完之后你能得到:

能力效果
📥 数据接入订单/商品/门店数据自动同步到数仓,定时增量
🏗️ 维度建模商品品类(3 级层级)、门店、时间(年/季/月/日)维度建好
📊 指标管理销售额、毛利率、客单价等 12 个业务口径指标,团队统一用
🤖 智能问数一句话拿数:"上个月各品类的销售额和毛利率"

1. 环境准备(5 分钟)

最低要求

  • 一台 2 核 4G 的服务器(或你的笔记本)
  • Java 17+,Maven 3.6+

启动

# 1. 克隆仓库
git clone https://cnb.cool/yuyuejia/datay

# 2. 构建项目
cd datay
mvn clean package -DskipTests

# 3. 启动(单机模式,调度+执行合一),AI 能力需要提供 AI API Key,默认为 Deepseek 原厂Key
java -jar datay-web/target/*.jar --DATAY_AI_API_KEY=sk-xxxxxxxxx

# 4. 浏览器打开 http://localhost:8080,默认账号 admin/admin

在线演示地址:datay-demo.yuyuejia.com.cn/

开箱即用:已预置好的电商资产

平台启动时自动通过数据库迁移脚本预置了一整套电商示例,登录就能看到:

类型预置内容
数据源电商数仓(DuckDB)
维度表dim_date、dim_customer、dim_store、dim_product、dim_brand、dim_category(3 级层级)、dim_time(年/季/月/日)
事实表fact_sales_order、fact_sales_order_item、fact_customer_member
指标销售额、销量、成本、毛利、毛利率、客单价等 12 个
同步任务EC_DIM_* / EC_FACT_* 系列,文件 → 模型

首页资产概览.png

2. 数据接入(10 分钟)

目标:把源数据(文件 / MySQL / API)同步进数仓物理表。

2.1 注册数据源

导航:数据源 → 数据源管理。

  1. 点击「新建数据源」
  2. 填写名称、类型(示例用 DUCKDB)、连接 URL、默认 schema
  3. 点「测试连接」确认后保存

数据源列表.png

2.2 编排同步任务

两种方式选一种:

方式 A:可视化 ETL 画布(适合复杂任务) 数据集成 → 新建任务 → 拖拽 FileInput(或 StreamJdbcInput)和 ModelWrite → 连线 → 双击节点配置 → 保存。

方式 B:数据同步(适合简单表同步) 数据同步 页面选源表和目标,自动建表全量/增量同步。

ETL画布.png

节点配置弹框.png

2.3 执行并校验

任务「执行一次」或「上线」后,到 任务实例 页看状态;在 数据源元数据浏览 里确认目标表已生成且有数据。

任务实例运行成功.png

3. 维度建模(10 分钟)

目标:用星型模型定义维度表和事实表的关联关系,让后续指标和问数有业务语义。

导航:数据模型 → 维度建模。

3.1 三种维度类型

创建维度模型时,选对类型能省很多事:

类型自动生成什么什么时候用
普通维度基础字段 + member_id/member_name客户、门店、商品
层级维度level1_id/level1_name … 自动层级字段品类(一级/二级/三级)
时间维度year/month/day 粒度字段 + 预置日期数据按时间趋势分析

3.2 时间维度

  1. 新建模型,类型选 时间维度
  2. 勾选粒度:年 / 季 / 月 / 日(自动按由粗到细排序)
  3. 填日期范围(如 2024-01-01 ~ 2024-12-31)
  4. 保存后自动生成:year_id/month_id/day_id + 主键 date_key + 层级路径 hierarchy
  5. 点「物化」→ 勾选「生成预置数据」→ 建表并写入日期数据

时间维度粒度勾选.png

物化弹窗.png

3.3 事实表关联维度

  1. 新建事实模型,类型选 DWD 明细层
  2. 用「注册模式」从物理表自动导入字段
  3. 对每个外键字段,在「关联维度」列指向对应维度模型
  4. 选一个时间字段作为「时间周期字段」

示例:fact_sales_order_item.order_date_sk → dim_date、product_sk → dim_product、store_sk → dim_store

事实表字段关联维度配置.png

4. 指标管理(10 分钟)

目标:用统一的公式定义业务指标口径,问数有依据、报表对得上。

导航:数据模型 → 指标管理。

4.1 原子指标(基础度量)

  1. 新建指标,类型选 原子指标
  2. 填名称、编码、单位(如 销售额 sales_amount,单位「元」)
  3. 选绑定的事实表(如 fact_sales_order_item)
  4. 写计算公式:SUM(amount)、COUNT(DISTINCT order_id) 等
  5. 可选配置「业务限定」(只算已支付订单等)
  6. 点「预览 SQL」核对口径后保存

4.2 衍生指标(组合公式)

类型选 衍生原子指标,用 ${指标编码} 引用已有指标:

毛利率 = ${gross_profit} / ${sales_amount}
客单价 = ${sales_amount} / ${order_count}

新建原子指标表单.png

衍生指标公式编辑.png

5. 智能问数(真正的亮点,5 分钟体验)

目标:用自然语言直接拿数,不需要会写 SQL。

导航:数据模型 → 智能问数。

5.1 构建知识索引

首次使用点 「重建知识索引」,平台会把以下内容向量化:

  • 指标(名称 + 编码 + 口径描述)
  • 维度字段
  • 维度成员值(门店城市、品类名称等)

索引完成后,AI 才能正确理解你的业务语义。

智能问数页头.png

5.2 开始问数

在输入框里像跟老板说话一样描述需求:

各品类的销售额和毛利率
最近一周北京的销售额
每个月的销售额趋势对比
今年一季度 vs 去年一季度的客单价

AI 会自动完成:知识检索 → 指标匹配 → 维度/时间识别 → 业务限定解析 → 取数, 最终用 Markdown 表格 给你答案。

image.png

6. 不依赖 AI 的公共指标查询

如果你想直接选指标手动查,或需要校验 AI 口径:指标管理 → 指标查询

  1. 选指标(可多选,自动求共同维度)
  2. 加维度(层级/时间维度可选具体层级)
  3. 设业务限定和时间范围
  4. 预览 SQL 或直接查询

公共指标查询面板.png