返回资源列表

DuckDB · The DuckDB team

Faster String Aggregations with Dimension Tables

Faster String Aggregations with Dimension Tables是DuckDB的免费实践教程(en)。前置条件:需要会写基本 SQL(GROUP BY、JOIN、窗口函数)并能在 DuckDB 中建表与导入 Parquet。

学会用星型模型的维表 + 窄整数键,改写按长重复字符串分组的分析查询,降低哈希聚合的成本与内存占用。

打开官方课程
难度
见前置条件
类型
博客与教程 · 实践教程
语言
en
规模
1 个课节
内容费用
免费
动手
需要动手环境

使用限制

浏览器即可在 DuckDB web shell 中跟做练习,无需账号;也可安装 DuckDB CLI 本地运行。

练习与作业
开课提示词尚未实际运行验证

学完你能

  • 解释为什么在 DuckDB 中按长字符串 GROUP BY 比按整数键代价更高(哈希、逐字节比较、复制字符串、缓存与溢出)
  • 用 count(DISTINCT ...) 测量列基数,并据此选择最窄的无符号整数类型(UTINYINT/USMALLINT/UINTEGER)作为键
  • 用 row_number() OVER (ORDER BY ...) 为每个不同字符串生成有序、确定性的整数键,构建维表
  • 用 LEFT JOIN 把事实表的字符串列替换为整数键,并说明 NULL 值在维表中的处理方式
  • 在整数键上做聚合,必要时在最后一步再 join 回字符串,得到与原先相同的查询结果
  • 了解完美哈希聚合(perfect_ht_threshold)在小而稠密的键范围下如何避免哈希

适合你吗

适合

适合已有 SQL 基础、使用 DuckDB 做分析型查询并关注分组聚合性能的数据工程或数据分析学习者。

暂不适合

不适合完全没写过 SQL、或想系统学习数据库理论而不打算实际跑查询的初学者。

需要先会

需要会写基本 SQL(GROUP BY、JOIN、窗口函数)并能在 DuckDB 中建表与导入 Parquet。

课程特点

内容侧重
按内容目录判断
练习与项目
按博文步骤在本地或网页 shell 复现两种写法,用 EXPLAIN ANALYZE 比较耗时与哈希表大小。
学习时长
1 个课节原站未给出统一学习时长;实际用时取决于已有基础。
内容费用
免费节选可直接读到完整教程正文与 SQL 示例,无付费墙或登录拦截。

常见问题

免费吗?

免费:节选可直接读到完整教程正文与 SQL 示例,无付费墙或登录拦截。实践无额外费用:示例数据从公开 Parquet URL 读取,DuckDB 与网页 shell 免费,网页未提及其他付费资源。

需要什么基础?

需要会写基本 SQL(GROUP BY、JOIN、窗口函数)并能在 DuckDB 中建表与导入 Parquet。软件、账号与硬件:无需特殊硬件;可用 DuckDB CLI 或网页版 shell,能联网读取示例 Parquet 数据即可。

有中文吗?

本站记录的语言是en;是否有中文字幕或译本本站未核实,请以原站为准。

怎么开始?

从原始资源入口开始:https://duckdb.org/2026/10/02/dimension-tables.html。本页“学前准备”列出环境与工具,“学习指南”给出开课提示词,可以在自己的电脑上按步骤开始。开课提示词尚未完整验证。练习与作业需要自备:开课提示词尚未实际运行验证。

来源与使用须知

原始资源
DuckDB
收录时间
本站首次收录 2026-10-23
指南参考

版权与转载

  • 课程材料未标明许可:仅供个人学习,转载、修改或商用前请先联系原作者。
  • 本站只提供原始链接和学习指南,不转载、不镜像课程材料;引用时请注明原作者与出处。