问题标签 [bigquery-udf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
577 浏览

exception - 在大查询脚本中引发异常问题

我想在大查询脚本中使用 RAISE 关键字将自定义消息打印为异常错误。但是,以下命令行在 raise 命令中引发错误。但是,如果我删除 raise 命令,它工作正常。您能帮我如何提出自定义错误消息吗?另外,要了解更多关于RAISE [USING MESSAGE = message];.

0 投票
1 回答
142 浏览

google-cloud-platform - 检查 BigQuery 合并语句中的两个数组是否完全相同

我在 BigQuery 中有两个要合并的表。出于解释的目的,让我们将这两个表命名为 A 和 B。因此,我们将 B 合并到 A 中。此外,我有一个名为 id 的主键,基于它我正在执行合并。现在,它们都有一个类型为 ARRAY 的列(让我们将其命名为 X 以进行解释)。如果两个表中的数组不相等,我的主要目的是用 B 中的数组数据替换 A 中的数组数据。我怎样才能做到这一点。我确实在 SO 和其他网站上找到了帖子,但没有一个在我的用例中工作。

合并的结果应该是

我怎样才能达到上述结果。任何线索都会非常有帮助。另外,如果还有其他直接解决上述情况的帖子,请指出我

编辑:

我尝试了以下方法:

希望这可以帮助。

0 投票
1 回答
353 浏览

javascript - 我们如何转换 .proto 文件和 JSON 描述符?

我想将 .proto 文件转换为 JSON 描述符。

.proto 文件是这样的: https ://github.com/protobufjs/protobuf.js/blob/master/google/protobuf/type.proto

JSON 描述符是这样的: https ://github.com/protobufjs/protobuf.js/blob/master/google/protobuf/type.json

我想在 bigquery udf 上使用 protobuf 和使用 bq-udf-protobuf 的原因。 https://github.com/salrashid123/bq-udf-protobuf 所以,我想我需要为我的 SQL 准备像 JSON 描述符这样的句子。

0 投票
2 回答
109 浏览

sql - Bigquery 删除另一个表中存在的行

我想从表 t1 中删除表 t2 中存在的所有行。

表2如下

如前所述,我想删除表 t1 中存在于表 t2 中的所有行。

所以我使用了代码

但它不起作用,这里的理想解决方案是什么?我想要的结果是

谢谢

0 投票
3 回答
38 浏览

struct - BigQuery UDF 从数组中移除。如何匿名引用结构中的元素?

这会从数组中删除元素,但会将字段重命名为 v。

有一个更好的方法吗?或者我可以获得结构的第一个元素(例如 t[0])吗?

0 投票
1 回答
78 浏览

google-cloud-platform - 如何在 Bigquery UDF 中将函数作为参数传递?

这是我的问题:

如何在 Bigquery UDF 中将函数作为参数传递?

我想从两组私有函数创建一个 bigquery UDF 库:

  • 函数A、函数B、函数C
  • 功能1,功能2,功能3

我想公开从两组函数的每个组合构建的 mixin UDF。

我想避免源代码中的代码重复。

到目前为止,我发现的两个解决方案是:

解决方案1:

在函数内部使用具有两个字符串参数和一个 switch case 的唯一公共 UDF。

例如:

但是,此解决方案无法从 bigquery SQL 内省、运行前错误和警告检查中受益,并且涉及解析每一行的参数。


解决方案2:

使用在新函数中实例化每个案例的部署脚本

例如:

但是,这个方案需要更多的逻辑来部署脚本并生成很多函数。


有首选/最佳解决方案吗?

编辑:

我的代码太复杂,无法在此处显示,但这是一个具体示例。

0 投票
1 回答
35 浏览

google-bigquery - BigQuery:计算两个字段之间的连续字符串匹配

我有两张桌子:

  1. Master_Equipment_Index(别名mei)包含列 serial_num 和 model_num
  2. 包含 account_num、serial_num 和 model_num 列的客户设备索引(别名cei )

最初,当插入新的 serial_num 记录时,护栏没有实现要求在mei数据中输入模型属性。每当该serial_num 稍后与cei数据中的客户帐户相关联时,模型数据都会作为空值继续。

我想要做的是根据mei数据中其他类似serial_nums的最强顺序字符匹配,从mei数据中回填cei数据缺失的模型属性。

为了进一步澄清,我无权大规模更新meicei数据集。我可以正式提出变更请求,但我需要构建功能以证明其价值。因此,这必须在任何大规模行动查询更新之外完成。

cei.account_num cei.serial_num cei.model mei.serial_num mei.model serial_num_str_match 行号
123123123 B4I4SXT1 708 无效的 B4I4SXT1 78A 型号_Series1 8 1
123123123 B4I4SXT 1708 无效的 B4I4SXT AS34 型号_Series2 7 2

在上面的表格示例中,row_number 1 的连续字符串匹配计数高于 row_number 2。我只想返回 row_number 1 并使用mei .model 的值填充cei .model。

cei.account_num cei.serial_num cei.model mei.serial_num mei.model serial_num_str_match 行号
123123123 B4I4SXT1 708 型号_Series1 B4I4SXT1 78A 型号_Series1 8 1

给出一个规模的概念:
mei数据包含 100 万条记录,cei数据包含 50,000 条记录。我必须为每一个cei .account_num、cei .serial_num 执行这个字符串匹配,其中cei .model 数据为空。

使用 mac 地址,前 6 个字符标识供应商,我可以在下面的示例 SQL 中查看类似的内容,以帮助减少事务量 1:发生许多查找:

我查看了不同的选项,其中一些来自https://hoffa.medium.com/new-in-bigquery-persistent-udfs-c9ea4100fd83,但我没有找到我需要的。

任何见解或方向将不胜感激。

0 投票
1 回答
22 浏览

google-bigquery - `instanceof Date` 在 BigQuery UDF 中的行为不符合预期

任何人都知道为什么会出现以下结果false而不是true

退货false (意外)


解决方法:

退货true (如预期)

0 投票
1 回答
26 浏览

sql - 我可以将我的 SQL 代码(查询)作为 .sql 文档导出到我的计算机吗?

我被要求在 BigQuery 中分析一个数据集(直到现在才使用它),我需要将我的代码导出为 .sql 文档。有没有办法做到这一点?

0 投票
1 回答
234 浏览

google-bigquery - 传递一个数组到 bigquery sql 中的 js UDF

我正在尝试从某些表中获取数据,并将它们传递给 bigquery 中的 JavaScript UDF。

我编写了以下代码,但我似乎无法理解将我的选择结果存储在所需结构中的正确语法,然后如何将其传递给我的 udf 函数。