开发者问题收集

SnowFlake 程序

2022-04-17
289

用 Javascript 编写的 Snowflake 程序是否经过预编译。我注意到该程序在每次调用时都会进行编译。有什么想法吗?

此外,考虑到 SnowFlake SQL 或 Java 仍处于预览阶段,在生产过程中使用它们是否明智?

1个回答

已编译:否

JavaScript 不是编译语言。但 SQL 也不是,但许多 DB 都有“预编译的 SQL 过程”和“预编译的 SQL”。Snowflake 没有“预编译的”SQL。但 Java 是经过编译的。

这说得有点长,不,SQL/JavaScript 在“目前”每次运行时都会进行评估,因此不是“编译的”

这有关系吗?

但实际上,如果您使用的 JavaScript 过程超过 10 行,那么编译时间将是一个重要因素。如果您对从文件中读取的 10 亿行数据组使用 JavaScript 函数,并过滤到 100 万行,那么与读取的数据相比,这些行的 JavaScript 的“成本”将是不可见的。

因此,与所有事物一样,没有通用的答案,您应该测试您的性能,当它“足够好”时,再继续使用下一个功能/昂贵的功能/程序。

编译 Java 值得吗?

可能不值得,在极端情况下,是的,就像在现实世界中一样,任何项目都应该用 Java 而不是用 JavaScript 编写。一个开发速度快,另一个开发速度非常慢。一个可以很快,另一个可以使用库(Snowflake SP 中没有库)。无论如何,我会“获得一个可行的解决方案”,然后在您看到它们时优化“慢”位。而不是试图预先写出最好的东西。

Simeon Pilgrim
2022-04-17