在 Snowflake 中处理半结构化数据

NoSQL 入门

Jake Roach

Data Engineer

Snowflake 中的半结构化数据

{
    "ISBN_13": "978-1685549596",
    "publisher": "Notion Press Media",
    "size": {
        "dimensions": "8.5 x 1.01 x 11 inches",
        "weight": "2.53 pounds"
    }
}
  • 允许以"原始"格式存储数据
  • VARIANT 类型
  • 将每个对象存于单列
NoSQL 入门

Snowflake 的半结构化数据类型

Snowflake 也支持 OBJECTARRAY 类型

  • OBJECT 类似于 Python 的字典
  • ARRAY 类似于 Python 的列表

$$

VARIANT 类型

  • 在单列中存储半结构化数据

一个包含 VARIANT 列的 Snowflake 表。

NoSQL 入门

使用中括号表示法查询半结构化数据

一个 Snowflake 表,包含一个 VARIANT 类型列,突出显示两个键值对。

查询:

SELECT
    library['ISBN_13']
FROM books;

结果:

对 Snowflake 表执行查询的结果集。

NoSQL 入门

使用点表示法查询半结构化数据

一个 Snowflake 表,包含一个 VARIANT 类型列,突出显示四个键值对。

查询:

SELECT
    library:ISBN_13,
    library:publisher
FROM books;

结果:

对 Snowflake 表执行查询的结果集。

NoSQL 入门

查询嵌套的半结构化数据

一个 Snowflake 表,包含一个 VARIANT 类型列,突出显示六个键值对,其中四个是嵌套的。

SELECT
    library:ISBN_13,
    library:size.dimensions,
    library:size.weight,
FROM books;
SELECT
    library["ISBN_13"],
    library["size"]["dimensions"],
    library["size"]["weight"],
FROM books;

对 Snowflake 表执行查询的结果集。

NoSQL 入门

Passons à la pratique !

NoSQL 入门

Preparing Video For Download...