在 Dataflow Javascript UDF 中使用 performance.now()

Posted

技术标签:

【中文标题】在 Dataflow Javascript UDF 中使用 performance.now()【英文标题】:Using performance.now() in Dataflow Javascript UDF 【发布时间】:2020-05-20 10:09:28 【问题描述】:

我正在尝试获取 Google Cloud Dataflow 执行以转换 BigQuery 记录的当前时间戳(以微秒为单位)。对于这个问题,我使用这个指令:

performance.timing.navigationStart + performance.now()

但是,它不起作用。为什么? 有没有办法在数据流javascript UDF中获得微秒?

提前致谢。

【问题讨论】:

根据 MDN,performance.timing 已弃用,您应该使用 PerformanceNavigationTiming。 【参考方案1】:

Dataflow 本身不支持 js UDF。也许您正在使用一些 Google 提供的模板。

如果是这样,它使用 javax.script.ScriptEngine:

https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/templates/common/JavascriptTextTransformer.java#L138

所以你可以在本地尝试一下,看看它支持什么语法。

谢谢。

【讨论】:

以上是关于在 Dataflow Javascript UDF 中使用 performance.now()的主要内容,如果未能解决你的问题,请参考以下文章

使用 DataFlow Engine 运行 bigquery 查询时,如何使用 UDF(和其他函数)?

GCP 数据流 UDF 输入

是否可以在 UDF 中调用 javascript 过程 API?

JavaScript 中的雪花 UDF 未按预期计算

在 BigQuery 中使用 javascript udf 进行 tf idf 计算时,UDF 工作程序在执行期间超时

雪花中的 JavaScript UDF