[英]BigQuery - wait UDF function with JavaScript code
在 Bigquery 中不存在像 Oracle 中的 DBMS_LOCK.SLEEP(或 DBMS_SESSION.SLEEP)這樣的本機 function(“讓程序休眠特定時間”)。 我嘗試使用帶有 JavaScript 代碼的 UDF,但它沒有像我預期的那樣工作:它不會停止,除非被強制。 你能幫我理解這是怎么回事嗎? 謝謝!
CREATE TEMP FUNCTION JS_Sleep(x FLOAT64)
RETURNS FLOAT64
LANGUAGE js AS r"""
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
return sleep(x);
""";
select JS_Sleep(10000);
在 BigQuery 中,與 Date.now() 類似的 CURRENT_TIMESTAMP() 總是在單個語句或單個事務中返回相同的值,就好像時間停止一樣,無論它在查詢中出現多少次。
根據我的經驗,這也適用於 Date.now()。 在您的情況下, JS_Sleep() 永遠運行會導致查詢中的時間停止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.