gpt4 book ai didi

javascript - BigQuery JavaScript UDF : Region of V8 instances

转载 作者:行者123 更新时间:2023-12-03 00:58:05 25 4
gpt4 key购买 nike

在 BigQuery 中,您可以添加 JavaScript UDF,它将在 V8 实例上执行。 This page on googleblog.com (几乎是我能找到的关于该主题的唯一页面)指出

JavaScript UDFs are executed on instances of Google V8 running on Google servers. Your code runs close to your data in order to minimize added latency.

因此,当我有欧洲等地区的数据时,我预计 UDF 将在同一地区执行。但是,当我运行以下查询时,该实例似乎并不像我预期的那样接近我的数据:

CREATE TEMP FUNCTION getDate()
RETURNS String
LANGUAGE js AS """
return new Date();
""";
SELECT CURRENT_DATETIME() dateTimeBigQuery
, getDate() as dateTimeJavaScript

此语句的输出:

dateTimeBigQuery                    dateTimeJavaScript
2018-10-10T07:42:32.556699 Wed Oct 10 2018 00:42:32 GMT-0700 (PDT)

This page on Time functions in BigQuery告诉我,当没有指定时区时,CURRENT_DATETIME() 函数返回 UTC 日期时间。

This page on Date functions in JavaScript

If no arguments are provided, the constructor creates a JavaScript Date object for the current date and time according to system settings for timezone offset.

当我使用 BigQuery 表中的数据(不带时区的日期时间)并将其传递给 JavaScript 函数时,它还将返回 GMT-0700 的日期时间

那么我可以安全地假设 V8 实例的运行速度与我的数据不接近吗?如果是这种情况,有没有办法为该实例指定一个区域?

最佳答案

BigQuery 会重写 Date 的构造函数以使用 UTC,而不是从执行 UDF 的位置获取时区,以便与 CURRENT_DATE 保持一致, CURRENT_DATETIME等函数。实际的 V8 环境始终与执行查询中其他逻辑的作业一起运行。

关于javascript - BigQuery JavaScript UDF : Region of V8 instances,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52735383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com