bq 命令行工具 - 如何插入具有嵌套字段的大查询表?
Posted
技术标签:
【中文标题】bq 命令行工具 - 如何插入具有嵌套字段的大查询表?【英文标题】:bq command line tool - How to insert into Big query tables that has nested fields? 【发布时间】:2016-12-17 06:36:53 【问题描述】:我有三个 BigQuery 表,如下所示
员工
Employee_id | Department_id | Location_id | Name | Age
部门
Department_id | Department_Name | Department_Code
位置
Location_id | Country | State | City
下面的查询用于连接所有三个表,
SELECT
e.Employee_id,
e.Name,
e.Age,
e.Department_id,
d.Department_Name,
d.Department_Code,
l.Location_id,
l.Country ,
l.State,
l.City
FROM Employee e
JOIN Department d
ON e.Department_id = d. Department_id
JOIN Location l
ON e.Location_id = l.Location_id
如何使用 bq 命令行实用程序(bq 查询命令)将此结果集插入到具有嵌套字段的以下架构的 BigQuery 表中?
【问题讨论】:
【参考方案1】:如何将此结果集插入到具有嵌套字段的以下架构的 BigQuery 表中?
以下是BigQuery Standard SQL
SELECT
e.Employee_id,
e.Name,
e.Age,
STRUCT<Department_id STRING, Department_Name STRING, Department_Code STRING>(
e.Department_id, d.Department_Name, d.Department_Code) AS Department,
STRUCT<Location_id STRING, Country STRING, State STRING, City STRING>(
l.Location_id, l.Country, l.State, l.City) AS Location
FROM Employee e
JOIN Department d
ON e.Department_id = d. Department_id
JOIN Location l
ON e.Location_id = l.Location_id
...使用 bq 命令行实用程序(bq 查询命令)?
bq query --use_legacy_sql=false --append_table --destination_table 'dataset.table' '**`above query`**'
查看here和bq-command-line-tool了解更多详情
【讨论】:
谢谢。按预期工作。但是如何在查询中表示多级(嵌套字段内的嵌套记录)嵌套字段? 自己解决了。应表示如下,SELECT field1, field2, Struct<Parent_id String, Child Struct< id INT64, name String> > ("Parent_id", (1,"name")) FROM Your_Table
旧版 SQL 不支持结构。如何在 Legacy SQL 中实现相同的功能?以上是关于bq 命令行工具 - 如何插入具有嵌套字段的大查询表?的主要内容,如果未能解决你的问题,请参考以下文章
我可以使用 BQ 命令行工具从 Windows 命令提示符中的文件运行查询吗?
bq 命令行工具使用 --format=none 暂时挂起吃内存
BQ 命令行工具出错:无法在没有项目 ID 的情况下启动作业
BigQuery 从 bq 命令行工具加载数据 - 如何跳过标题行