在 BigQuery 中基于另一个表的架构创建一个空表

问题描述

我们有一个 BigQuery 数据集,其中包含一些很长的表(包含数据)列表。由于我正在接管一个数据管道,我想通过进行测试来熟悉它,因此我想复制这些数据集/表而不复制截断表。本质上,我想使用它们的模式在测试数据集中重新创建这些表。如何在 bq 客户端中完成此操作?

解决方法

考虑到您不想复制数据而是模式,您有几个选择:

1.- 提取每个表的架构,然后创建新的空表。

$ bq show --schema --format=prettyjson [PROJECT_ID]:[DATASET].[TABLE] > [SCHEMA_FILE]

$ bq mk --table [PROJECT_ID]:[NEW_DATASET].[TABLE] [SCHEMA_FILE]

2.- 使用 LIMIT 0 运行查询并设置目标表。

bq query "SELECT * FROM [DATASET].[TABLE] LIMIT 0" --destination_table [NEW_DATASET].[TABLE]

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...