关于 developing-in-lightdash
Developing in Lightdash 是面向 CLI 用户和写回沙箱的技能,用于构建和部署 Lightdash 分析项目。它涵盖语义层、图表与仪表板,以及以代码方式管理内容的 Lightdash CLI 工作流。
主要功能
- 01定义指标、维度和关联
- 02创建与编辑图表和仪表板
- 03通过 CLI 部署和预览项目
- 04下载、上传及校验内容
- 05管理数据应用和自定义图表类型
适用场景
- 01维护 dbt 或 Lightdash YAML 项目
- 02将图表和仪表板作为代码管理
- 03检查仓库元数据并构建语义层
- 04部署分析项目并预览变更
MCP 相关
README 提及可通过 Lightdash MCP server 创建或编辑图表和仪表板。此技能为这些 Lightdash 开发任务提供指导。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lightdash/ lightdash --skill developing-in-lightdash安装后在 Claude Code 中输入/developing-in-lightdash确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/big-number-chart-reference.mdcartesian-chart-reference.mdcli-reference.mdcontent-as-code-reference.mdcreating-from-warehouse-catalog.mdcustom-viz-reference.mddashboard-best-practices.mddashboard-reference.mddata-app-themes-reference.mddimensions-reference.mdfunnel-chart-reference.mdgauge-chart-reference.mdjoins-reference.mdmap-chart-reference.mdmetrics-reference.mdperiod-over-period-reference.mdpie-chart-reference.mdsankey-chart-reference.mdsql-chart-reference.mdtable-chart-reference.mdtables-reference.mdtreemap-chart-reference.mduser-attributes-reference.mdworkflows-reference.md详细介绍
在 Lightdash 中开发
适用于使用 YAML 和 dbt 文件的 CLI 用户和 writeback 沙盒。
构建并部署 Lightdash 分析项目。本技能涵盖语义层(指标、维度、联接)和内容(图表、仪表板)。
适用场景
- 使用 Lightdash YAML 文件(图表、仪表板、以代码形式管理的模型)
- 使用
lightdashCLI(deploy、upload、download、preview、lint、warehouse-catalog、sql) - 在 dbt 或纯 Lightdash 项目中定义指标、维度、联接或表
- 以代码形式创建或编辑图表和仪表板
- 下载、上传或在本地开发数据应用(企业版)
- 创建、下载、编辑或上传在 Chart Studio 中构建的自定义图表类型(企业版)
- 创建、编辑、迁移、下载或上传组织级数据应用主题
**不适用场景:**开发 Lightdash 应用本身(请使用代码库中的 CLAUDE.md)、不涉及 Lightdash 元数据的一般 dbt 工作,或与 Lightdash 模型无关的原始 SQL。
可以执行的操作
| 任务 | 命令 | 参考 |
|---|---|---|
| 根据数据仓库元数据创建纯 Lightdash 项目 | 使用 Lightdash 或已通过身份验证的数据仓库 CLI 检查目录元数据并汇总配置文件 | 根据数据仓库目录创建 |
| 发现数据仓库中的表和字段 | lightdash warehouse-catalog --json | CLI 参考 |
| 探索数据仓库中的值 | 使用 lightdash sql 执行原始 sql,并读取 .csv 结果 | CLI 参考 |
| 定义指标和维度 | 编辑 dbt YAML 或 Lightdash YAML | 指标、维度 |
| 创建或编辑图表 | 使用 UI、Lightdash AI Agent、MCP,或通过 lightdash download/upload 使用 YAML | 内容工作流、图表类型 |
| 添加周期对比 | 向图表 YAML 添加 PoP 附加指标 | 周期对比 |
| 创建或编辑仪表板 | 使用 UI、Lightdash AI Agent、MCP,或通过 lightdash download/upload 使用 YAML | 内容工作流、仪表板参考 |
| 以代码形式管理项目和组织资源中的内容 | lightdash download、lightdash upload | 以代码形式管理内容 |
| 以代码形式管理数据应用(企业版) | 使用 lightdash download --apps <ref>(单个应用)或 --include-apps(全部),编辑捆绑包,再使用 lightdash upload --apps <ref>;通过 lightdash apps create/preview/validate 进行本地开发 | 数据应用、以代码形式管理内容 |
| 构建或编辑自定义图表类型(企业版) | 使用 lightdash apps create "<name>" --chart-type 或 lightdash download --chart-types <ref>,编辑 chart-types/<slug>/src/,再使用 lightdash upload --chart-types <ref> | 自定义图表类型 |
| 以代码形式管理组织级数据应用主题 | 使用 lightdash download --organization,编辑 themes/<slug>/,再使用 lightdash upload --organization | 数据应用主题 |
| 管理数据应用的外部连接(企业版) | 使用 lightdash download --include-external-connections,编辑 YAML,再使用 lightdash upload | 以代码形式管理内容 |
| 检查 YAML 文件 | lightdash lint | CLI 参考 |
| 设置数据仓库连接 | 根据 profiles.yml 使用 lightdash set-warehouse | CLI 参考 |
| 部署更改 | lightdash deploy(语义层)、lightdash upload(内容) | CLI 参考 |
| 测试更改 | lightdash preview | 工作流 |
常见错误
| 错误 | 后果 | 预防方法 |
|---|---|---|
| 猜测筛选值 | 大小写不匹配('Payment' 与 'payment')会导致图表悄无声息地返回空数据 | 始终运行 lightdash sql "SELECT DISTINCT column FROM table LIMIT 50" -o values.csv,并使用完全匹配的值 |
| 重命名图表后未更新仪表板图块 | 仪表板图块仍显示旧标题——title 和 chartName 是相互独立的覆盖项,不会自动更新 | 下载仪表板,找到 chartSlug 匹配的图块,并更新 title 和 chartName 使其保持一致(参见检查清单) |
| 在 metricQuery 中包含未使用的维度 | 出现“结果可能不正确”警告——额外的维度会改变 SQL 分组并产生错误数字 | metricQuery.dimensions 中的每个维度都必须出现在图表配置中。对于笛卡尔图表:layout.xField、layout.yField 或 pivotConfig.columns |
| YAML 键未排序 | lightdash upload 会发出“YAML 键未排序”警告,并导致差异内容冗杂 | 始终在每一层嵌套中按字母顺序排列键——CLI 会使用 sortKeys: true 写入 |
| 部署到错误的项目 | 覆盖生产环境内容 | 部署前始终运行 lightdash config get-project |
| 将内容下载到 dbt 项目中并提交 | 仓库会增加无人维护的仪表板、图表或数据应用文件;一旦有人在 UI 中编辑内容,这些文件就会过时 | 下载到临时目录,上传后再删除。仅在用户提出要求或仓库已跟踪这些内容时才提交(参见内容工作流) |
缺少 contentType 字段 | 无法确定内容类型,除非依赖目录结构 | 始终在顶层包含 contentType: chart、contentType: dashboard 或 contentType: sql_chart |
在 --apps <ref> 选择中添加 --include-apps | --include-apps 始终会请求项目中的所有应用(上限为 50 个),因此命令会下载所有应用以及该 ref,而不只是单个应用 | 单独使用 --apps <ref> 只会下载或上传该应用(可按 slug、应用 URL 或 UUID 指定)。仅在需要所有应用时使用 --include-apps |
| 编辑数据应用前未阅读其随附技能 | 应用代码会违反仅通过 SDK 访问数据和依赖项边界的要求(直接使用 fetch、pnpm add、随应用打包的库),导致上传被拒绝或应用部署后无法运行 | 每个应用包都附带 developing-data-apps-locally 和 lightdash-data-app 技能——编辑应用文件夹中的文件前请先阅读(参见数据应用) |
将可复用图表构建为 Vega-Lite custom 图表 | 可视化内容只存在于一个已保存的图表中,无法复用,也无法从数据探索器的图表类型选择器中选取 | 要创建新的可复用可视化,请构建自定义图表类型(参见自定义图表类型)。仅在处理现有的 chartConfig.type: custom 图表,或项目没有自定义图表类型(企业版)时使用 Vega-Lite |
| 编辑图表类型前未阅读其随附技能 | 组件会自行查询或获取数据,或者其 vizSchema 与 src/ 中读取的内容不一致,导致图表类型故障或无法显示在图表类型选择器中 | 每个图表类型文件夹都附带 AGENTS.md 以及 reusable-visualization 和 developing-chart-types-locally 技能——编辑 chart-types/<slug>/ 中的文件前请先全部阅读 |
| 编造仅适用于主题的 CLI 命令,或把缺少文件夹视为已删除 | 命令不存在,或者看似已删除的远程主题会在下次下载时重新出现 | 使用组织级下载和上传操作;更改 themes/ 前请阅读数据应用主题 |
开始之前
每次执行 lightdash download 或 lightdash upload 时,都必须遵循内容工作流:文件应放在临时目录中,而不是用户的代码仓库中;除非用户要求,否则不要提交这些文件。
当任务需要使用 lightdash download 或 lightdash upload 时,尤其是涉及批量编辑、空间和访问权限、计划内容、AI Agent、数据应用、自定义图表类型、组织主题、外部连接、用户、群组或自定义角色时,请先阅读并遵循内容即代码。项目内容和组织内容需要使用不同的命令,而默认下载并非完整快照。
对于任何创建、编辑、迁移、下载、上传或测试组织数据应用主题的任务,在操作 themes/ 之前,务必阅读并遵循数据应用主题。主题包是严格的多文件资源,组织上传没有仅上传主题的模式,而且 lightdash lint 不会验证它们。
检查目标项目
始终确认要部署到哪个项目。 部署到错误的项目可能会覆盖生产内容。
lightdash config get-project # Show current project
lightdash config list-projects # List available projects
lightdash config set-project --name "My Project" # Switch project
检测项目类型
不同项目类型的 YAML 语法差异很大。
| 类型 | 检测方式 | 主要区别 |
|---|---|---|
| dbt 项目 | 包含 dbt_project.yml | 元数据嵌套在 meta: 下 |
| dbt Fusion / dbt 1.10+ | 包含 dbt_project.yml,使用 dbt Fusion 或 dbt >= 1.10 | 元数据嵌套在 config: meta: 下 |
| 纯 Lightdash | 包含 lightdash.config.yml,不使用 dbt | 顶层属性 |
ls dbt_project.yml 2>/dev/null && echo "dbt project" || echo "Not dbt"
ls lightdash.config.yml 2>/dev/null && echo "Pure Lightdash" || echo "Not pure Lightdash"
dbt Fusion / dbt 1.10+: Lightdash 元数据必须嵌套在
config: meta:下,而不是meta:下。属性完全相同,只有嵌套位置不同。示例:models: - name: orders config: meta: metrics: total_revenue: type: sum sql: "${TABLE}.amount"
语法对比
dbt YAML(元数据位于 meta: 下):
models:
- name: orders
meta:
metrics:
total_revenue:
type: sum
sql: "${TABLE}.amount"
columns:
- name: status
meta:
dimension:
type: string
纯 Lightdash YAML(位于顶层):
type: model
name: orders
sql_from: 'DB.SCHEMA.ORDERS'
metrics:
total_revenue:
type: sum
sql: ${TABLE}.amount
dimensions:
- name: status
sql: ${TABLE}.STATUS
type: string
设置数据仓库连接
如果项目需要使用不同的数据仓库连接(例如,从 Postgres 切换到 BigQuery),请从 profiles.yml 更新连接:
lightdash set-warehouse --project-dir ./dbt --profiles-dir ./profiles --assume-yes
此命令会从 profiles.yml 读取凭据,更新当前所选项目的数据仓库连接,并触发重新编译。请在运行 lightdash deploy 之前执行此命令。
要指定某个项目:
lightdash set-warehouse --project-dir ./dbt --profiles-dir ./profiles --project <uuid> --assume-yes
核心工作流
使用筛选值前先验证
重要: 绝不要猜测筛选值。大小写不匹配(例如,'Payment' 与 'payment')会导致图表悄无声息地返回空数据。
默认情况下,筛选区分大小写。case_sensitive 键可以按以下优先级覆盖此设置:
- 维度元数据
- 模型/探索元数据
lightdash.config.ymldefaults.case_sensitive
编写任何字符串筛选条件之前,请先从数据仓库查询实际值:
lightdash sql "SELECT DISTINCT category FROM payments LIMIT 50" -o category_values.csv
读取 CSV,并在筛选器 YAML 中使用完全一致的值。此要求适用于图表和仪表板中所有值为字符串的 equals/notEquals 筛选条件。
编辑指标和维度
- 找到模型 YAML 文件(dbt:
models/*.yml;纯 Lightdash:lightdash/models/*.yml) - 编辑指标/维度,并使用适用于项目类型的语法
- 验证:
lightdash lint(纯 Lightdash)或dbt compile(dbt 项目) - 部署:
lightdash deploy
根据数据仓库目录创建纯 Lightdash 项目
当准备好的项目没有可用的 dbt 项目,而任务是根据数据仓库元数据搭建语义层时,在检查数据或编写 YAML 之前,务必先阅读并遵循根据数据仓库目录创建。无论数据仓库访问权限来自所选的 Lightdash 项目,还是已通过身份验证的数据仓库 CLI(例如 Snowflake CLI 或 bq),都适用此要求。若现有 dbt 语义层可以扩展,则不要使用此工作流。
内容工作流
图表、仪表板、数据应用、自定义图表类型及其他内容都遵循这一套流程。以下各节仅补充特定资源相关的内容。
创建内容。 可以在 Lightdash UI 中、通过 Lightdash AI Agent、通过 Lightdash MCP 服务,或使用 CLI 将内容创建为 YAML。以上方式都同样有效;请遵循用户的偏好。
Lightdash 是事实来源。 下载的文件只是临时工作副本,不应提交。若要将内容作为文件编辑,或以 YAML 创建内容:
- 确认目标:
lightdash config get-project - 下载到用户仓库之外的临时目录,绝不要下载到 dbt 项目中:
若要创建内容,则跳过下载步骤,并在LD_DIR="$(mktemp -d)/lightdash" lightdash download --dashboards executive-summary --path "$LD_DIR" # or --charts <slug>, --apps <ref>, ...$LD_DIR中编写新的 YAML。 - 在
$LD_DIR中编辑文件,并按照下面的检查清单操作 - 检查:
lightdash lint --path "$LD_DIR" - 使用相同的选择器上传:
lightdash upload --dashboards executive-summary --path "$LD_DIR" - 删除
$LD_DIR。不要将这些文件复制到仓库中,不要对它们执行git add,也不要提交。
对于批量或跨范围的更改(空间和访问权限、用户、组、角色、计划内容、AI Agent),请改为遵循代码化内容中的 Agent 安全工作流。
哪些内容应纳入 git。 仅当用户提出要求,或仓库已经在跟踪内容时(例如,git ls-files lightdash/ 返回内容文件),才应纳入 git。这适用于受版本控制的模板、通过 CI/CD 部署内容,以及要求严格变更管理和代码审查的场景。请参阅使用 Agent 编辑仪表板。这仅适用于内容:dbt 模型、指标、维度及其他语义层 YAML 确实应保存在仓库中,并随 lightdash deploy 一同部署。
图表和仪表板检查清单
- 筛选值:如果添加或更改了字符串筛选器,请先查询真实值(参见使用前验证筛选值)。
- 仪表板图块标题:
saved_chart图块的title和chartName是相互独立的覆盖值;图表重命名时,它们不会自动更新。如果更改了图表名称或用途,请下载所有包含chartSlug匹配该图表的图块的仪表板,同时更新这两个属性,并重新上传这些仪表板:tiles: - type: saved_chart properties: chartSlug: total-revenue-kpi title: "Gross Profit" # ← Update this when chart name/purpose changes chartName: "Gross Profit" # ← Update this too - 图表配置:请参阅图表类型和仪表板参考。
使用数据应用(企业版)
数据应用是位于 apps/<app-folder>/ 下的多文件 React bundle,并带有 lightdash-app.yml 清单文件,而不是单个 YAML 文件。完整的标志语义和清单详情请参阅:内容即代码。
数据应用遵循内容工作流:在临时目录中操作,除非用户要求,否则不要提交 bundle。以下命令使用的是数据应用专用标志。
下载一个数据应用——单独使用 --apps <ref> 即为完整命令(ref = slug、应用 URL 或 UUID;也能找到尚未添加到任何空间的数据应用):
lightdash download --apps revenue-explorer --path "$LD_DIR"
切勿添加 --include-apps 来限定下载范围——该标志始终会请求项目中的所有数据应用(参阅常见错误)。
下载所有数据应用:lightdash download --include-apps(上限为 50;使用 --apps-limit <n> 提高上限)。添加 --apps-only 可跳过图表、仪表板和空间。
上传:
lightdash upload --apps revenue-explorer --path "$LD_DIR" # one app (slug = folder name, URL, or UUID)
lightdash upload --include-apps --path "$LD_DIR" # every app folder on disk
--app-space <spaceRef>— 为此次上传新建的数据应用指定空间(slug 或 UUID);现有数据应用保留其所在空间。--create-new— 新建数据应用(使用新的 slug),而不是更新lightdash-app.yml中引用的数据应用。--allow-custom-dependencies— 对于声明了自定义 npm 依赖的数据应用,非交互式上传时必须使用此标志。
在本地开发,使用 lightdash apps 子命令组:
lightdash apps create "Revenue Explorer" --path "$LD_DIR" # scaffold a new app under $LD_DIR/apps/
lightdash apps preview # run the app locally against your real Lightdash instance, authenticated as you
lightdash apps validate # check source, manifest, dependencies, and semantic-layer references
每个新建或下载的数据应用 bundle 都会在其文件夹中附带专属技能:
developing-data-apps-locally— 编辑 → 验证 → 上传的循环、本地预览、仅通过 SDK 访问数据以及依赖边界lightdash-data-app— 数据应用源代码的@lightdash/query-sdk参考
编辑数据应用文件夹中的文件时,请先阅读随附的技能。这些技能与数据应用版本匹配,是本地开发的权威指南;本技能仅介绍如何在磁盘和 Lightdash 之间迁移数据应用。
使用自定义图表类型(企业版)
自定义图表类型是在 Chart Studio 中构建的可重复使用的可视化:一个 React 组件,Lightdash 会将查询结果和设置传递给它,并在项目中每个图表的探索器图表类型选择器中提供该组件。在磁盘上,它是位于 chart-types/<slug>/ 下的多文件 bundle,带有一个 lightdash-app.yml 清单文件,其中的 vizSchema 声明了组件读取的字段和选项。它不是数据应用(自身不执行查询),也不是旧版 Vega-Lite custom 图表。
图表类型遵循内容工作流:在临时目录中操作,除非用户要求,否则不要提交 bundle。
在本地创建图表类型:
lightdash apps create "Radial Gauge" --chart-type --path "$LD_DIR" # scaffolds $LD_DIR/chart-types/radial-gauge/
下载——单独使用 --chart-types <ref> 即为完整命令(ref = slug、URL 或 UUID):
lightdash download --chart-types radial-gauge --path "$LD_DIR"
lightdash download --include-chart-types # every chart type in the project (capped at 50; raise with --chart-types-limit <n>)
lightdash download --chart-types-only # chart types only, skipping charts, dashboards, and spaces
下载使用自定义图表类型渲染的图表时,也会下载该图表类型。在图表 YAML 中,绑定方式为 chartConfig.type: data_app_viz,并使用 config.dataAppVizSlug、fieldMapping 和 optionValues。
上传:
lightdash upload --chart-types radial-gauge --path "$LD_DIR" # one chart type (slug = folder name, URL, or UUID)
lightdash upload --include-chart-types --path "$LD_DIR" # every chart type folder on disk
如果图表 YAML 通过 dataAppVizSlug 绑定到某个图表类型,而该图表类型不存在于目标项目中,则上传会失败。请先上传图表类型,或在同一次运行中传入 --chart-types <ref>(图表类型会先于图表上传)。
在文件夹中编辑。进入 chart-types/<slug>/,并且在修改 src/ 之前,先阅读其 AGENTS.md 以及 reusable-visualization 和 developing-chart-types-locally 技能:
reusable-visualization— 组件约定:useVizContext()是与宿主通信的唯一渠道,组件本身绝不会查询或获取任何内容developing-chart-types-locally— 确保vizSchema与组件保持同步、使用lightdash apps validate --build、进行固定数据预览,以及完成上传和验证循环
这些文件与图表类型版本匹配,是编辑图表类型的权威指南。本技能仅介绍如何在磁盘和 Lightdash 之间迁移图表类型。
使用组织数据应用主题
组织数据应用主题是位于 themes/<slug>/ 下的多文件包,会自动参与 lightdash download --organization 和 lightdash upload --organization。它们没有独立的命令组或主题专用选择器。
创建、编辑、迁移、同步或测试主题之前,请阅读并遵循 数据应用主题,了解清单约定、资源规则、同步行为和生成边界。
使用 Preview 进行测试
对于较大的改动,请在隔离环境中测试:
lightdash preview --name "my-feature"
# Make changes and iterate
lightdash stop-preview --name "my-feature"
CLI 快速参考
| 命令 | 用途 |
|---|---|
lightdash deploy | 同步语义层(指标、维度) |
lightdash upload | 上传图表/仪表板 |
lightdash download | 将图表/仪表板下载为 YAML |
lightdash lint | 在本地验证 YAML |
lightdash preview | 创建临时测试项目 |
lightdash warehouse-catalog --json | 发现原始数据仓库表 |
lightdash sql "..." -o file.csv | 对数据仓库运行 SQL 查询 |
lightdash run-chart -p chart.yml | 对数据仓库执行图表 YAML 查询 |
lightdash apps create <name> | 在本地搭建新的数据应用(企业版) |
lightdash apps create <name> --chart-type | 在本地搭建新的自定义图表类型(企业版) |
lightdash apps preview | 在本地对 Lightdash 实例运行数据应用 |
lightdash apps validate | 验证数据应用或图表类型的源文件、清单和语义引用 |
lightdash download --chart-types <ref> / lightdash upload --chart-types <ref> | 在磁盘与 Lightdash 之间迁移自定义图表类型(企业版) |
完整的命令文档请参阅 CLI 参考。
语义层
语义层定义数据模型。完整配置请参阅各个参考文档:
- 表参考 — 可查询实体、标签、联接
- 指标参考 — 聚合计算(
count、sum、average、min、max、number等) - 维度参考 — 用于分组/筛选的属性(
string、number、boolean、date、timestamp) - 联接参考 — 跨表关系
- 用户属性参考 — SQL 变量、行级安全、访问控制
图表类型
所有图表都采用相同的基础结构:
chartConfig:
config: {} # Type-specific — see individual references
type: <type>
contentType: chart # Required: chart, dashboard, or sql_chart
dashboardSlug: my-dashboard # Optional: scopes chart to dashboard (won't appear in space)
metricQuery:
dimensions:
- my_explore_category
exploreName: my_explore # Required: which explore to query
filters: {}
limit: 500
metrics:
- my_explore_total_sales
sorts: []
name: "Chart Name"
slug: unique-chart-slug
spaceSlug: target-space
tableConfig:
columnOrder: []
tableName: my_explore # Required: top-level explore/table name
version: 1
键排序: 所有 YAML 键在每个嵌套层级都必须按字母顺序排序。CLI 会使用 sortKeys: true 写入文件,并在上传时对未排序的键发出警告。手动编写或编辑 YAML 时,请按字母顺序排列键,以避免警告和冗杂的差异。
图表范围: 仅对共享图表使用 spaceSlug。添加 dashboardSlug 可将图表限定在特定仪表板中(它不会显示在空间中)。
嵌套空间: 空间可以嵌套。在 YAML 中,spaceSlug 使用 parent/child 语法来指定子空间——/ 表示层级关系。示例:
spaceSlug: sales # Top-level space "sales"
spaceSlug: sales/maps # Sub-space "maps" inside "sales"
spaceSlug: sales/eu/forecasts # Deeper nesting works the same way
每个路径段都必须是该层级中已存在(或即将创建)的空间 slug。像 sales-maps 这样的单独 slug 表示平铺的顶层空间,而不是子空间——只有斜杠才能创建层级结构。
选择合适的图表类型
| 数据模式 | 推荐图表 | 原因 |
|---|---|---|
| 随时间变化的趋势 | 折线图或面积图(cartesian) | 在 X 轴上显示随时间的连续变化 |
| 类别对比 | 条形图(cartesian) | 便于直观比较不同类别 |
| 部分与整体的关系 | pie 或 treemap | 显示总和为 100% 的比例 |
| 单个 KPI 指标 | big_number | 突出显示一个重要数值 |
| 转化阶段 | funnel | 直观显示连续步骤之间的流失情况 |
| 目标完成进度 | gauge | 显示当前值与目标值的关系 |
| 地理数据 | map | 在地图上绘制数据点或区域 |
| 类别之间的流向 | sankey | 显示数值如何从源节点流向目标节点 |
| 详细记录 | table | 显示带有排序和格式设置的原始数据 |
| 以上类型均无法覆盖的可视化 | 自定义图表类型 | 图表类型选择器中提供的可复用 React 组件 — 参见自定义图表类型 |
| Vega-Lite 图表 | custom(旧版) | 适用于已使用 chartConfig.type: custom 保存的图表,或不支持自定义图表类型的项目(enterprise) |
| 类型 | 用途 | 参考 |
|---|---|---|
cartesian | 条形图、折线图、面积图、散点图 | 笛卡尔图表 |
pie | 整体中的部分 | 饼图 |
table | 数据表 | 表格 |
big_number | KPI | 大数字 |
funnel | 转化漏斗 | 漏斗图 |
gauge | 进度指示器 | 仪表盘 |
treemap | 层次数据 | 树图 |
map | 地理数据 | 地图 |
sankey | 流向图 | 桑基图 |
custom | 旧版 Vega-Lite 自定义图表 | 自定义可视化 |
data_app_viz | 由自定义图表类型渲染的图表 | 自定义图表类型 |
SQL 图表(contentType: sql_chart)直接从数据仓库原始 SQL 保存,而非从探索保存。参见 SQL 图表参考。
仪表板
仪表板以网格布局排列图表和内容。YAML 结构、图块类型、标签页和筛选器请参见仪表板参考。
探索数据仓库
构建模型时,使用 lightdash sql 探索数据:
# Preview table structure
lightdash sql "SELECT * FROM orders LIMIT 5" -o preview.csv
# Check distinct values for a dimension
lightdash sql "SELECT DISTINCT status FROM orders" -o statuses.csv
# Test metric calculations
lightdash sql "SELECT SUM(amount) FROM orders" -o test.csv
工作流模式
| 模式 | 适用场景 |
|---|---|
直接模式(deploy + upload) | 独立开发、快速迭代 |
| 预览优先 | 团队协作、复杂变更 |
| CI/CD | 合并时自动执行 |
详细示例和 CI/CD 配置请参见工作流参考。
资源
语义层
图表
- 笛卡尔图表参考 - 柱状图、折线图、面积图、散点图
- 饼图参考
- 表格图表参考
- 大数字参考
- 漏斗图参考
- 仪表盘图参考
- 树状图参考
- 地图图表参考
- 桑基图参考
- 自定义可视化参考 - 旧版 Vega-Lite
custom图表 - 环比与同比参考 - 环比与同比比较(同比、环比等)
- SQL 图表参考 - 从原始数据仓库 SQL 保存的图表