gpt4 book ai didi

google-bigquery - 将数百个 bigquery 表合并为一个

转载 作者:行者123 更新时间:2023-12-02 09:32:17 25 4
gpt4 key购买 nike

我有数百个 BigQuery 表,想将它们全部合并为一个表。我开始尝试列出我拥有的表。我试过 bq ls,但它可能只显示 20 - 50 个表。另外,我如何在 Bigquery 中执行类似于 SELECT * INTO ... 的操作。

我的应用程序日志有很多表,例如:

  • 博客.2015060500
  • 博客.2015060501
  • 博客.2015060502
  • 博客.2015060601
  • 博客.2015060701
  • 博客.2015060702

最佳答案

要实现 SELECT * INTO ...,您可以使用逗号从所有表中执行 SELECT *,并根据 https://cloud.google.com/bigquery/bq-command-line-tool#createtablequery 指定目标表。

例如:

DATASET=[YOUR_DATASET_NAME]
TABLES=$(bq ls --max_results=1000 --format=csv $DATASET | \
grep -v "tableId,Type" | cut -d "," -f 1 | tr "\n" ",")
bq --dataset_id=$DATASET query --destination_table=$DATASET.merged \
"select * from $TABLES"

注意:如果表格有公共(public)字段,但它们没有完全对齐,您必须列出公共(public)字段而不是 *

如果您有特定的表名模式,您还可以在查询中使用通配符 https://cloud.google.com/bigquery/query-reference#tablewildcardfunctions

例如匹配示例网络日志数据集中的 201506* 表

DATASET=weblog
PREFIX=201506
bq query --destination_table=$DATASET.merged query "SELECT * FROM
(TABLE_QUERY($DATASET, 'REGEXP_MATCH(table_id, r\"^"$PREFIX"[\d]{4}\")'))"

关于google-bigquery - 将数百个 bigquery 表合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com