返回资源列表

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 数据解析成结构化、带类型的列,并可查询嵌套字段与数组。

打开官方课程
难度
见前置条件
类型
博客与教程 · 实践教程
语言
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
指南参考

版权与转载

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