Snowflakeのデータオブジェクト

Snowflakeで学ぶデータモデリング入門

Nuno Rocha

Director of Engineering

データウェアハウス

データウェアハウスの概念図

Snowflakeで学ぶデータモデリング入門

従来型 vs. 仮想ウェアハウス

Snowflakeの仮想データウェアハウス

Snowflakeで学ぶデータモデリング入門

従来型 vs. 仮想ウェアハウス (1)

Snowflakeの仮想データウェアハウス vs. 従来型データウェアハウス

Snowflakeで学ぶデータモデリング入門

従来型 vs. 仮想ウェアハウス (2)

  • CREATE WAREHOUSE: データ処理向けの仮想計算リソースを作成。
  • USE WAREHOUSE: 現在のセッションで有効なウェアハウスを指定。

Snowflakeの仮想データウェアハウス vs. 従来型データウェアハウス

Snowflakeで学ぶデータモデリング入門

スキーマとテーブル

データベース、スキーマ、テーブル

Snowflakeで学ぶデータモデリング入門

スキーマとテーブル (1)

SnowflakeのUI

Snowflakeで学ぶデータモデリング入門

スキーマとテーブル (2)

  • CREATE DATABASE: データオブジェクトを整理する新しいデータベースを作成。
  • CREATE SCHEMA: テーブルやビューをまとめるコンテナを定義。
  • CREATE TABLE: 指定スキーマ内にテーブル構造と列を作成。

Snowflake UI、要素の作成

Snowflakeで学ぶデータモデリング入門

ビュー

ビューの図解

  • VIEW:
    • 仮想エンティティとして動作。
    • データ重複を回避。
    • ストレージ節約と整合性を確保。
    • クエリロジックに基づき動的に表示。
Snowflakeで学ぶデータモデリング入門

ビュー (1)

  • 顧客の至急注文を要約するVIEWの例
CREATE OR REPLACE VIEW customer_urgent_orders AS
SELECT c.c_name AS customer_name, 
    COUNT(DISTINCT o_orderkey) AS order_count,
    SUM(o_totalprice) AS total_price
FROM customer AS c
    JOIN orders AS o 
    ON c.c_custkey = o.o_custkey
WHERE o.o_orderpriority = '1-URGENT'
GROUP BY c.c_name;
ORDER BY total_price DESC;
Snowflakeで学ぶデータモデリング入門

マテリアライズドビュー

事前計算済みビュー

  • マテリアライズドビュー:
    • 事前計算結果を保存。
    • 計算済み結果によりクエリ性能を向上。
    • 処理時間を短縮。
    • 随時取得できる最新スナップショットを維持。
    • 複雑処理をカプセル化しモデリングを簡素化。
Snowflakeで学ぶデータモデリング入門

マテリアライズドビュー (1)

CREATE OR REPLACE MATERIALIZED VIEW top_customers AS
SELECT o.o_custkey AS customer_id,
    c.c_name AS customer_name,
    CASE 
        WHEN SUM(o.o_totalprice) > 5000000 THEN 'Over Price'
        WHEN SUM(o.o_totalprice) > 3000000 THEN 'Top Price'
        WHEN SUM(o.o_totalprice) > 2000000 THEN 'Average Price'
        ELSE 'Review Price'
    END AS total_price
FROM customer AS c
    JOIN orders AS o ON c.c_custkey = o.o_custkey
GROUP BY o.o_custkey, c.c_name
HAVING total_price > 2000000;
Snowflakeで学ぶデータモデリング入門

用語の概要

  • データウェアハウス (従来型): 単一サーバで大量データを保管・分析する集中型システム。
  • 仮想データウェアハウス (Snowflake): データ処理・分析専用の柔軟でスケーラブルなクラウド計算リソース群。
  • データベース: Snowflakeの最上位コンテナ。スキーマを保持。
  • スキーマ: テーブル、ビュー等の論理構造の集合。
  • テーブル: エンティティを表す基本構造。スキーマ内で行・列で管理。
  • ビュー: 保存されたクエリ。データを別保存せず仮想的に提示。
  • マテリアライズドビュー: クエリ結果を物理保存し高速アクセス。
Snowflakeで学ぶデータモデリング入門

機能の概要

CREATE OR REPLACE WAREHOUSE data_warehouse_name;
USE WAREHOUSE data_warehouse_name;
CREATE OR REPLACE DATABASE database_name;
CREATE OR REPLACE SCHEMA schema_name;
CREATE OR REPLACE TABLE table_name(
    column_name datatype,
    other_columns datatype);
Snowflakeで学ぶデータモデリング入門

ビュー/マテリアライズドビューの雛形

CREATE OR REPLACE VIEW view_name AS
SELECT column_name, 
    SUM(column_name2) AS sum_alias,
    CASE WHEN column_name5   condition   value THEN assigned_value
        ELSE another_assigned_value
    END AS case_alias
FROM table_name AS table_alias
    JOIN other_table AS other_alias ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias ON table_alias.FK = other_alias.PK
GROUP BY column_name;
Snowflakeで学ぶデータモデリング入門

Passons à la pratique !

Snowflakeで学ぶデータモデリング入門

Preparing Video For Download...