Google bigquery 在BigQuery上复制表,而不在目标表上添加新字段

Google bigquery 在BigQuery上复制表,而不在目标表上添加新字段,google-bigquery,Google Bigquery,所以我在BigQuery中有一个表(比如说tableA),我想要一个重复的表(tableB),但不包括原始表中的一些字段。我试图将架构放在表B上,只包含必要的字段(我排除了我不想复制的字段),然后输出一个错误,前提是架构与表不匹配。。。无法添加字段… 然后我添加了元数据,如BigQuery的nodejs文档参考中的: const元数据={ createDisposition:“CREATE_NEVER”, writeDisposition:“WRITE_APPEND” }; copy(table

所以我在BigQuery中有一个表(比如说
tableA
),我想要一个重复的表(
tableB
),但不包括原始表中的一些字段。我试图将架构放在表B上,只包含必要的字段(我排除了我不想复制的字段),然后输出一个错误
,前提是架构与表不匹配。。。无法添加字段…
然后我添加了元数据,如BigQuery的nodejs文档参考中的:

const元数据={
createDisposition:“CREATE_NEVER”,
writeDisposition:“WRITE_APPEND”
};
copy(tableB,元数据,(err,apisresponse)=>{})

但它最终复制了所有字段,并创建了我甚至不想复制的字段。 因此,我想知道是否有人知道不允许BigQuery复制和创建字段的选项,或者我是否应该加载
tableA
中的所有数据,然后将它们重新插入
tableB
,正如您所见,您可以在
BigQuery
在本例中,您可以使用
BigQuery CLI
创建一个查询,选择除不希望复制的字段以外的所有内容。例如:

bq query \
--destination_table <destination_dataset.destination_table> \
--use_legacy_sql=false \
'SELECT
  <fields_that_you_want>
FROM
  <your_dataset.your_table>`
bq查询\
--目的地表\
--使用\u legacy\u sql=false\
"选择,
从…起
`
如果希望覆盖表目标,还可以使用标志
--replace
;如果希望将查询结果追加到表中,还可以使用标志
--append

在本参考资料中,您还可以在一些编程语言和
bigqueryapi

我希望它有帮助

正如您所看到的,您可以在
BigQuery
在本例中,您可以使用
BigQuery CLI
创建一个查询,选择除不希望复制的字段以外的所有内容。例如:

bq query \
--destination_table <destination_dataset.destination_table> \
--use_legacy_sql=false \
'SELECT
  <fields_that_you_want>
FROM
  <your_dataset.your_table>`
bq查询\
--目的地表\
--使用\u legacy\u sql=false\
"选择,
从…起
`
如果希望覆盖表目标,还可以使用标志
--replace
;如果希望将查询结果追加到表中,还可以使用标志
--append

在本参考资料中,您还可以在一些编程语言和
bigqueryapi


我希望它有助于从nodejs发送查询,从下面选择一个更简单的查询

CREATE TABLE table_b AS
SELECT * EXCEPT(col1_you_dont_want, col2_you_dont_want)
FROM table_a


从nodejs发送一个查询,从下面选择一个更简单的查询

CREATE TABLE table_b AS
SELECT * EXCEPT(col1_you_dont_want, col2_you_dont_want)
FROM table_a


所以您只想复制另一个表中的一些列?您是否需要在Node Js中执行此操作,或者您是否对其他解决方案持开放态度?是的,有些列,但这里的一些列类似于1000多个列,而不是50个或更少。我需要在NodeJS中这样做,因为这是客户机想要的,而且,他们希望频繁地执行该复制,而不仅仅是一次。您想只复制另一个表中的一些列吗?您是否需要在Node Js中执行此操作,或者您是否对其他解决方案持开放态度?是的,有些列,但这里的一些列类似于1000多个列,而不是50个或更少。我需要在NodeJS中这样做,因为这是客户机想要的,而且,他们想要频繁地执行该拷贝,而不是只执行一次