根据 BigQuery 中另一个 table 的架构创建一个空的 table
Creating an empty table based on another table's schema in BigQuery
我们有一个 BigQuery 数据集,其中包含一长串表(包含数据)。由于我接管了一个数据管道,我想通过测试来熟悉它,所以我想复制那些 dataset/tables 而不复制截断表。本质上,我想使用它们的模式在测试数据集中重新创建这些表。如何在 bq
客户端中完成此操作?
考虑到您不想复制数据但复制架构,您有几个选择:
1.- 提取每个 table 的架构,然后创建新的空架构。
$ bq show --schema --format=prettyjson [PROJECT_ID]:[DATASET].[TABLE] > [SCHEMA_FILE]
$ bq mk --table [PROJECT_ID]:[NEW_DATASET].[TABLE] [SCHEMA_FILE]
2.- 运行 具有 LIMIT 0 并设置目标的查询 table。
bq query "SELECT * FROM [DATASET].[TABLE] LIMIT 0" --destination_table [NEW_DATASET].[TABLE]
我们有一个 BigQuery 数据集,其中包含一长串表(包含数据)。由于我接管了一个数据管道,我想通过测试来熟悉它,所以我想复制那些 dataset/tables 而不复制截断表。本质上,我想使用它们的模式在测试数据集中重新创建这些表。如何在 bq
客户端中完成此操作?
考虑到您不想复制数据但复制架构,您有几个选择:
1.- 提取每个 table 的架构,然后创建新的空架构。
$ bq show --schema --format=prettyjson [PROJECT_ID]:[DATASET].[TABLE] > [SCHEMA_FILE]
$ bq mk --table [PROJECT_ID]:[NEW_DATASET].[TABLE] [SCHEMA_FILE]
2.- 运行 具有 LIMIT 0 并设置目标的查询 table。
bq query "SELECT * FROM [DATASET].[TABLE] LIMIT 0" --destination_table [NEW_DATASET].[TABLE]