Tạo bảng trong Snowflake: Loại, Ví dụ & Thực tiễn tốt nhất
Tìm hiểu cách tạo các loại bảng khác nhau trong Snowflake, bao gồm bảng vĩnh viễn, tạm thời, bảng ngoài và bảng động. Kèm ví dụ từng bước và thực tiễn tốt nhất.
Snowflake là một nền tảng kho dữ liệu trên đám mây mạnh mẽ giúp tổ chức lưu trữ, quản lý và phân tích dữ liệu hiệu quả. Khác với các kho dữ liệu truyền thống đòi hỏi thiết lập phần cứng phức tạp, Snowflake chạy hoàn toàn trên đám mây, giúp doanh nghiệp dễ dàng mở rộng vận hành dữ liệu theo nhu cầu.
Tạo bảng trong Snowflake là kỹ năng nền tảng tạo nên cơ sở cho quản trị dữ liệu. Bảng là nơi bạn lưu trữ dữ liệu có cấu trúc, cho phép chạy truy vấn, tạo báo cáo và rút ra insight giá trị từ thông tin của bạn. Dù bạn đang làm việc với dữ liệu khách hàng, số liệu bán hàng hay kết quả phân tích, việc hiểu cách tạo và quản lý bảng trong Snowflake là điều thiết yếu.
Trong hướng dẫn này, bạn sẽ học mọi thứ cần biết về tạo bảng trong Snowflake. Chúng tôi sẽ đề cập các loại bảng khác nhau, minh họa bằng ví dụ từng bước và chia sẻ thực tiễn tốt nhất cho thiết kế bảng. Khi kết thúc, bạn sẽ tự tin chọn đúng loại bảng cho nhu cầu và tạo các bảng tuân theo tiêu chuẩn ngành về hiệu năng và khả năng bảo trì.
Tìm hiểu các loại bảng trong Snowflake
Trước khi đi vào các ví dụ mã về cách tạo bảng, hãy khám phá các loại bảng khác nhau trong Snowflake vì mỗi loại phục vụ mục đích riêng và có đặc điểm khác biệt về tính bền vững dữ liệu, khả năng truy cập và vị trí lưu trữ.
Bảng vĩnh viễn
Bảng vĩnh viễn là loại bảng tiêu chuẩn trong Snowflake. Chúng tồn tại cho đến khi bị xóa rõ ràng và được lưu trong bộ nhớ nội bộ của Snowflake. Các bảng này lý tưởng để lưu trữ dữ liệu cốt lõi của doanh nghiệp cần được giữ lâu dài và truy cập qua nhiều phiên. Dữ liệu trong bảng vĩnh viễn vẫn nguyên vẹn giữa các phiên và có thể được bất kỳ người dùng được ủy quyền nào truy cập.
Bảng tạm thời
Bảng tạm thời là bảng theo phiên và tự động xóa khi phiên hiện tại của bạn kết thúc. Chúng đóng vai trò là bảng không gian làm việc cho các bước xử lý trung gian, giúp sắp xếp các biến đổi dữ liệu phức tạp mà không làm lộn xộn bộ nhớ vĩnh viễn của bạn. Dữ liệu trong bảng tạm thời chỉ hiển thị với phiên đã tạo ra chúng và tự động dọn dẹp khi phiên đóng.
Bảng ngoài
Bảng ngoài cung cấp cách truy vấn dữ liệu nằm ngoài bộ nhớ lưu trữ của Snowflake. Chúng hoạt động như một lớp siêu dữ liệu ánh xạ tới dữ liệu ở các vị trí lưu trữ bên ngoài như AWS S3 hoặc Azure Blob Storage. Thay vì nạp dữ liệu vào, bảng ngoài tạo tham chiếu đến dữ liệu, cho phép bạn truy vấn trực tiếp dữ liệu bên ngoài. Cách tiếp cận này đặc biệt hữu ích khi làm việc với dữ liệu cần giữ nguyên tại nguồn hoặc thường xuyên được cập nhật từ hệ thống bên ngoài.
Bảng động
Bảng động là một tính năng mạnh mẽ trong Snowflake tự động duy trì kết quả truy vấn luôn cập nhật. Chúng hoạt động như các materialized view tự làm mới dựa trên thay đổi ở các bảng nguồn bên dưới. Khi bạn tạo bảng động, bạn định nghĩa nó bằng một câu lệnh SELECT, và Snowflake tự động quản lý quá trình làm mới để đảm bảo dữ liệu luôn hiện thời.
Bảng động đặc biệt hữu ích cho:
Xây dựng bảng điều khiển thời gian thực cần dữ liệu mới mà không cần làm mới thủ công
Duy trì phiên bản dữ liệu nguồn đã tổng hợp hoặc đã biến đổi và tự động cập nhật
Tạo các mô hình dữ liệu phụ thuộc, nơi các bảng hạ nguồn phản ánh thay đổi ở thượng nguồn
Tối ưu hiệu năng truy vấn bằng cách tiền tính toán các biến đổi phức tạp
Các tính năng chính của bảng động bao gồm:
Khoảng làm mới có thể cấu hình (từ 1 phút đến 24 giờ)
Tự động theo dõi phụ thuộc của bảng nguồn
Thiết lập độ trễ mục tiêu để kiểm soát độ mới của dữ liệu
Xử lý gia tăng để giảm chi phí tính toán
Khả năng giám sát và tối ưu tích hợp sẵn
Mỗi loại bảng có mục đích riêng trong kiến trúc dữ liệu. Bảng vĩnh viễn là nền tảng của kho dữ liệu, bảng tạm thời hỗ trợ quy trình xử lý dữ liệu, bảng ngoài giúp tích hợp với nguồn dữ liệu bên ngoài, và bảng động cung cấp biến đổi dữ liệu tự động, gần thời gian thực.
So sánh các bảng Snowflake
Bảng dưới đây tóm tắt các loại bảng Snowflake như một hướng dẫn tham khảo nhanh, súc tích:
Loại bảng
Tính bền vững
Khả năng hiển thị
Phù hợp nhất cho
Permanent
Cho đến khi bị xóa
Bất kỳ phiên nào
Dữ liệu kinh doanh cốt lõi
Temporary
Chỉ trong phiên
Cùng phiên
Biến đổi trung gian
External
Lưu trữ bên ngoài
Bất kỳ phiên nào
Truy vấn dữ liệu bên ngoài (ví dụ: S3)
Dynamic
Tự làm mới
Bất kỳ phiên nào
Phân tích thời gian thực
Tạo bảng: Thiết lập Snowflake
Trước khi chạy các ví dụ trong hướng dẫn này, bạn cần có quyền truy cập vào môi trường Snowflake. Dưới đây là một số cách để kết nối và chạy lệnh Snowflake:
1. Giao diện web Snowflake (Snowsight)
Cách đơn giản nhất để bắt đầu là thông qua giao diện web của Snowflake:
Câu lệnh đầu tiên xác định đặc tả định dạng tệp, cho Snowflake biết cách phân tích các tệp CSV bên ngoài, bao gồm dấu phân cách, cách xử lý header và biểu diễn giá trị NULL.
Câu lệnh thứ hai tạo đối tượng stage thiết lập kết nối tới lưu trữ đám mây bên ngoài (trong trường hợp này là S3) bằng thông tin xác thực cung cấp. Stage này hoạt động như điểm tham chiếu để truy cập các tệp dữ liệu bên ngoài.
Câu lệnh thứ ba tạo chính bảng ngoài, sử dụng định nghĩa cột với mệnh đề AS để ép kiểu rõ ràng dữ liệu chuỗi thô từ CSV sang các kiểu dữ liệu Snowflake phù hợp. Mệnh đề WITH LOCATION trỏ tới đường dẫn cụ thể trong stage nơi các tệp đang nằm.
Tham số PATTERN lọc những tệp được bao gồm bằng cách khớp regex, đảm bảo chỉ xử lý các tệp CSV.
Điều kiện tiên quyết để chạy truy vấn tạo bảng ngoài này:
1. Truy cập vào tài khoản Snowflake với quyền để:
Tạo định dạng tệp
Tạo stage
Tạo bảng ngoài
2. Thông tin xác thực AWS hợp lệ (AWS_KEY_ID và AWS_SECRET_KEY) với quyền để:
Đọc từ bucket S3
Liệt kê đối tượng trong bucket
3. Yêu cầu về dữ liệu nguồn:
Các tệp CSV được lưu trong bucket S3
Tệp tuân theo định dạng nhất quán với bốn cột
Dữ liệu cột khớp với kiểu chỉ định:
customer_id dạng chuỗi
purchase_date dạng ngày
product_id dạng chuỗi
amount dạng số thập phân
4. Kết nối mạng:
Quyền truy cập mạng tới AWS S3
Thiết lập nhóm bảo mật và tường lửa phù hợp
5. Tài nguyên tính toán:
Warehouse đang hoạt động với năng lực tính toán phù hợp
Đủ credits/hạn mức người dùng
Ví dụ 4: Tạo bảng động
Ví dụ này tạo bảng động duy trì bản tóm tắt dữ liệu bán hàng luôn cập nhật:
-- Create a dynamic table for real-time sales analyticsCREATEORREPLACE DYNAMIC TABLE daily_sales_summary
TARGET_LAG ='20 minutes'
WAREHOUSE ='COMPUTE_WH'ASSELECT
DATE_TRUNC('day', sale_timestamp)as sale_date,
product_category,SUM(sale_amount)as total_sales,COUNT(DISTINCT customer_id)as unique_customers
FROM sales_transactions
GROUPBY1,2;Được hỗ trợ bởi
Tham số TARGET_LAG là '20 minutes' xác định độ trễ tối đa được phép giữa cập nhật ở bảng nguồn và thời điểm các thay đổi đó phản ánh vào bảng động. Điều này đảm bảo dữ liệu mới trong khoảng thời gian đó.
Tham số WAREHOUSE chỉ định tài nguyên tính toán (trong trường hợp này là COMPUTE_WH) sẽ được sử dụng để định kỳ làm mới bảng động. Warehouse này phải có năng lực phù hợp để xử lý các thao tác làm mới.
Bảng động tự động cập nhật nội dung khi bảng sales_transactions bên dưới thay đổi mà không cần can thiệp thủ công. Điều này mang lại khả năng phân tích gần thời gian thực.
Bằng cách duy trì các số liệu tổng hợp bán hàng theo ngày theo danh mục sản phẩm, bảng động cho phép truy vấn nhanh hơn so với việc tính các chỉ số này theo yêu cầu từ dữ liệu giao dịch thô. Điều này cải thiện hiệu năng truy vấn cho các trường hợp báo cáo và phân tích.
Mỗi ví dụ trên minh họa các kịch bản tạo bảng khác nhau mà bạn có thể gặp trong ứng dụng thực tế. Hãy nhớ điều chỉnh tên cột, kiểu dữ liệu và các tham số khác theo nhu cầu cụ thể của bạn.
Thực tiễn tốt nhất khi tạo bảng trong Snowflake
Hãy khám phá một số thực tiễn tốt nhất nên tuân theo khi tạo bảng trong Snowflake để đảm bảo khả năng bảo trì, hiệu năng và chất lượng dữ liệu.
1. Quy ước đặt tên
Luôn sử dụng tên rõ ràng, nhất quán cho bảng và cột của bạn:
-- Good naming examplesCREATETABLE customer_orders (
order_id INTEGER,
customer_email VARCHAR,
order_date DATE);-- Bad naming examplesCREATETABLE Orders123 (
ID INTEGER,
email VARCHAR,
dt DATE);Được hỗ trợ bởi
Mẹo đặt tên:
Sử dụng chữ thường và gạch dưới (snake_case)
Tránh khoảng trắng và ký tự đặc biệt
Đặt tên mô tả nhưng không quá dài
Dùng dạng số ít cho tên bảng (customer không phải customers)
Thêm tiền tố cho các môi trường khác nhau (dev_, test_, prod_)
2. Kiểu dữ liệu cột
Chọn đúng kiểu dữ liệu để tiết kiệm lưu trữ và cải thiện hiệu năng:
-- Good data type choicesCREATETABLE products (
product_id INTEGER,
price DECIMAL(10,2),-- For money values
name VARCHAR(100),-- Set a reasonable limit
description TEXT,-- For very long text
is_active BOOLEAN-- Instead of VARCHAR or INTEGER);Được hỗ trợ bởi
Các kiểu dữ liệu thường dùng:
NUMBER/INTEGER: Cho số nguyên
DECIMAL/NUMERIC: Cho số thập phân chính xác (đặc biệt là tiền tệ)
VARCHAR: Cho văn bản có độ dài tối đa đã biết
TEXT: Cho văn bản độ dài không giới hạn
TIMESTAMP_NTZ: Cho ngày giờ (không múi giờ)
BOOLEAN: Cho giá trị đúng/sai
3. Sử dụng khóa phân cụm (clustering keys)
Thêm khóa phân cụm để cải thiện hiệu năng truy vấn:
Không phân cụm theo các cột có quá nhiều giá trị duy nhất
4. Thêm ràng buộc bảng
Sử dụng ràng buộc để giữ dữ liệu sạch:
CREATETABLE users (
user_id INTEGERPRIMARYKEY,-- Ensures unique IDs
email VARCHAR(255)UNIQUE,-- No duplicate emails
username VARCHAR(50)NOTNULL,-- Must have a value
age INTEGERCHECK(age >=18)-- Must be 18 or older);Được hỗ trợ bởi
Các ràng buộc quan trọng:
PRIMARY KEY: Cho định danh duy nhất
FOREIGN KEY: Để liên kết các bảng với nhau
NOT NULL: Cho các trường bắt buộc
UNIQUE: Cho các trường không được trùng lặp
CHECK: Cho kiểm tra hợp lệ dữ liệu đơn giản
5. Lỗi thường gặp cần tránh
Đừng làm như sau:
-- Bad practice: No primary keyCREATETABLE orders (dateVARCHAR,-- Wrong data type for dates
amount VARCHAR(10),-- Wrong data type for numbersstatustext-- Inconsistent case with other columns);Được hỗ trợ bởi
Hãy làm như sau:
-- Good practiceCREATETABLE orders (
order_id INTEGERPRIMARYKEY,
order_date DATE,
amount DECIMAL(10,2),statusVARCHAR(20));Được hỗ trợ bởi
Phiên bản cải tiến đảm bảo tính toàn vẹn dữ liệu với khóa chính, sử dụng đúng kiểu dữ liệu cho ngày và số để hỗ trợ lọc và tính toán hiệu quả, đồng thời duy trì tính nhất quán trong định nghĩa cột để tăng khả năng đọc và tương thích.
6. Mẹo hiệu năng
Tối ưu hiệu năng bảng trong Snowflake có thể cải thiện đáng kể tốc độ truy vấn và giảm chi phí lưu trữ. Hãy tuân theo các thực tiễn tốt nhất sau để đảm bảo bảng của bạn hiệu quả và có thể mở rộng.
Tạo các bảng nhỏ hơn thay vì một bảng khổng lồ
Thêm mô tả cột bằng COMMENT
Thiết lập quy tắc dọn dẹp dữ liệu tự động
Kiểm thử thiết kế bảng với dữ liệu thực
Theo dõi mức độ sử dụng bảng và điều chỉnh khi cần
7. Thực tiễn bảo mật tốt nhất
Các biện pháp bảo mật phù hợp là điều thiết yếu để bảo vệ dữ liệu nhạy cảm và kiểm soát truy cập. Triển khai các thực tiễn sau để bảo vệ môi trường Snowflake của bạn khỏi truy cập trái phép và rò rỉ dữ liệu.
Luôn thiết lập quyền truy cập phù hợp
Sử dụng bảo mật cấp hàng (row-level) khi cần
Mã hóa các cột nhạy cảm
Theo dõi ai có thể truy cập cái gì
Thường xuyên rà soát mẫu truy cập
Hãy nhớ: Một bảng được thiết kế tốt sẽ giúp công việc của bạn dễ dàng hơn về sau. Hãy dành thời gian lập kế hoạch cấu trúc bảng trước khi tạo!
Kết luận
Trong hướng dẫn này, chúng tôi đã đề cập những yếu tố thiết yếu của việc tạo bảng trong Snowflake, bao gồm:
Các loại bảng khác nhau (vĩnh viễn, tạm thời, ngoài và động)
Ví dụ từng bước để tạo từng loại
Thực tiễn tốt nhất cho thiết kế và quản lý bảng
Những sai lầm phổ biến cần tránh
Kiến thức này tạo nền tảng để xây dựng các giải pháp dữ liệu hiệu quả và có khả năng mở rộng trên Snowflake.
Bước tiếp theo
Để đào sâu chuyên môn về Snowflake, hãy xem các tài nguyên giá trị sau:
Đừng quên, cách học tốt nhất là thực hành. Hãy bắt đầu tạo bảng, thử nghiệm các loại khác nhau và xây dựng các dự án thực tế. Khi gặp thách thức, hãy tham chiếu lại các tài nguyên này và tiếp tục khám phá những tính năng mới của Snowflake.
Câu hỏi thường gặp về tạo bảng trong Snowflake
Các loại bảng khác nhau trong Snowflake là gì?⌄
Snowflake hỗ trợ bốn loại bảng chính: bảng vĩnh viễn cho lưu trữ dữ liệu dài hạn, bảng tạm thời cho sử dụng theo phiên, bảng ngoài để truy vấn nguồn dữ liệu bên ngoài và bảng động để tự động duy trì kết quả truy vấn.
Làm thế nào để tạo một bảng cơ bản trong Snowflake?⌄
Sử dụng lệnh CREATE TABLE với lược đồ bạn muốn. Ví dụ: "CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50))". Bao gồm các kiểu dữ liệu và ràng buộc phù hợp.
Bảng động trong Snowflake là gì và khi nào nên dùng?⌄
Bảng động tự động duy trì kết quả truy vấn luôn cập nhật, tương tự materialized view. Chúng lý tưởng cho bảng điều khiển thời gian thực, biến đổi dữ liệu tự động và duy trì dữ liệu tổng hợp cần cập nhật thường xuyên.
Thực tiễn tốt nhất để đặt tên bảng trong Snowflake là gì?⌄
Sử dụng chữ thường với gạch dưới (snake_case), tránh khoảng trắng và ký tự đặc biệt, đặt tên mô tả nhưng ngắn gọn, dùng dạng số ít cho tên bảng và cân nhắc thêm tiền tố môi trường (dev_, test_, prod_).
Làm thế nào để cải thiện hiệu năng bảng trong Snowflake?⌄
Cải thiện hiệu năng bằng cách sử dụng khóa phân cụm phù hợp, chọn đúng kiểu dữ liệu, đặt ràng buộc đúng, tạo các bảng nhỏ tập trung thay vì bảng lớn, và thường xuyên theo dõi mẫu sử dụng bảng.
Tôi là người sáng tạo nội dung về khoa học dữ liệu với hơn 2 năm kinh nghiệm và là một trong những tài khoản có lượng người theo dõi lớn nhất trên Medium. Tôi thích viết các bài chuyên sâu về AI và ML với chút giọng điệu mỉa mai, vì bạn cũng phải làm gì đó để chúng bớt khô khan. Tôi đã xuất bản hơn 130 bài viết và một khóa học trên DataCamp, cùng với một khóa nữa đang được thực hiện. Nội dung của tôi đã được hơn 5 triệu lượt xem, trong đó 20 nghìn người đã trở thành người theo dõi trên cả Medium và LinkedIn.
Snowflake là một nền tảng kho dữ liệu trên đám mây mạnh mẽ giúp tổ chức lưu trữ, quản lý và phân tích dữ liệu hiệu quả. Khác với các kho dữ liệu truyền thống đòi hỏi thiết lập phần cứng phức tạp, Snowflake chạy hoàn toàn trên đám mây, giúp doanh nghiệp dễ dàng mở rộng vận hành dữ liệu theo nhu cầu.
Tạo bảng trong Snowflake là kỹ năng nền tảng tạo nên cơ sở cho quản trị dữ liệu. Bảng là nơi bạn lưu trữ dữ liệu có cấu trúc, cho phép chạy truy vấn, tạo báo cáo và rút ra insight giá trị từ thông tin của bạn. Dù bạn đang làm việc với dữ liệu khách hàng, số liệu bán hàng hay kết quả phân tích, việc hiểu cách tạo và quản lý bảng trong Snowflake là điều thiết yếu.
Trong hướng dẫn này, bạn sẽ học mọi thứ cần biết về tạo bảng trong Snowflake. Chúng tôi sẽ đề cập các loại bảng khác nhau, minh họa bằng ví dụ từng bước và chia sẻ thực tiễn tốt nhất cho thiết kế bảng. Khi kết thúc, bạn sẽ tự tin chọn đúng loại bảng cho nhu cầu và tạo các bảng tuân theo tiêu chuẩn ngành về hiệu năng và khả năng bảo trì.
Tìm hiểu các loại bảng trong Snowflake
Trước khi đi vào các ví dụ mã về cách tạo bảng, hãy khám phá các loại bảng khác nhau trong Snowflake vì mỗi loại phục vụ mục đích riêng và có đặc điểm khác biệt về tính bền vững dữ liệu, khả năng truy cập và vị trí lưu trữ.
Bảng vĩnh viễn
Bảng vĩnh viễn là loại bảng tiêu chuẩn trong Snowflake. Chúng tồn tại cho đến khi bị xóa rõ ràng và được lưu trong bộ nhớ nội bộ của Snowflake. Các bảng này lý tưởng để lưu trữ dữ liệu cốt lõi của doanh nghiệp cần được giữ lâu dài và truy cập qua nhiều phiên. Dữ liệu trong bảng vĩnh viễn vẫn nguyên vẹn giữa các phiên và có thể được bất kỳ người dùng được ủy quyền nào truy cập.
Bảng tạm thời
Bảng tạm thời là bảng theo phiên và tự động xóa khi phiên hiện tại của bạn kết thúc. Chúng đóng vai trò là bảng không gian làm việc cho các bước xử lý trung gian, giúp sắp xếp các biến đổi dữ liệu phức tạp mà không làm lộn xộn bộ nhớ vĩnh viễn của bạn. Dữ liệu trong bảng tạm thời chỉ hiển thị với phiên đã tạo ra chúng và tự động dọn dẹp khi phiên đóng.
Bảng ngoài
Bảng ngoài cung cấp cách truy vấn dữ liệu nằm ngoài bộ nhớ lưu trữ của Snowflake. Chúng hoạt động như một lớp siêu dữ liệu ánh xạ tới dữ liệu ở các vị trí lưu trữ bên ngoài như AWS S3 hoặc Azure Blob Storage. Thay vì nạp dữ liệu vào, bảng ngoài tạo tham chiếu đến dữ liệu, cho phép bạn truy vấn trực tiếp dữ liệu bên ngoài. Cách tiếp cận này đặc biệt hữu ích khi làm việc với dữ liệu cần giữ nguyên tại nguồn hoặc thường xuyên được cập nhật từ hệ thống bên ngoài.
Bảng động
Bảng động là một tính năng mạnh mẽ trong Snowflake tự động duy trì kết quả truy vấn luôn cập nhật. Chúng hoạt động như các materialized view tự làm mới dựa trên thay đổi ở các bảng nguồn bên dưới. Khi bạn tạo bảng động, bạn định nghĩa nó bằng một câu lệnh SELECT, và Snowflake tự động quản lý quá trình làm mới để đảm bảo dữ liệu luôn hiện thời.
Bảng động đặc biệt hữu ích cho:
Các tính năng chính của bảng động bao gồm:
Mỗi loại bảng có mục đích riêng trong kiến trúc dữ liệu. Bảng vĩnh viễn là nền tảng của kho dữ liệu, bảng tạm thời hỗ trợ quy trình xử lý dữ liệu, bảng ngoài giúp tích hợp với nguồn dữ liệu bên ngoài, và bảng động cung cấp biến đổi dữ liệu tự động, gần thời gian thực.
So sánh các bảng Snowflake
Bảng dưới đây tóm tắt các loại bảng Snowflake như một hướng dẫn tham khảo nhanh, súc tích:
Loại bảng
Tính bền vững
Khả năng hiển thị
Phù hợp nhất cho
Permanent
Cho đến khi bị xóa
Bất kỳ phiên nào
Dữ liệu kinh doanh cốt lõi
Temporary
Chỉ trong phiên
Cùng phiên
Biến đổi trung gian
External
Lưu trữ bên ngoài
Bất kỳ phiên nào
Truy vấn dữ liệu bên ngoài (ví dụ: S3)
Dynamic
Tự làm mới
Bất kỳ phiên nào
Phân tích thời gian thực
Tạo bảng: Thiết lập Snowflake
Trước khi chạy các ví dụ trong hướng dẫn này, bạn cần có quyền truy cập vào môi trường Snowflake. Dưới đây là một số cách để kết nối và chạy lệnh Snowflake:
1. Giao diện web Snowflake (Snowsight)
Cách đơn giản nhất để bắt đầu là thông qua giao diện web của Snowflake:
2. Snowflake CLI (công cụ dòng lệnh)
Dành cho truy cập dòng lệnh:
Bạn có thể tìm thông tin xác thực tài khoản Snowflake của mình tại các vị trí sau:
Vì lý do bảo mật, không bao giờ chia sẻ hoặc commit các thông tin xác thực này. Lưu trữ chúng an toàn trong biến môi trường hoặc tệp cấu hình.
3. Kết nối Python
Nếu bạn dùng Python, bạn có thể sử dụng thư viện
snowflake-connector-python:Lưu ý bảo mật quan trọng:
Giờ thiết lập đã sẵn sàng, hãy tạo bảng!
Tạo bảng trong Snowflake: Ví dụ từng bước
Ví dụ 1: Tạo một bảng Snowflake đơn giản
Hãy tạo bảng để lưu thông tin khách hàng. Ví dụ này minh họa tạo bảng cơ bản với các kiểu dữ liệu và ràng buộc khác nhau.
Điểm chính về ví dụ này:
CREATE OR REPLACE TABLE- Tạo bảng mới hoặc thay thế nếu đã tồn tạiPRIMARY KEY- Đảm bảo định danh duy nhất cho mỗi bản ghiNOT NULL- Ngăn giá trị null ở các trường bắt buộcUNIQUE- Đảm bảo địa chỉ email không bị trùng lặpTIMESTAMP_NTZ- Dấu thời gian không có múi giờDEFAULT- Tự động đặt thời điểm tạo bản ghiVí dụ 2: Tạo bảng tạm thời
Bảng tạm thời rất phù hợp cho xử lý dữ liệu trung gian. Dưới đây là ví dụ tạo bảng tạm thời để phân tích đơn hàng của khách hàng:
Điểm chính về bảng tạm thời:
TEMPORARYchỉ ra bảng này chỉ tồn tại trong phiên hiện tại. Điều này có nghĩa người dùng khác không thể thấy hoặc truy cập bảng này.CREATE TABLE AS(CTAS) cho phép bạn tạo và nạp dữ liệu vào bảng trong một bước bằng cách kết hợp định nghĩa bảng với câu lệnh SELECT.Ví dụ 3: Tạo bảng ngoài trong Snowflake
Ví dụ này minh họa cách tạo bảng ngoài đọc dữ liệu từ các tệp lưu trong một bucket lưu trữ đám mây:
Câu lệnh đầu tiên xác định đặc tả định dạng tệp, cho Snowflake biết cách phân tích các tệp CSV bên ngoài, bao gồm dấu phân cách, cách xử lý header và biểu diễn giá trị NULL.
Câu lệnh thứ hai tạo đối tượng stage thiết lập kết nối tới lưu trữ đám mây bên ngoài (trong trường hợp này là S3) bằng thông tin xác thực cung cấp. Stage này hoạt động như điểm tham chiếu để truy cập các tệp dữ liệu bên ngoài.
Câu lệnh thứ ba tạo chính bảng ngoài, sử dụng định nghĩa cột với mệnh đề AS để ép kiểu rõ ràng dữ liệu chuỗi thô từ CSV sang các kiểu dữ liệu Snowflake phù hợp. Mệnh đề WITH LOCATION trỏ tới đường dẫn cụ thể trong stage nơi các tệp đang nằm.
Tham số PATTERN lọc những tệp được bao gồm bằng cách khớp regex, đảm bảo chỉ xử lý các tệp CSV.
Điều kiện tiên quyết để chạy truy vấn tạo bảng ngoài này:
1. Truy cập vào tài khoản Snowflake với quyền để:
2. Thông tin xác thực AWS hợp lệ (
AWS_KEY_IDvàAWS_SECRET_KEY) với quyền để:3. Yêu cầu về dữ liệu nguồn:
customer_iddạng chuỗipurchase_datedạng ngàyproduct_iddạng chuỗiamountdạng số thập phân4. Kết nối mạng:
5. Tài nguyên tính toán:
Ví dụ 4: Tạo bảng động
Ví dụ này tạo bảng động duy trì bản tóm tắt dữ liệu bán hàng luôn cập nhật:
Tham số
TARGET_LAGlà '20 minutes' xác định độ trễ tối đa được phép giữa cập nhật ở bảng nguồn và thời điểm các thay đổi đó phản ánh vào bảng động. Điều này đảm bảo dữ liệu mới trong khoảng thời gian đó.Tham số
WAREHOUSEchỉ định tài nguyên tính toán (trong trường hợp này làCOMPUTE_WH) sẽ được sử dụng để định kỳ làm mới bảng động. Warehouse này phải có năng lực phù hợp để xử lý các thao tác làm mới.Bảng động tự động cập nhật nội dung khi bảng
sales_transactionsbên dưới thay đổi mà không cần can thiệp thủ công. Điều này mang lại khả năng phân tích gần thời gian thực.Bằng cách duy trì các số liệu tổng hợp bán hàng theo ngày theo danh mục sản phẩm, bảng động cho phép truy vấn nhanh hơn so với việc tính các chỉ số này theo yêu cầu từ dữ liệu giao dịch thô. Điều này cải thiện hiệu năng truy vấn cho các trường hợp báo cáo và phân tích.
Mỗi ví dụ trên minh họa các kịch bản tạo bảng khác nhau mà bạn có thể gặp trong ứng dụng thực tế. Hãy nhớ điều chỉnh tên cột, kiểu dữ liệu và các tham số khác theo nhu cầu cụ thể của bạn.
Thực tiễn tốt nhất khi tạo bảng trong Snowflake
Hãy khám phá một số thực tiễn tốt nhất nên tuân theo khi tạo bảng trong Snowflake để đảm bảo khả năng bảo trì, hiệu năng và chất lượng dữ liệu.
1. Quy ước đặt tên
Luôn sử dụng tên rõ ràng, nhất quán cho bảng và cột của bạn:
Mẹo đặt tên:
dev_,test_,prod_)2. Kiểu dữ liệu cột
Chọn đúng kiểu dữ liệu để tiết kiệm lưu trữ và cải thiện hiệu năng:
Các kiểu dữ liệu thường dùng:
NUMBER/INTEGER: Cho số nguyênDECIMAL/NUMERIC: Cho số thập phân chính xác (đặc biệt là tiền tệ)VARCHAR: Cho văn bản có độ dài tối đa đã biếtTEXT: Cho văn bản độ dài không giới hạnTIMESTAMP_NTZ: Cho ngày giờ (không múi giờ)BOOLEAN: Cho giá trị đúng/sai3. Sử dụng khóa phân cụm (clustering keys)
Thêm khóa phân cụm để cải thiện hiệu năng truy vấn:
Khi nào nên dùng phân cụm:
4. Thêm ràng buộc bảng
Sử dụng ràng buộc để giữ dữ liệu sạch:
Các ràng buộc quan trọng:
PRIMARY KEY: Cho định danh duy nhấtFOREIGN KEY: Để liên kết các bảng với nhauNOT NULL: Cho các trường bắt buộcUNIQUE: Cho các trường không được trùng lặpCHECK: Cho kiểm tra hợp lệ dữ liệu đơn giản5. Lỗi thường gặp cần tránh
Đừng làm như sau:
Hãy làm như sau:
Phiên bản cải tiến đảm bảo tính toàn vẹn dữ liệu với khóa chính, sử dụng đúng kiểu dữ liệu cho ngày và số để hỗ trợ lọc và tính toán hiệu quả, đồng thời duy trì tính nhất quán trong định nghĩa cột để tăng khả năng đọc và tương thích.
6. Mẹo hiệu năng
Tối ưu hiệu năng bảng trong Snowflake có thể cải thiện đáng kể tốc độ truy vấn và giảm chi phí lưu trữ. Hãy tuân theo các thực tiễn tốt nhất sau để đảm bảo bảng của bạn hiệu quả và có thể mở rộng.
7. Thực tiễn bảo mật tốt nhất
Các biện pháp bảo mật phù hợp là điều thiết yếu để bảo vệ dữ liệu nhạy cảm và kiểm soát truy cập. Triển khai các thực tiễn sau để bảo vệ môi trường Snowflake của bạn khỏi truy cập trái phép và rò rỉ dữ liệu.
Hãy nhớ: Một bảng được thiết kế tốt sẽ giúp công việc của bạn dễ dàng hơn về sau. Hãy dành thời gian lập kế hoạch cấu trúc bảng trước khi tạo!
Kết luận
Trong hướng dẫn này, chúng tôi đã đề cập những yếu tố thiết yếu của việc tạo bảng trong Snowflake, bao gồm:
Kiến thức này tạo nền tảng để xây dựng các giải pháp dữ liệu hiệu quả và có khả năng mở rộng trên Snowflake.
Bước tiếp theo
Để đào sâu chuyên môn về Snowflake, hãy xem các tài nguyên giá trị sau:
1. Khóa học tương tác:
2. Hướng dẫn toàn diện:
3. Tài nguyên nghề nghiệp:
Đừng quên, cách học tốt nhất là thực hành. Hãy bắt đầu tạo bảng, thử nghiệm các loại khác nhau và xây dựng các dự án thực tế. Khi gặp thách thức, hãy tham chiếu lại các tài nguyên này và tiếp tục khám phá những tính năng mới của Snowflake.