DuckDB(DuckDB 团队官方博客) · The DuckDB team
From JSON Strings to Typed Columns
From JSON Strings to Typed Columns是DuckDB(DuckDB 团队官方博客)的免费实践教程(en)。前置条件:需要基本的 SQL 知识(建表、SELECT、类型转换)和 JSON 结构常识。
能在 DuckDB 中把存放于 VARCHAR 列的 JSON 数据解析成结构化、带类型的列,并可查询嵌套字段与数组。
DuckDB
- 难度
- 见前置条件
- 类型
- 博客与教程 · 实践教程
- 语言
- en
- 规模
- 1 个课节
- 内容费用
- 免费
- 动手
- 需要动手环境
学完你能
- 用 ->> 与 -> 运算符从 JSON 文本列中提取少量字段并转成对应类型
- 用 json_group_structure 聚合并(可选抽样)推断整列的 JSON 结构
- 用 json_merge_patch 修正推断结构中的时间戳和整数类型
- 用 json_transform(from_json)配合 unnest 把 JSON 列一次性转为带类型的表
- 用 recursive := true 与 keep_parent_names := true 展开嵌套结构并避免列名冲突
- 在 FROM 子句或 lateral join 中展开对象数组,得到每个元素一行
- 观察到 json_transform 遇到无法转换的值时该值变为 NULL(该小节正文在节选中被截断)
适合你吗
适合
适合已经在用 DuckDB 或 SQL 处理 JSON 字段、想把半结构化数据转成类型化列的开发者。
暂不适合
不适合想系统学习数据库原理或 SQL 入门的零基础学习者,内容只聚焦 JSON 到带类型列的转换场景。
需要先会
需要基本的 SQL 知识(建表、SELECT、类型转换)和 JSON 结构常识。
课程特点
- 内容侧重
- 按内容目录判断
- 练习与项目
- 建议自己构造带缺省键和类型异常值的 JSON 列,重复推断与转换流程,并观察转换失败时得到 NULL 的行为。
- 学习时长
- 1 个课节原站未给出统一学习时长;实际用时取决于已有基础。
- 内容费用
- 免费正文完整可读,含全部 SQL 示例与结果输出,无付费墙或登录限制。
内容覆盖
- TL;DR 与问题背景
- The Data:把 payload 存为 VARCHAR 的 events 表
- Picking out a Few Fields:用 -> 与 ->> 提取字段
- Inferring a Structure from the Column:json_structure 与 json_group_structure(含抽样)
- Adjusting the Types:用 json_merge_patch 修正时间戳与整数类型
- Building the Table:json_transform + unnest 生成 events_typed
- Nested Structs and Name Collisions:recursive 与 keep_parent_names
- Arrays of Objects:用 unnest / lateral join 展开 items
- Values That Do Not Fit:转换失败时返回 NULL(该小节正文在节选中被截断,后续小节未提供)
常见问题
免费吗?
免费:正文完整可读,含全部 SQL 示例与结果输出,无付费墙或登录限制。实践无额外费用:示例均在本地 DuckDB 中用内存表运行,网页未提及需要付费服务。
需要什么基础?
需要基本的 SQL 知识(建表、SELECT、类型转换)和 JSON 结构常识。软件、账号与硬件:无需特定账号;原站未说明实践所需的具体安装方式。
有中文吗?
本站记录的语言是en;是否有中文字幕或译本本站未核实,请以原站为准。
怎么开始?
从原始资源入口开始:https://duckdb.org/2026/10/16/json-to-typed-columns.html。本页“学前准备”列出环境与工具,“学习指南”给出开课提示词,可以在自己的电脑上按步骤开始。
来源与使用须知
- 收录时间
- 本站首次收录 2026-10-22
- 指南参考
- 课程主页
版权与转载
- 课程材料未标明许可:仅供个人学习,转载、修改或商用前请先联系原作者。
- 本站只提供原始链接和学习指南,不转载、不镜像课程材料;引用时请注明原作者与出处。