我在Google bigquery中遇到了问题。我有一些复杂的计算需要做,并将结果保存在Bigquery中。所以我们在Java中进行复杂的计算,并在谷歌云数据流的帮助下将结果保存在google bigquery中。
但是这个复杂的计算需要大约28分钟来完成java。客户要求是在20秒内完成。
所以我们切换到Google bigquery UDF选项。一个选项是Bigquery遗留UDF。 Bigquery遗留UDF有限制,它正在逐个处理行,所以我们淘汰了这个选项。因为我们需要多行来处理结果。
第二个选项是Scalar UDF。大查询标量UDF只能从WEB UI或命令行调用,不能从java客户端触发。
如果有任何人有任何想法,请提供有关如何继续的问题的指示。
答案 0 :(得分:1)
大查询标量UDF只能从WEB UI或命令调用 line并且不能从java客户端触发。
这不准确。标准SQL通过CREATE TEMPORARY FUNCTION
语句支持标量UDF,可以在任何应用程序和任何客户端使用它 - 它只是SQL查询的一部分:
https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions
要了解如何启用标准SQL,请参阅此文档:https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql
特别是,最简单的方法是在SQL查询开头添加#standardSql
标记。
答案 1 :(得分:1)
只要::after
语句在请求的CREATE TEMPORARY FUNCTION
属性中传递,您就可以在任何客户端API中使用带标准SQL的标量UDF。例如,
query