我们正在尝试按计划将 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 文档,但这也没有帮助。