自定义函数中复杂逻辑的 BigQuery 成本
BigQuery cost for complex logic in custom functions
我在这样定义的自定义函数中使用相对昂贵的计算:
CREATE TEMP FUNCTION HMAC256(message STRING, secret STRING)
RETURNS STRING
LANGUAGE js
OPTIONS (
-- copy this Forge library file to Storage:
-- https://cdn.jsdelivr.net/npm/node-forge@0.7.0/dist/forge.min.js
-- @see https://github.com/digitalbazaar/forge
library=["gs://.../forge.min.js"]
)
AS
"""
var hmac = forge.hmac.create();
hmac.start('sha256', secret);
hmac.update(message);
return hmac.digest().toHex();
""";
SELECT HMAC256("test", "111");
-- Row f0_
-- 1 f8320c4eded4b06e99c1a884a25c80b2c88860e13b64df1eb6f0d3191023482b
这会比应用 LOWER
功能更昂贵吗?
我在字节计费详细信息中看不到任何不同之处,而 HMAC256
在我的数据集上花费了 4 分钟,而 LOWER
花费了 14 秒。
要是价格一样就好了。我有一种感觉,我错过了什么。
是的。成本将是相同的。对于 BigQuery,您的查询可能会变得更加复杂和昂贵,但您只需按相同的费率付费,直到您的查询达到限制。如果您没有预订(又名 flat-rate slots),您的禁区查询将失败。
All high compute queries under tier 100 are billed as tier 1.
All queries above tier 100 will fail with a RESOURCES_EXCEEDED_PER_BYTE error unless the query is running in a reserved instance.
我在这样定义的自定义函数中使用相对昂贵的计算:
CREATE TEMP FUNCTION HMAC256(message STRING, secret STRING)
RETURNS STRING
LANGUAGE js
OPTIONS (
-- copy this Forge library file to Storage:
-- https://cdn.jsdelivr.net/npm/node-forge@0.7.0/dist/forge.min.js
-- @see https://github.com/digitalbazaar/forge
library=["gs://.../forge.min.js"]
)
AS
"""
var hmac = forge.hmac.create();
hmac.start('sha256', secret);
hmac.update(message);
return hmac.digest().toHex();
""";
SELECT HMAC256("test", "111");
-- Row f0_
-- 1 f8320c4eded4b06e99c1a884a25c80b2c88860e13b64df1eb6f0d3191023482b
这会比应用 LOWER
功能更昂贵吗?
我在字节计费详细信息中看不到任何不同之处,而 HMAC256
在我的数据集上花费了 4 分钟,而 LOWER
花费了 14 秒。
要是价格一样就好了。我有一种感觉,我错过了什么。
是的。成本将是相同的。对于 BigQuery,您的查询可能会变得更加复杂和昂贵,但您只需按相同的费率付费,直到您的查询达到限制。如果您没有预订(又名 flat-rate slots),您的禁区查询将失败。
All high compute queries under tier 100 are billed as tier 1.
All queries above tier 100 will fail with a RESOURCES_EXCEEDED_PER_BYTE error unless the query is running in a reserved instance.