Snowflake
Snowflake là kho dữ liệu trên cloud. Fresco BI đăng nhập bằng một tài khoản chỉ đọc, liệt kê database, schema, bảng và view, rồi import các bảng bạn chọn vào một Data Table.
| Tính năng | Hỗ trợ |
|---|---|
| Import | Có |
| DirectQuery | Không |
| SSL/TLS | Luôn bật (có xác minh) |
| SSH tunnel | Không |
| Cloud | Có |
| On-premises (qua Gateway) | Không |
Chuẩn bị
Phần tiêu đề “Chuẩn bị”- Một tài khoản Snowflake và account URL của nó, ví dụ
myorg-myaccount.snowflakecomputing.com. Không nhận URL PrivateLink. - Một người dùng có role SECURITYADMIN (hoặc role được tạo role, user và cấp quyền).
- Một virtual warehouse mà tài khoản Fresco BI được dùng. Warehouse chỉ chạy khi import dữ liệu: kiểm tra kết nối và liệt kê bảng không khởi động nó.
- OpenSSL trên máy của bạn nếu đăng nhập bằng key pair (khuyến nghị).
Bước 1: Tạo tài khoản chỉ đọc
Phần tiêu đề “Bước 1: Tạo tài khoản chỉ đọc”Tạo một key pair. Fresco BI nhận khóa riêng RSA từ 2048 bit trở lên, định dạng PKCS#8 PEM, không mã hóa hoặc mã hóa bằng passphrase.
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocryptopenssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubSau đó tạo role chỉ đọc và user cho role đó. Dán phần thân của rsa_key.pub (bỏ dòng BEGIN/END) vào RSA_PUBLIC_KEY.
USE ROLE SECURITYADMIN;CREATE ROLE IF NOT EXISTS FRESCO_READER;
GRANT USAGE ON WAREHOUSE <warehouse> TO ROLE FRESCO_READER;GRANT USAGE ON DATABASE <database> TO ROLE FRESCO_READER;GRANT USAGE ON ALL SCHEMAS IN DATABASE <database> TO ROLE FRESCO_READER;GRANT SELECT ON ALL TABLES IN DATABASE <database> TO ROLE FRESCO_READER;GRANT SELECT ON ALL VIEWS IN DATABASE <database> TO ROLE FRESCO_READER;
-- Đối tượng tạo sau nàyGRANT USAGE ON FUTURE SCHEMAS IN DATABASE <database> TO ROLE FRESCO_READER;GRANT SELECT ON FUTURE TABLES IN DATABASE <database> TO ROLE FRESCO_READER;GRANT SELECT ON FUTURE VIEWS IN DATABASE <database> TO ROLE FRESCO_READER;
CREATE USER IF NOT EXISTS FRESCO_READER DEFAULT_ROLE = FRESCO_READER DEFAULT_WAREHOUSE = <warehouse> RSA_PUBLIC_KEY = '<public-key-body>';GRANT ROLE FRESCO_READER TO USER FRESCO_READER;Nếu muốn đăng nhập bằng mật khẩu, thay dòng RSA_PUBLIC_KEY bằng PASSWORD = '<strong-password>'. Key pair an toàn hơn.
Lặp lại các lệnh cấp quyền database cho từng database mà Fresco BI cần đọc.
Bước 2: Cho phép truy cập mạng
Phần tiêu đề “Bước 2: Cho phép truy cập mạng”Fresco BI kết nối tới account URL qua internet ở cổng 443. Nếu account hoặc user có network policy, hãy thêm IP đi ra của Fresco BI: các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê).
CREATE NETWORK POLICY FRESCO_BI_POLICY ALLOWED_IP_LIST = ('<frescobi-ip-1>', '<frescobi-ip-2>');ALTER USER FRESCO_READER SET NETWORK_POLICY = FRESCO_BI_POLICY;Snowflake không có lựa chọn On-premises (qua Gateway) hay SSH tunnel: kết nối luôn đi thẳng tới Snowflake.
Bước 3: Điền form
Phần tiêu đề “Bước 3: Điền form”| Ô | Nhập gì |
|---|---|
| Server | Account URL, <account>.snowflakecomputing.com |
| Warehouse | Tên warehouse ở Bước 1 (bắt buộc) |
| Role | FRESCO_READER, hoặc để trống để dùng role mặc định của user |
| Database | Một database cần liệt kê, hoặc để trống để liệt kê mọi database role thấy được |
| Tài khoản | FRESCO_READER |
| Cách đăng nhập | Key pair (mặc định) hoặc mật khẩu |
| Khóa riêng | Nội dung file rsa_key.p8, gồm cả dòng BEGIN/END |
| Passphrase của khóa | Chỉ khi khóa riêng có mã hóa |
| Mật khẩu | Chỉ khi đăng nhập bằng mật khẩu |
| Thời gian chạy tối đa | Số phút một câu lệnh được chạy, 1–60 (mặc định 60) |
Bấm Kiểm tra kết nối. Bước kiểm tra sẽ đăng nhập, chuyển sang role đã nhập và chạy SELECT CURRENT_VERSION(); nó không khởi động warehouse. Sau đó bấm Lưu.
Chế độ SSL
Phần tiêu đề “Chế độ SSL”Kết nối tới Snowflake luôn được mã hóa và chứng chỉ máy chủ luôn được xác minh. Không có chế độ SSL để chọn.
Xử lý sự cố
Phần tiêu đề “Xử lý sự cố”- Máy chủ từ chối tài khoản hoặc mật khẩu. Với key pair: public key gắn trên user không khớp khóa riêng, hoặc user bị khóa hay vô hiệu hóa. Chạy
DESC USER FRESCO_READERvà xemRSA_PUBLIC_KEY_FP. - Tài khoản không có quyền đọc đối tượng này. Network policy của Snowflake đang chặn IP của Fresco BI (thêm các địa chỉ IP đi ra của Fresco BI (hướng dẫn bên cạnh form nguồn dữ liệu có liệt kê) như ở Bước 2), hoặc role chưa có quyền SELECT trên bảng hay view đó.
- Thông tin kết nối chưa hợp lệ: kiểm tra lại các ô được đánh dấu. Role không tồn tại hoặc chưa cấp cho user, tên warehouse sai hoặc chưa được cấp quyền, hoặc khóa riêng không phải khóa RSA PKCS#8 từ 2048 bit.
- Không phân giải được tên máy chủ (DNS). Kiểm tra lại ô Máy chủ. Kiểm tra account URL: phải là
<account>.snowflakecomputing.comcủa chính account bạn. - Máy chủ không phản hồi kịp. Thường do firewall chặn im lặng hoặc sai máy chủ, cổng. Warehouse có thể đang bận (câu lệnh xếp hàng quá 10 phút) hoặc câu lệnh chạy quá thời gian tối đa. Dùng warehouse lớn hơn hoặc ít tải hơn.
- Vượt giới hạn kích thước hoặc số kết nối đồng thời. Resource monitor đã dừng warehouse vì hết hạn mức credit.
- Không thiết lập được kết nối SSL với chế độ đã chọn. Kiểm tra chế độ SSL và chứng chỉ CA. Proxy hoặc firewall đang chặn bắt TLS tới
snowflakecomputing.com, hoặc bước kiểm tra chứng chỉ (OCSP) thất bại. Để Fresco BI đi thẳng tới Snowflake. - Nguồn trả về kiểu dữ liệu trình kết nối chưa hỗ trợ. Bỏ cột đó ra khỏi Data Table.

