【问题标题】:What is the difference between client library in snowflake and Snowpark?Snowflake 和 Snowpark 中的客户端库有什么区别?
【发布时间】:2022-07-07 03:14:46
【问题描述】:

您能否解释一下使用 Python 连接器客户端库在 Python 中编写雪花 SQL 查询与使用 Snowpark 以 DataFrame 形式编写相同 sql 之间的区别。

【问题讨论】:

  • Snowpark 需要安装 Java,对于初学者来说
  • 我的意思是查询执行、数据传输到客户端系统等方面。
  • 数据传输将通过 snowpark 中的 JVM,因此速度较慢,需要更多客户端内存等

标签: python snowflake-cloud-data-platform


【解决方案1】:

Snowflake Connector for Python 提供了一个接口,让您的 python 应用程序连接到雪花并查询数据

而 snowpark 是一种 API,它提供了用于构建基于 Dataframe 的 SQL 语句的编程语言结构。例如,而不是将 select 语句编写为字符串并执行它。您可以使用 select() 方法而无需编写 sql 查询。

snowpark API 目前仅支持 Scala 语言。

【讨论】:

  • 谢谢。但就实际查询执行而言,两种情况下的处理都发生在雪花引擎中。雪地公园在哪些方面比前者更好。我理解延迟执行,但在处理、数据传输等方面的核心区别是什么。
【解决方案2】:

Snowflake Connector for Python 提供了一个接口来连接到雪花并使用游标对象来运行您的 sql 查询。

但是,Snowpark 是一种新的开发人员体验,其中库提供了一个 API,不仅用于查询,还用于使用具有语言可扩展性的 Dataframe 样式编程处理数据。

可以编写sql语句,使用雪花连接器为python提供的游标对象在雪花中执行。事实上,即使 snowpark 也使用 Python 连接器来建立连接并推送 sql 查询。不同之处在于 Snowpark API 提供了用于构建 SQL 语句的编程语言结构。例如,API 提供了一个 select 方法,您可以使用该方法指定要返回的列名,而不是将 'select column_name' 写为字符串。除此之外,它还提供代码完成和类型检查。

总而言之,如果运行 sql 查询是唯一的目的,那么 snowpark 并没有提供任何超过连接器的巨大好处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2017-09-28
    相关资源
    最近更新 更多