当前位置: 首页 > 知识库问答 >
问题:

BigQuery中从可空到必需的端口字段

王德华
2023-03-14

我试图将一个BigQuery表移动到一个新的模式中,该模式有一些额外的新的可空字段,其中字段< code>f已成为必需的(它们在旧模式中是可空的)。)

我试图通过命令使用新架构更新表

< code>bq更新

我得到了错误

更新操作中的BigQuery错误:提供的架构与表不匹配

作为第二次尝试,我创建了一个带有新字段的临时空表,然后尝试将来自查询的数据追加到该表中(从旧表中选择),但是我得到了错误:

架构更新无效。字段f已将模式从必需更改为可为空。

是否有一种方法可以轻松完成此迁移?当然,我可以忽略表中字段<code>f</code>实际上为空的行。如果BigQuery能够从查询中推断出这一点,那就太好了。我试着去做

从old_table中选择 * 其中 f 不为空

并将结果附加到具有新模式的表中,但这不起作用。

共有2个答案

微生毅然
2023-03-14

使用第二种方法 - 创建新表并在其中追加数据。但是使用标准SQL方言。它将避免“更改模式”错误。当然,如果您尝试插入 NULL,查询仍会失败。

袁奇逸
2023-03-14

尝试使用空字符串,其中 f 为空。

CASE
    WHEN f IS NULL THEN ""
    ELSE f
END as f
 类似资料:
  • 我的avdl是这样定义的, 但是在事件发布和模式注册之后,我想让<code>street</code>类型也允许<code>null</code>值。我希望更改前后兼容。我该怎么做?在record完成之前定义一个新的名称空间会吗?(https://github.com/ga4gh/ga4gh-schemas/issues/344#unions或https://docs.oracle.com/dat

  • 我读了很多问题和答案,但没有找到任何解决方案。也许我的问题不对,但我需要一些指导。我在Linux中使用串行端口,从我的Arduino设备读取数据。每当我想从Arduino向Linux发送数据时,我首先发送两个字节,这表示将从Arduino发送的总字节数。我将这两个字节转换为整数值,并开始从串行端口读取数据。比如说,我想把300字节从Ardiuno发送到Linux,我只需要先写{1,44},然后用下

  • 有没有办法在接口中指明可选方法(以便合同只指明要给出的参数的数量/类型)? 请对这个问题给予更多的理解和见解,并指出一个解决方案?例如,参见这个讨论:Java界面中的可选方法 在应用程序中,我使用连接到持久性(原则)的侦听器。所以我使用了以下几种方法: 等等。 现在,在重构时,由于有太多的实体(要持久化的对象),我决定将这些方法的部分拆分成单独的类。 然而,并不是所有人都需要所有的预。。。和后。。

  • 主要内容:PHP - 必需字段,PHP - 显示错误信息本章节我们将介绍如何设置表单必需字段及错误信息。 PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"名字", "E-mail", 和 "性别" 字段是必需的,各字段不能为空。 字段 验证规则 名字 必需。 + 只能包含字母和空格 E-mail 必需。 + 必需包含一个有效的电子邮件地址(包含"@"和".") 网址 可选。 如果存在,它必需包含一个有效的URL 备注 可选。多

  • 对于我的项目,最好在组件道具中传递null值,以指示未指定的值(如果愿意,则为“已知未知”)。以这种方式使用null是我们团队的惯例。 通过组件prope类型定义,我希望为prop传递一个值,但允许它为null(而不是未定义),而不会触发警告的React prop类型验证。 所以用输入输出的方式重申一下: 属性值=字符串/数字/对象/等-- 这种行为如何才能完成? 一个想法是编写一些替代。is必需