问题描述
我正在考虑同时使用 Databricks 和 SNowflake,它们由 Spark 连接器连接,都在 AWS 上运行。在做出决定之前,我很难理解以下几点:
- Spark 连接器的性能如何? (性能、额外成本、兼容性)
- Databricks sql 和 SNowflake sql 在性能和标准方面有哪些比较?
- 尝试同时使用两者有哪些“问题”或令人遗憾的意外?
解决方法
Snowflake 对 Spark 连接器的性能进行了投资,根据基准测试[0],它表现良好。
SQL 方言是相似的。 “Databricks SQL 保持与 Apache Spark SQL 语义的兼容性。” [1] “Snowflake 支持 SQL:1999 中定义的大多数命令和语句。” [2]
我没有遇到过陷阱。我会避免使用不同的区域。 DataBricks SQL 的性能特征自 6/17 起将其 Photon 引擎设为默认值以来就不同了。
与往常一样,该实用程序将取决于您的用例,例如:
- 如果您在分区压缩 Parquet DeltaLake 上执行分析性 DataBricks SQL 查询,那么性能应该与 Snowflake 大致相似——但如果您对 JDBC MySQL 连接执行分析性 DataBricks SQL 查询,则 Snowflake 的性能应该非常高更好。
- 如果您在 DataBricks SQL 中进行宽表扫描样式查询(例如
select * from foo
(无位置,无限制)),然后在内核(或其他)中进行分析,则切换到 Snowflake 不会为你做很多事情。
等
[1] - https://docs.databricks.com/sql/release-notes/index.html
[2] - https://docs.snowflake.com/en/sql-reference/intro-summary-sql.html