Bỏ qua để đến nội dung

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
  • 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ị).

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.

Terminal window
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub

Sau đó 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ày
GRANT 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.

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.

Ô 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.

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.

  • 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_READER và xem RSA_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.com củ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.