Đối tượng dữ liệu trong Snowflake

Nhập môn Mô hình dữ liệu trong Snowflake

Nuno Rocha

Director of Engineering

Kho dữ liệu

Mô phỏng kho dữ liệu

Nhập môn Mô hình dữ liệu trong Snowflake

Kho truyền thống vs. kho ảo

Kho dữ liệu ảo Snowflake

Nhập môn Mô hình dữ liệu trong Snowflake

Kho truyền thống vs. kho ảo (1)

Kho dữ liệu ảo Snowflake vs. kho dữ liệu truyền thống

Nhập môn Mô hình dữ liệu trong Snowflake

Kho truyền thống vs. kho ảo (2)

  • CREATE WAREHOUSE: Mệnh đề tạo tài nguyên tính toán ảo cho xử lý dữ liệu.
  • USE WAREHOUSE: Mệnh đề chọn kho dữ liệu hoạt động cho phiên hiện tại.

Kho dữ liệu ảo Snowflake vs. kho dữ liệu truyền thống

Nhập môn Mô hình dữ liệu trong Snowflake

Schema và bảng

Database, Schema, Bảng

Nhập môn Mô hình dữ liệu trong Snowflake

Schema và bảng (1)

Giao diện Snowflake

Nhập môn Mô hình dữ liệu trong Snowflake

Schema và bảng (2)

  • CREATE DATABASE: Mệnh đề Snowflake để tạo cơ sở dữ liệu mới tổ chức đối tượng dữ liệu.
  • CREATE SCHEMA: Mệnh đề xác định vùng chứa để nhóm bảng và view.
  • CREATE TABLE: Lệnh tạo cấu trúc bảng và cột dữ liệu trong schema chỉ định.

Giao diện Snowflake, tạo phần tử

Nhập môn Mô hình dữ liệu trong Snowflake

View

Minh họa view

  • VIEW:
    • Hoạt động như thực thể ảo.
    • Tránh trùng lặp dữ liệu.
    • Tiết kiệm lưu trữ, đảm bảo nhất quán.
    • Trình bày dữ liệu động theo logic truy vấn.
Nhập môn Mô hình dữ liệu trong Snowflake

View (1)

  • Ví dụ VIEW tổng hợp đơn hàng khẩn của khách hàng
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;
Nhập môn Mô hình dữ liệu trong Snowflake

Materialized view

View tiền tính toán

  • MATERIALIZED VIEW:
    • Lưu kết quả đã tính sẵn.
    • Cải thiện hiệu năng truy vấn bằng cách lưu phép tính.
    • Giảm thời gian xử lý truy vấn.
    • Duy trì ảnh chụp dữ liệu làm mới để truy xuất mọi lúc.
    • Gói gọn thao tác phức tạp cho mô hình dữ liệu gọn.
Nhập môn Mô hình dữ liệu trong Snowflake

Materialized view (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;
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan thuật ngữ

  • Kho dữ liệu (truyền thống): Hệ thống tập trung lưu trữ, phân tích dữ liệu lớn trên một máy chủ.
  • Kho dữ liệu ảo (trong Snowflake): Tập tài nguyên tính toán trên đám mây, linh hoạt và mở rộng, dùng cho xử lý và phân tích dữ liệu.
  • Database: Trong Snowflake, container chính chứa các schema.
  • Schema: Tập cấu trúc logic, chứa bảng, view, v.v.
  • Table: Biểu diễn thực thể trong database; cấu trúc lưu trữ cơ bản theo hàng và cột trong schema.
  • View: Truy vấn đã lưu trình bày dữ liệu như thực thể ảo, không lưu bản sao dữ liệu.
  • Materialized View: Bản lưu vật lý kết quả truy vấn để truy cập nhanh hơn.
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan lệnh

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);
Nhập môn Mô hình dữ liệu trong Snowflake

Mẫu view (có thể materialized)

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;
Nhập môn Mô hình dữ liệu trong Snowflake

Ayo berlatih!

Nhập môn Mô hình dữ liệu trong Snowflake

Preparing Video For Download...