将一个嵌套 table 插入 BQ 到另一个不同的嵌套 table

Insert into BQ one nested table into another different nested table

我正在尝试将一个嵌套的 BigQuery table 复制到另一个嵌套的 table 中,然后 运行 出现以下错误查询列 2 ​​的类型为 ARRAY>,其类型为 STRUCT

查询:

INSERT INTO `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table2` 
  (cinema,
  director.movie.Name,
  director.movie.Budget)
SELECT
  cinema,
  movie.Name,
  movie.Budget
FROM
`<GCP_PROJECT_NAME>.Dataset.Table`

您不能插入部分结构。您需要在您的 BigQuery table 中提供完整的结构(这将在未来使用新的 JSON 友好引擎进行更改)

INSERT INTO `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table2` 
  (cinema,
  director)
SELECT
  cinema,
  STRUCT(movie as director)
FROM
`<GCP_PROJECT_NAME>.Dataset.Table`

EDIT1

您不能插入部分数据。您需要在每一行中插入完整的对象


INSERT INTO `<GCP_PROJECT_NAME>.Test_Tables.Nested_Person_Table2` 
  (cinema,
  director)
SELECT
  cinema,
  STRUCT([STRUCT(mo.Name as Name, mo.Budget as Budget)] as movie, "" as language, "" as English, "" as other, STRUCT("","") as source) as director
FROM
`<GCP_PROJECT_NAME>.Dataset.Table`, UNNEST(movie) as mo

PS: 语言不应该是你的目标 table 中包含英语和其他内容的记录?