在 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"
    }
}
  • 允許以「raw」格式儲存資料
  • VARIANT 型別
  • 每個物件存成單一欄位
NoSQL 入門

Snowflake 的半結構化資料型別

Snowflake 也支援 OBJECTARRAY 型別

  • OBJECT 類似 Python 的字典
  • ARRAY 類似 Python 的串列

$$

VARIANT 型別

  • 將半結構化資料存於單一欄位

一個 Snowflake 資料表,含有 VARIANT 型別的欄位。

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 入門

一起來練習吧!

NoSQL 入門

Preparing Video For Download...