BigQuery UDF 内部错误

2023-12-09

我们在 BigQuery 中有一个简单的 UDF,它会以某种方式抛出一个不断返回的错误

Query Failed
Error: An internal error occurred and the request could not be completed.

该查询只是尝试使用 UDF 执行 SHA256。

SELECT
  input AS title,
  input_sha256 AS title_sha256
FROM
  SHA256(
      SELECT
        title AS input
      FROM
        [bigquery-public-data:hacker_news.stories]
      GROUP BY
        input 
  )
LIMIT
  1000

内联 UDF 粘贴在下面。然而,我无法发布完整的 UDF,因为 StackOverflow 抱怨帖子中的代码过多。可以看到完整的UDF这个要点.

function sha256(row, emit) {
  emit(
      {
        input: row.input,
        input_sha256: CryptoJS.SHA256(row.input).toString(CryptoJS.enc.Hex)
      }
  );
}

bigquery.defineFunction(
  'SHA256',                           // Name of the function exported to SQL
  ['input'],                    // Names of input columns
  [
      {'name': 'input', 'type': 'string'},
      {'name': 'input_sha256', 'type': 'string'}
  ],
  sha256                       // Reference to JavaScript UDF
);

不确定是否有帮助,但 Job-ID 是

bigquery:bquijob_7fd3b51c_153c058dc7c

看起来有类似的问题:

https://code.google.com/p/google-bigquery/issues/detail?id=478

简短的回答 - 这是一个与内存分配相关的问题,我通过自己的测试发现并今天修复了,但需要一段时间才能流向生产。

答案稍长一些 - 我们今天刚刚针对一个问题推出了修复程序,即用户在将 UDF 扩展到较大数量的行时遇到“内存不足”问题,尽管 UDF 在较小数量的行上会成功。满足该条件的查询现在在我们的内部/测试树上运行良好。但是,由于公共 BigQuery 主机的流量负载要高得多,因此执行 UDF (V8) 的 JavaScript 引擎在生产环境中的行为与在内部树中的行为有所不同。具体来说,存在一个新的内存分配错误,之前的一些 OOMing 作业现在遇到了该错误,直到查询在完全加载的树上运行时我们才能观察到该错误。

这是一个可以快速修复的小错误,但我们最好让它贯穿我们的常规测试和质量保证周期。假设候选人没有出现其他问题,这应该会在大约一周内将修复程序投入生产。这对你来说可以接受吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BigQuery UDF 内部错误 的相关文章

随机推荐

  • 如何维护数据库结构的修订控制?

    跟踪项目数据库结构更改的最简单方法是什么 当我更改数据库的某些内容 例如 添加新表 向现有表添加新字段 添加索引等 时 我希望将其传播到团队的其他成员 并最终传播到生产服务器 最小的麻烦和努力 目前 解决方案相当薄弱 并且依赖于人们记住做事
  • 为什么 TypeScript 无法从过滤数组推断类型?

    下面是一些示例代码 TypeScript 推断类型validStudents as Students 对于任何阅读代码的人来说 显而易见的是 因为所有无效记录都被过滤掉了 validStudents可以安全地被认为具有某种类型ValidSt
  • 递归执行广度优先搜索

    假设您想实现二叉树的广度优先搜索递归地 你会怎样做呢 是否可以仅使用调用堆栈作为辅助存储 我假设这只是某种思维练习 甚至是一个技巧作业 面试问题 但我想我可以想象一些奇怪的场景 由于某种原因你不允许任何堆空间 一些非常糟糕的习惯 内存管理器
  • 在VBA中修改现有的excel连接名称

    我需要更新 Excel 工作簿的 SQL 连接的连接名称 这是我的尝试 我已经能够通过执行标准替换来修改连接字符串和命令文本 Sub ConnectionString modify Dim i As Long Dim cnt As Long
  • 我想使用 .htaccess 从网址中删除问号和 .php 扩展名

    我在 htaccess 中遇到重定向 URL 问题 我想从 URL 中删除 php 和问号 例如 www example com test php id 12 to www example com test 12需要这样的格式 我尝试在我的
  • 获取QTextEdit选择的边界框

    我试图获取存储在列表中的一系列文本选择的边界框 边界框是可以包含整个选择的最小矩形 列表中的每个项目都有一个起始点和结束点 以字符数为单位从起始点开始计算QTextEdit窗口和字母标识符 QTextEdit cursorRect curs
  • DT 默认折叠所有行组

    我试图默认情况下使数据表中的所有行组折叠 我目前的实施 library shiny library DT ui lt fluidPage Application title titlePanel Collapse Expand table
  • 如何从 PHP 网站向 iOS 和 Android 发送推送通知?

    如何从 PHP 网站向 iOS 设备和 Android 设备发送推送通知 有这方面的教程吗 您可以使用多种预制服务来推送通知 例如 Firebase Messaging One Signal 等 有关与 PHP 集成的 Firebase 云
  • 在 iPhone OS 4.0 中以编程方式获取自己的电话号码

    我正在为越狱手机开发一个iPhone应用程序 在这个应用程序中我想获取用户的电话号码 我浏览了整个 stackoverflow com 并找到了一些相关答案 但所有这些答案都已过时 并且不再适用于 iOS 4 0 这个问题最著名的解决方案是
  • 简单的 CSS 转换 - 没有任何效果

    我正在处理一个具有悬停时消失的渐变的图像 但是 我无法对此进行转换 我已经尝试了我所知道的所有 webkit 转换 但它似乎不起作用 这是 HTML a href http calvarygigharbor com heavenly hit
  • 当分支未显示在 gitbranch -l 中时更改分支

    当我克隆远程存储库时 我使用了以下命令 git clone b mybranch single branch git sub domain com repo git 之后 当我做了一个git branch l它只是向我展示了我克隆的分支 现
  • 对象引用丢失,但保留资源

    IndentedTextWriter tw new IndentedTextWriter internalTW tw 引用的对象丢失 但相关资源未在此处处置 TW 是文本编写器 其中internalTW是TextWriter OleDbCo
  • 使用验证集、训练集和测试集之间的顺序

    我试图了解机器学习中模型评估和验证的过程 具体来说 必须按什么顺序以及如何使用训练 验证和测试集 假设我有一个数据集 我想使用线性回归 我在各种多项式次数 超参数 之间犹豫不决 In 这篇维基百科文章 这似乎暗示顺序应该是 将数据分为训练集
  • Razor 引擎找不到视图

    Issue 我目前有一个 NET Core 库 用于将 Razor 页面呈现为 HTML 电子邮件 我正在关注本教程 编译时没有错误 但在运行时出现以下错误 无法找到视图 Views Emails NewOrder NewOrder csh
  • Gruntwiredep 没有连接一些 Bower 组件

    我正在使用 yeoman webapp 生成器生成一个模板来开始我的工作 此时 我的 Bower json 看起来像这样 name sample project private true dependencies bootstrap sas
  • 通过正则表达式替换 StringBuilder 中的文本

    我想替换 StringBuilder 中的一些文本 这个怎么做 在这段代码中我得到了java lang StringIndexOutOfBoundsException与matcher find StringBuilder sb new St
  • 如何在不通过 CMD 提供 VM 参数的情况下执行 JAVA FX 11 JAR

    Java JDK 12构建工具 Maven集成开发环境 Eclipse操作系统 Windows 我有一段简单的 java FX 11 代码 它显示一个简单的空白屏幕 我已经使用 eclipse 部署了一个可执行 jar 当我使用 CMD 给
  • Laravel 5 中 JavaScript 的部分视图

    我有多个部分刀片文件 它们都只需要一点点 JavaScript 理想情况下 我希望部分加载它需要的 JS 而普通 JS 不会包含它 我知道你可以将它们全部加载到一个大的 JS 文件中 但我想知道是否有一种方法可以提供更优雅的解决方案 我希望
  • 如何允许 python 信任我的服务器的 TLS 自签名证书:ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败

    这不是重复的这个帖子 我尝试了那里的解决方案 但对我的情况没有任何作用 我使用的是 Windows 和 Python 3 6 5 我有一个用于 TLS 客户端的 python 脚本 我需要连接的服务器使用自签名证书 当我尝试使用脚本连接到它
  • BigQuery UDF 内部错误

    我们在 BigQuery 中有一个简单的 UDF 它会以某种方式抛出一个不断返回的错误 Query Failed Error An internal error occurred and the request could not be c