是否可以在 bigQuery 表中插入具有不同字段的行?

Posted

技术标签:

【中文标题】是否可以在 bigQuery 表中插入具有不同字段的行?【英文标题】:Is it posible to insert into the bigQuery table rows with different fields? 【发布时间】:2020-03-04 16:31:56 【问题描述】:

使用 bigQuery UI 我创建了新表 free_schem_table 并且没有设置任何架构,然后我尝试执行:

insert into my_dataset.free_schema_table (chatSessionId, chatRequestId,senderType,senderFriendlyName)
values ("123", "1234", "CUSTOMER", "Player")

但是 BigQuery UI 向我展示了写在哪里的弹出窗口:

Column chatSessionId is not present in table my_dataset.free_schema_table at [1:43]

我希望 BiqQuery 是 NoSql 存储,我应该能够插入具有不同列的行。

我怎样才能实现它?

附言

架构:

【问题讨论】:

【参考方案1】:

BigQuery 需要具有强类型的架构。

如果您需要免费的架构,BigQuery 中类似的事情是定义一个 STRING 类型的列并将 JSON 存储在其中。

JSON functions 稍后将帮助您从 JSON 字符串中提取字段,但如果您预定义架构并将数据保存在不同的列中,您将无法从 BigQuery 的优化中受益。

【讨论】:

我真的很困惑。但是 BigTable 呢?它是必需的架构吗? 我从未使用过 BigTable,但在概念上它更像您正在寻找的东西。

以上是关于是否可以在 bigQuery 表中插入具有不同字段的行?的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中插入具有重复记录列的 BigQuery 行

如何在 bigquery 中转储具有未知内容的 json?

BigQuery 将查询结果附加到具有必填字段的表中

BigQuery:仅当字段具有特定值时才获取表中的最新行

Bigquery 流式插入使用具有空字段的数据流

通过 bigquery-python 库向 BigQuery 插入大量数据