【问题标题】:How do I create a BigQuery view that uses a user-defined function?如何创建使用用户定义函数的 BigQuery 视图?
【发布时间】:2015-12-08 22:32:56
【问题描述】:

我想创建一个 BigQuery 视图,该视图使用调用 user-defined function 的查询。如何告诉 BigQuery 在哪里可以找到 UDF 的代码文件?

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    视图可以引用存储在Google Cloud Storage、内联代码块或本地文件中的 UDF 资源(内容将被加载到内联代码块中)。

    要使用 BigQuery UI 创建带有 UDF 的视图,只需像正常运行查询时一样填写 UDF 资源,然后保存为视图。 (换句话说,不需要特殊操作)。

    要在从命令行客户端创建视图期间指定这些,请使用 --view_udf_resource 标志:

    bq mk --view="SELECT foo FROM myUdf(table)" \
      --view_udf_resource="gs://my-bucket/my-code.js"
    

    在上面的示例中,gs://my-bucket/my-code.js 将包含myUdf() 的定义。如果您需要在视图查询中引用多个代码文件,您可以提供多个 --view_udf_resources 标志。

    您可以指定 gs:// URI 或本地文件。如果指定本地文件,则代码将被读取一次并打包到内联代码资源中。

    通过 API,这是一个名为 userDefinedFunctionResources 的重复字段。它是包含视图 SQL 的 query 字段的兄弟。

    【讨论】:

    • 您好,能否提供一个视图中的内联 UDF 示例?
    • 内联 UDF 是指已弃用的 js(...) 语法吗?
    • 我的意思是 CREATE TEMPORARY FUNCTION ...不过我已经联系了 Google 支持,他们告诉我视图中不可能有内联临时 UDF。
    • 感谢您的澄清。目前不支持;我建议在 issuetracker.google.com/issues/… 打开一个功能请求来跟踪它
    • 根据this question,此答案中的方法仅适用于旧版 SQL,不适用于标准 SQL。这符合我今天的经历。
    猜你喜欢
    • 2014-01-07
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多