Client Snowflake cho Mac
Đăng nhập theo cách tài khoản của bạn yêu cầu, chuyển session giữa các warehouse và role mà không cần kết nối lại, rồi query, sửa dữ liệu và unload table vào stage.
Dùng được trên MacDriver được tải về ở lần đầu bạn chọn Snowflake
Tóm tắt
- Ngôn ngữ query
- SQL
- Driver
- Tải về ở lần dùng đầu
- Cách kết nối
- API của dịch vụ
- iPhone và iPad
- Không mở được
Kết nối và đăng nhập
Nhập mã định danh tài khoản, như myorg-myaccount hoặc locator kiểu cũ xy12345.us-east-1: tức là phần đứng trước .snowflakecomputing.com. Mọi request đều đi qua HTTPS tới endpoint của tài khoản đó, nên form không có ô host, không có mục SSL và cũng không có phần SSH.
Chọn Phương thức xác thực (Auth Method) và form chỉ hiện những ô phương thức đó cần. Key pair ký mỗi lần kết nối bằng private key PKCS#8 của bạn, nên đồng hồ của máy Mac phải chính xác. SSO qua trình duyệt đưa bạn tới identity provider. OAuth token được dùng nguyên như khi dán vào và không bao giờ được làm mới. Mật khẩu đi kèm một mã còn hiệu lực trong ô Mã MFA (TOTP) (MFA Passcode) khi tài khoản bắt buộc MFA.
Khi tài khoản bật ALLOW_CLIENT_MFA_CACHING, bạn chỉ cần nhập passcode mới một lần: Snowflake trả về một MFA token và TablePro giữ nó trong Keychain. Khi bật ALLOW_ID_TOKEN, SSO qua trình duyệt cũng lưu một token đăng nhập ở đó, và những lần kết nối sau không cần mở trình duyệt cho tới khi Snowflake từ chối token.
Snowflake không có URL scheme. Thay vào đó, hãy nhập tên một section vào Tên kết nối CLI (CLI Connection Name), và mọi ô bạn để trống sẽ được đọc từ ~/.snowflake/connections.toml khi kết nối.
Warehouse, role và query
Cơ sở dữ liệu > Session Context (Database > Session Context) chuyển session sang warehouse hoặc role khác bằng USE WAREHOUSE và USE ROLE, không cần kết nối lại. Mỗi connection trong TablePro là một session Snowflake, được giữ mở cả khi không hoạt động, và tab gắn với cơ sở dữ liệu thứ hai sẽ chạy USE DATABASE trước các câu lệnh của nó trên chính session đó.
Sidebar nhóm các đối tượng theo cơ sở dữ liệu và schema. Danh sách đối tượng lấy từ các lệnh SHOW, chạy được khi chưa có warehouse; thông tin cột lấy từ INFORMATION_SCHEMA, vốn cần một warehouse. Explain trả về plan của Snowflake dưới dạng text thô.
Thay đổi trong data grid được bind giá trị phía server, ô VARIANT, OBJECT và ARRAY được gửi qua PARSE_JSON. Mỗi thay đổi dựa trên khóa chính đã khai báo, hoặc trên mọi cột nếu table không có khóa chính. Snowflake không bao giờ thực thi ràng buộc khóa, nên một giá trị khóa bị trùng nghĩa là thao tác sửa hay xóa sẽ chạm tới mọi dòng khớp với nó: hãy kiểm tra dữ liệu trùng trước khi sửa table.
Structure
DDL của đối tượng lấy từ GET_DDL. Tab Structure thêm, đổi tên và xóa cột, đặt NOT NULL, comment và khóa chính, nới rộng VARCHAR, và đổi độ chính xác (precision) của NUMBER khi giữ nguyên scale.
Những thay đổi Snowflake sẽ từ chối bị chặn trước khi chạy: thu hẹp VARCHAR, mọi thay đổi kiểu dữ liệu khác, và đặt giá trị mặc định mới cho cột. Xóa giá trị mặc định thì vẫn chạy.
Di chuyển dữ liệu
Import file CSV, TSV, JSON, JSONL, XLSX và SQL qua connection, và export table hoặc kết quả query về máy Mac ra CSV, JSON, SQL, XLSX, Markdown, HTML và XML.
Muốn unload một table mà không kéo dữ liệu về máy Mac, hãy chọn Tệp > Server-Side Export… (File > Server-Side Export…) rồi nhập tên stage, có hoặc không có @. Server-Side Export chạy COPY INTO với quyền của chính bạn và ghi ra CSV nén gzip, Parquet hoặc JSON; hộp thoại chờ tới khi unload xong, và không có gì được ghi xuống máy Mac.
iPhone và iPad
Ứng dụng cho iPhone và iPad không có driver Snowflake. Connection Snowflake đồng bộ từ máy Mac vẫn hiện trong danh sách nhưng không mở được.
Giới hạn
- Duo chỉ dùng được bằng passcode. Không hỗ trợ duyệt qua thông báo push.
Câu hỏi về Snowflake
Vì sao sidebar hiện table nhưng không có cột?
Thông tin cột lấy từ INFORMATION_SCHEMA, vốn cần một warehouse đang chạy. Hãy đặt Warehouse trong connection hoặc trong Session Context. Nếu các đối tượng của một cơ sở dữ liệu hoàn toàn không xuất hiện, role đang kết nối cần được cấp quyền USAGE trên cơ sở dữ liệu đó.
Vì sao giá trị TIMESTAMP_LTZ lại hiển thị theo UTC?
TablePro đọc chúng như một thời điểm UTC, có đánh dấu Z, thay vì đổi sang TIMEZONE của session.
Đăng nhập bằng key pair báo JWT token không hợp lệ. Tôi nên kiểm tra gì?
Token chứa locator của tài khoản và một mốc thời gian. Hãy kiểm tra mã định danh tài khoản và đồng hồ của máy Mac, sau đó xác nhận public key đã được gắn cho user bằng ALTER USER … SET RSA_PUBLIC_KEY.
Tải TablePro
Yêu cầu macOS 13 Ventura trở lên