การโหลดข้อมูลแบบมีโครงสร้างและกึ่งมีโครงสร้าง

Snowflake Architecture

Emily Melhuish

Technical Curriculum Developer, Snowflake

ขั้นตอนการโหลดข้อมูล

แผนภาพขั้นตอนการโหลด แสดงไฟล์ที่เข้า Stage และโหลดเข้า Snowflake

  • ไฟล์จะอยู่ใน Stage จากนั้นรัน COPY INTO เพื่อโหลดข้อมูล
Snowflake Architecture

Stage คืออะไร?

Stage = พื้นที่จัดเก็บข้อมูลชั่วคราว

แผนภาพ Stage ของ Snowflake

สร้าง Internal Stage

CREATE STAGE snowy_peak_stage;

สร้าง External Stage

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://snowy-peak-data/raw/';
Snowflake Architecture

การโหลดข้อมูลเข้า Snowflake

COPY INTO

  • โหลดข้อมูลจำนวนมากจาก Stage
  • รองรับข้อมูลแบบมีโครงสร้างและกึ่งมีโครงสร้าง
  • รองรับการขยายขนาด

INSERT

  • เหมาะสำหรับข้อมูลจำนวนน้อยโดยไม่ต้องใช้ Stage
  • การเพิ่มหรือแก้ไขข้อมูลเป็นครั้งคราว

Snowsight UI

  • สำหรับผู้ใช้ที่ไม่เชี่ยวชาญด้านเทคนิคและงานเล็กน้อย
Snowflake Architecture

การตรวจสอบ Stage ด้วย LIST

snowflake_list_stage.png

Snowflake Architecture

การโหลดข้อมูลแบบมีโครงสร้างด้วย COPY INTO

Query

CREATE OR REPLACE FILE FORMAT csv_format
  TYPE = CSV
  SKIP_HEADER = 1;

COPY INTO orders
FROM @snowy_peak_stage/orders.csv
FILE_FORMAT = (FORMAT_NAME = csv_format);
Snowflake Architecture

การโหลดและ Query ข้อมูลกึ่งมีโครงสร้าง

การโหลด

JSON จะโหลดเข้าคอลัมน์ชนิดพิเศษของ Snowflake ที่เรียกว่า VARIANT

CREATE TABLE events (raw_event VARIANT);

COPY INTO events
FROM @snowy_peak_stage/events.json
FILE_FORMAT = (TYPE = JSON);

การ Query

ใช้สัญลักษณ์ colon เพื่อนำทางในโครงสร้าง JSON

SELECT 
raw_event:user_id::STRING AS user_id,
raw_event:event_type::STRING 
AS event_type
FROM events;
Snowflake Architecture

การโหลดผ่าน UI

ภาพหน้าจอ Snowflake UI

Snowflake Architecture

มาฝึกกันเลย!

Snowflake Architecture

Preparing Video For Download...