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
  • 各オブジェクトを1列に格納
NoSQL入門

Snowflake の半構造化データ型

Snowflake は OBJECTARRAY 型もサポート

  • OBJECT は Python の辞書に類似
  • ARRAY は Python のリストに類似

$$

VARIANT

  • 半構造化データを1列に格納

VARIANT 型の列を持つ Snowflake テーブル。

NoSQL入門

ブラケット記法で半構造化データをクエリ

VARIANT 型の列があり、2 つのキーと値のペアが強調表示された Snowflake テーブル。

クエリ:

SELECT
    library['ISBN_13']
FROM books;

結果:

Snowflake テーブルに対するクエリの結果セット。

NoSQL入門

ドット記法で半構造化データをクエリ

VARIANT 型の列があり、4 つのキーと値のペアが強調表示された Snowflake テーブル。

クエリ:

SELECT
    library:ISBN_13,
    library:publisher
FROM books;

結果:

Snowflake テーブルに対するクエリの結果セット。

NoSQL入門

入れ子の半構造化データをクエリ

VARIANT 型の列があり、6 つのキーと値のペア(うち 4 つは入れ子)が強調表示された Snowflake テーブル。

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

Let's practice!

NoSQL入門

Preparing Video For Download...