MongoDB 到 Bigquery(批量)数据流模板 - UDF 不起作用

问题描述 投票:0回答:1

我们正在尝试按计划将 mongoDB 中的当前数据加载到 bigquery 中。目前正在尝试使用谷歌云的数据流服务与 MongoDB 到 Bigquery(批处理)模板以及一些 UDF 一起使用。不幸的是,我似乎无法使用云控制台让 UDF 来完成这项工作。作业运行完美并正确地将整个数据加载到bigquery中,但未应用UDF函数。 这是我在下面尝试过的一个示例 UDF,这应该只是向数据添加一个新的字符串字段,但这也不起作用。

/**
 * User-defined function (UDF) to transform elements as part of a Dataflow
 * template job.
 *
 * @param {string} inJson input JSON message (stringified)
 * @return {?string} outJson output JSON message (stringified)
 */
function process(inJson) {
  const obj = JSON.parse(inJson);

  obj.udftest = "udftest";

  return JSON.stringify(obj);
}

我做错了什么?我尝试像上面的代码一样添加一个额外的字段,但这也不起作用,如果 useroption 为 FLATTEN,它只会加载扁平数据;如果 useroption 为 NONE,则加载正常的 json 格式。 UDF 函数完全被忽略,管道成功运行,没有抛出任何错误。

我按照 MongoDB 的这篇博客文章使用给定的函数结构和格式仍然无济于事。我已将 obj 变量类型更改为正常的 var 而不是 const 但它仍然不起作用。遵循 bigquery 文档,但这也没有帮助。

javascript mongodb google-bigquery google-cloud-dataflow user-defined-functions
1个回答
0
投票

这个问题已经解决了。出现此问题是因为在模板创建页面中未正确输入 UDF 代码中的函数名称。

© www.soinside.com 2019 - 2024. All rights reserved.