BigQuery 是一个完全托管的、可扩展的数据仓库,专为大规模数据处理而设计。它允许用户使用 SQL 查询快速分析大量数据。
BigQuery 支持多种数据类型,包括:
BigQuery 适用于各种大数据分析场景,包括但不限于:
假设我们有一个包含供应商销售数据的表 sales_data
,结构如下:
| 字段名 | 数据类型 | |--------------|-------------| | supplier_id | INT64 | | sale_amount | FLOAT64 | | sale_date | TIMESTAMP |
我们希望按月统计每个供应商的销售金额,并找出每个月销售金额排名前 N 的供应商。
WITH monthly_sales AS (
SELECT
supplier_id,
EXTRACT(MONTH FROM sale_date) AS month,
SUM(sale_amount) AS total_sale_amount
FROM
`your_dataset.sales_data`
GROUP BY
supplier_id,
EXTRACT(MONTH FROM sale_date)
),
ranked_sales AS (
SELECT
supplier_id,
month,
total_sale_amount,
ROW_NUMBER() OVER (PARTITION BY month ORDER BY total_sale_amount DESC) AS rank
FROM
monthly_sales
)
SELECT
supplier_id,
month,
total_sale_amount
FROM
ranked_sales
WHERE
rank <= N;
原因:
解决方法:
sale_date
进行分区,以提高查询效率。原因:
某些供应商的销售数据量远大于其他供应商,导致查询时数据分布不均。
解决方法:
supplier_id
进行分区,以平衡数据分布。通过以上方法,您可以有效地在 BigQuery 中按月统计供应商的销售金额,并找出每个月销售金额排名前 N 的供应商。
领取专属 10元无门槛券
手把手带您无忧上云