【发布时间】:2018-08-09 20:52:43
【问题描述】:
每个周末我都会向 google bucket 添加一些文件,然后从命令行运行一些东西来用新数据“更新”一个表。
“更新”是指我删除表,然后使用bucket 中的所有文件(包括新文件)重新制作它。
我所做的一切都是使用python 在Windows 命令行中执行以下命令:
bq mk --table --project_id=hippo_fence-5412 mouse_data.partition_test gs://mybucket/mouse_data/* measurement_date:TIMESTAMP,symbol:STRING,height:FLOAT,weight:FLOAT,age:FLOAT,response_time:FLOAT
这个表越来越大(>200 GB),实验室使用分区表会便宜得多。
我已尝试以几种方式对表进行分区,包括official docs 推荐的方式,但我无法使其工作。
我最近尝试的命令只是插入--time_partitioning_type=DAY,比如:
bq mk --table --project_id=hippo_fence-5412 --time_partitioning_type=DAY mouse_data.partition_test gs://mybucket/mouse_data/* measurement_date:TIMESTAMP,symbol:STRING,height:FLOAT,weight:FLOAT,age:FLOAT,response_time:FLOAT
但这不起作用,给了我错误:
FATAL Flags parsing error: Unknown command line flag 'time_partitioning_type'
我怎样才能做到这一点?
【问题讨论】:
-
您确定可以在命令行中提供数据吗? “gs://mybucket/mouse_data/*”?该命令的用法是“bq mk table_name table_schema”。
-
所以命令语法应该是:bq [--global_flags]
[--command_flags] [args] eg: bq --project_id=... mk --table=... --time_partitioning_type=...
标签: command-line google-bigquery gsutil