我最近收到一些请求,希望分享有关在 JMP 19 中使用基于 REST 的 Snowflake 数据连接器的信息。
幸好我已经做过相关的视频了!这是我发过的最简单的帖子。
如果想直接查看 JMP 的使用方法,请跳转到时间戳 2:11。
文字稿(大致内容):
我叫克里斯,是 JMP 的一名软件开发人员,我想分享一些关于 JMP 19 中新增的基于 REST 的 Snowflake 数据连接器的信息!
使用此连接器,用户可以体验到比基于 ODBC 的 Snowflake 连接器更高的性能。此外,基于 REST 的连接器无需安装 ODBC Snowflake 驱动程序即可在 JMP 中运行。
目标
今天,我将介绍:
- Snowflake是什么?
- 为什么要使用基于 REST 的 Snowflake 连接器?
- 如何配置和连接基于 REST 的 Snowflake 连接器。
- 一些故障排除技巧。
Snowflake是什么?
对于 Snowflake 的新手来说,它的描述之一是“Snowflake 将全新的 SQL 查询引擎与专为云原生设计的创新架构相结合”。
从用户角度来看,Snowflake 存储着数据。用户可以像使用任何基于 SQL 的数据库一样,提交 SQL 查询来访问这些数据,但后端数据存储在一个或多个云服务提供商(例如 AWS、Google Cloud 或 Azure)中。它能够根据客户需求灵活地扩展或缩减资源。
Snowflake 还提供了一个名为 Snowsight 的 Web 界面,用户可以在该界面上运行查询、管理 Snowflake、上传数据、构建数据管道以及监控活动和使用情况。
ODBC 与 REST
在 JMP 19 中,用户现在有两种方式可以在 JMP 中访问 Snowflake 数据:一种是使用 ODBC Snowflake 数据连接器,另一种是使用基于 REST 的 Snowflake 连接器。基于 REST 的连接器利用多线程处理来获取数据,这意味着与 ODBC 驱动程序相比,查询可以更快地完成。
REST 的局限性
目前支持的身份验证方法包括使用 Snowflake 默认身份验证器的“用户名和密码”身份验证、OAuth 身份验证,以及用于自动化脚本等场景的程序化访问令牌。
基于 REST 的连接器底层使用 Snowflake SQL API,因此不支持某些操作,例如带有数据暂存的 GET 和 PUT。
连接
了解了这些之后,让我们来看看如何在 JMP 中配置基于 REST 的连接器并建立连接。
(打开 JMP)
首先,我们打开 JMP 数据连接器界面。
(导航……和交谈)
在搜索栏中搜索 Snowflake,选择内置的 Snowflake 连接器,然后创建一个新的连接器。
使用用户密码进行身份验证
在开始之前,需要说明的是,根据您使用的身份验证系统,其中许多选项可能需要 Snowflake 管理员以及其他相关方的协助。但我们先来使用用户名和密码创建一个连接。
我们首先需要的是 Snowflake URL,用户通常通过该 URL 访问 Snowsight Web 界面,该 URL 通常以 .snowflake 结尾。 。
仓库字段指定您要连接的仓库,数据库和角色字段也是如此。如果留空,则会使用您已定义的用户默认值。通常,用户会被限制于某些角色,甚至只能访问某些表,因此,如果这些字段的值不正确,可能会导致连接失败。
最后,请在用户名和密码栏中填写您的凭据。您可以将密码栏留空,连接时系统会提示您输入密码。使用测试按钮测试连接,如果需要,可以保存连接。
双因素认证
您可能会发现 JMP 在连接时卡住,这可能表示 Snowflake 正在等待双因素身份验证 (2FA)。如果您的帐户已配置 2FA,则需要响应提示。例如,您可以使用手机上的 Duo 应用来允许连接。
连接成功后,您将能够看到所连接数据库中的架构和表。然后,使用“打开表”或“查询构建器”将数据导入 JMP。
SQL 控制台
JMP 19 新增了 SQL 控制台,它提供了使用支持连接器执行多语句查询的途径。它类似于运行自定义 SQL,但还允许使用一个查询同时打开多个表。您可以将工作保存为 .sql 文件,以便稍后打开重复使用。
使用程序化访问令牌进行连接
对于需要绕过双因素身份验证 (2FA) 以进行脚本编写或使用 JMP Live 刷新脚本的用户,另一种连接方式是使用程序化访问令牌。此临时令牌有效期最长为一年。请联系您的 Snowflake 管理员为您的用户生成令牌。
要将令牌与 JMP 配合使用,请按照之前创建 Snowflake 用户名/密码连接器的步骤操作,但这次需要在连接器的密码字段中输入令牌,而不是您常用的密码。完成此步骤后,您应该可以正常连接,而无需启用双因素身份验证 (2FA)。
使用 OAuth 连接
使用 OAuth 连接时,大部分字段由您的 Snowflake 和安全管理员提供。请确保此身份验证类型的用户名和密码字段为空。与之前一样,填写 Snowflake URL 字段,以及数据库、仓库和角色字段(如果适用)。其余字段列在 OAuth 部分,这些字段将由您的管理员提供。使用 OAuth 连接时,您可能需要进行身份验证,并且可能还需要完成双因素身份验证。就我而言,系统会将我引导至一个浏览器窗口来输入我的凭据。
故障排除
我们再提一下你可能会遇到的一些问题以及一些可能的解决方案。
- 角色/仓库错误:连接时,您可能会看到一条通用错误信息:“ SQL 编译错误:对象不存在,或无法执行操作。 ”
首先,我会检查您的角色、仓库和数据库是否正确。如果您留空,则可能需要明确指定您要访问的资源。如果您已填写,请仔细检查拼写是否正确,以及您的用户是否拥有这些资源的访问权限。为此,您可以咨询 Snowflake 管理员,使用 Snowsight 验证您的设置,或者使用 snowsql 或 Snowflake CLI 等控制台工具。
- HTTPS:某些 Snowflake 配置存在 IP 限制,或者资源位于公司防火墙之后。请确保您拥有这些资源的访问权限,这可能包括访问公司网络或在数据连接器中设置代理和 noproxy 字段。此外,如果您的基础架构使用自签名证书,则可能需要使用 Secure 字段禁用 TLS。除非您确定这是正确的配置,否则请勿禁用 TLS,因为这可能会允许中间人攻击。
感谢观看,希望本视频能帮助您了解基于 REST 的 Snowflake 连接器的优势,学习如何配置新的 Snowflake 数据连接器,并最终在 JMP 中连接到 Snowflake 数据。
在 snowflake.com 上可以找到更多关于使用 Snowflake 和运行 Snowflake 查询的信息。
我们希望用户会觉得此连接器的性能提升很有价值,并期待未来能进一步改进。谢谢!
嗨@chrishesser ,我这边似乎无法访问该视频。
您能否请同事帮忙访问视频并调整一下设置?