适用于 Mac 的 Snowflake 客户端
按账户要求的方式登录,无需重连切换会话的仓库和角色,再查询、编辑表并卸载到 stage。
适用于 Mac首次选择 Snowflake 时下载驱动
概览
- 查询语言
- SQL
- 驱动
- 首次使用时下载
- 连接方式
- 服务 API
- iPhone 和 iPad
- 无法打开
连接和登录
填写账户标识符,例如 myorg-myaccount 或旧式 xy12345.us-east-1,即 .snowflakecomputing.com 前的部分。所有请求经 HTTPS 发送至账户端点,因此无主机、SSL 区域或 SSH 面板。
选择 Auth Method 后仅显示所需字段。密钥对使用 PKCS#8 私钥为每次连接签名,因此 Mac 时钟必须准确。浏览器 SSO 前往身份提供商,OAuth 令牌按粘贴内容使用且从不刷新。账户强制 MFA 时,密码需配合 MFA Passcode (TOTP) 中的当前验证码。
账户开启 ALLOW_CLIENT_MFA_CACHING 时,一次新验证码即可:Snowflake 返回 MFA 令牌,TablePro 保存在钥匙串。启用 ALLOW_ID_TOKEN 时,浏览器 SSO 保存登录令牌,后续连接跳过浏览器直到 Snowflake 拒绝。
Snowflake 无 URL scheme。可在 CLI Connection Name 指定配置节,连接时从 ~/.snowflake/connections.toml 读取所有留空字段。
仓库、角色和查询
Database > Session Context 用 USE WAREHOUSE、USE ROLE 无需重连切换仓库或角色。一个 TablePro 连接对应一个 Snowflake 会话,空闲时仍保持。绑定第二个数据库的标签页在同一会话中先执行 USE DATABASE。
侧栏按数据库和 schema 分组对象。对象列表来自不需仓库的 SHOW 命令,列详情来自需要仓库的 INFORMATION_SCHEMA。Explain 返回 Snowflake 原始文本计划。
网格编辑在服务器绑定值,VARIANT、OBJECT、ARRAY 单元格通过 PARSE_JSON 发送。编辑按声明主键定位,无主键则按所有列。Snowflake 从不强制键约束,重复键意味着编辑或删除影响所有匹配行,请先检查重复。
结构
DDL 视图来自 GET_DDL。Structure 标签页 可添加、重命名、删除列,设置 NOT NULL、注释和主键,扩宽 VARCHAR,并在小数位数相同的情况下修改 NUMBER 精度。
Snowflake 会拒绝的修改在执行前即被拒绝,包括缩窄 VARCHAR、其他类型修改及将列默认值改为新值。清除默认值可以执行。
移动数据
通过连接导入 CSV、TSV、JSON、JSONL、XLSX和SQL,将表或结果以 CSV、JSON、SQL、XLSX、Markdown、HTML和XML 导出到 Mac。
要不经 Mac 卸载表,选择 File > Server-Side Export…,指定 stage,可带或不带 @。Server-Side Export 以自有权限运行 COPY INTO,写入 gzip 压缩 CSV、Parquet 或 JSON;面板等待完成,不写入 Mac。
iPhone 和 iPad
iPhone 和 iPad 应用没有 Snowflake 驱动。从 Mac 同步的 Snowflake 连接会显示在列表中,但无法打开。
限制
- Duo 仅支持动态口令,不支持推送批准。
关于 Snowflake 的问题
为什么侧栏显示表但不显示列?
列详情来自需要运行中仓库的 INFORMATION_SCHEMA。请在连接或 Session Context 设置 Warehouse。数据库对象完全不显示时,需要向连接角色授予 USAGE。
为什么 TIMESTAMP_LTZ 显示为 UTC?
TablePro 以标记 Z 的 UTC 时间读取,不转换为会话的 TIMEZONE。
密钥对登录提示 JWT 无效,应检查什么?
令牌包含账户 locator 和时间戳。检查账户标识符和 Mac 时钟,再确认已用 ALTER USER … SET RSA_PUBLIC_KEY 为用户注册公钥。
获取 TablePro
需要 macOS 13 Ventura 或更新版本