【发布时间】:2017-07-03 01:20:23
【问题描述】:
我们将 BigQuery 与他们的新方言“standard”SQL 结合使用。 新的 SQL 支持用 SQL 而不是 JS 编写的内联函数,因此我们创建了一个函数来处理日期转换。
CREATE TEMPORARY FUNCTION
STR_TO_TIMESTAMP(str STRING)
RETURNS TIMESTAMP AS (PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%E*SZ', str));
它必须是临时函数,因为如果您尝试永久函数,Google 会返回 Error: Only temporary functions are currently supported; use CREATE TEMPORARY FUNCTION
。
如果您尝试使用使用内联函数的查询保存视图 - 您会收到以下错误:Failed to save view. No support for CREATE TEMPORARY FUNCTION statements inside views。
如果您试图超越它,并删除该功能(希望在查询期间添加它),您将收到此错误Failed to save view. Function not found: STR_TO_TIMESTAMP at [4:7]。
关于如何解决这个问题的任何建议?我们有比所示示例更复杂的函数。
【问题讨论】:
-
我看到的唯一“解决方法”是在code.google.com/p/google-bigquery提交功能请求
-
permanent registration of user-defined functions 的功能请求可以在我们的问题跟踪器中找到。
标签: sql google-bigquery user-defined-functions