关于 load-sample-data
load-sample-data 是一项将 bigquery-public-data 中的示例表复制到指定 BigQuery 数据集的技能,面向需要测试或分析样例数据的用户。它为目标表统一添加 `sample_` 前缀,并在表名冲突时要求选择覆盖或跳过。
主要功能
- 01提供可选示例数据集
- 02使用 `bq cp` 复制表
- 03目标表添加 `sample_` 前缀
- 04检查表名冲突并询问处理方式
- 05复制后验证行数
适用场景
- 01为分析准备电商示例表
- 02加载 Google Analytics 会话样本
- 03导入 Austin 共享单车数据
- 04测试数据集中的查询
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ revosai/ skills --skill load-sample-data安装后在 Claude Code 中输入/load-sample-data确认已加载。
详细介绍
加载示例数据
使用 bq cp 将 bigquery-public-data 中的示例表复制到用户的数据集中。所有复制的表都以 sample_ 为前缀,便于识别和后续清理。
环境
运行任何命令前,先验证环境变量。如果其中任一变量为空,请让用户设置。
echo "Project: $GOOGLE_CLOUD_PROJECT"
echo "Dataset: $REVOS_BQ_DATASET"
$GOOGLE_CLOUD_PROJECT— BQ 项目 ID$REVOS_BQ_DATASET— 目标数据集
步骤 1:检查现有表
bq ls $REVOS_BQ_DATASET
如果存在表,请列出。这些表将在步骤 3 中用于处理名称冲突。
步骤 2:展示示例数据集目录
Available sample datasets:
1. thelook_ecommerce (default) — B2C e-commerce data
Tables: sample_users, sample_orders, sample_order_items, sample_products, sample_events, sample_inventory_items, sample_distribution_centers
Rows: ~100K users, ~300K orders
Good for: customer analytics, purchase funnels, product performance
2. google_analytics_sample — Web analytics session data
Tables: sample_ga_sessions (single table, one day snapshot)
Rows: ~900K sessions
Good for: web traffic analysis, user behavior, channel attribution
3. austin_bikeshare — Bikeshare trip and station data
Tables: sample_bikeshare_trips, sample_bikeshare_stations
Rows: ~1.3M trips
Good for: geospatial analysis, demand forecasting, utilization metrics
步骤 3:复制表
如果所选示例数据集中的任何表名与现有表(步骤 1 中列出)冲突,请在复制前询问用户,针对每个冲突选择覆盖还是跳过。跳过用户选择不覆盖的冲突表。
thelook_ecommerce
for table in users orders order_items products events inventory_items distribution_centers; do
echo "Copying sample_$table..."
bq cp -f bigquery-public-data:thelook_ecommerce.$table \
$GOOGLE_CLOUD_PROJECT:$REVOS_BQ_DATASET.sample_$table
done
google_analytics_sample
ga_sessions 表按日期分片。复制一个具有代表性的日期:
echo "Copying sample_ga_sessions..."
bq cp -f bigquery-public-data:google_analytics_sample.ga_sessions_20170801 \
$GOOGLE_CLOUD_PROJECT:$REVOS_BQ_DATASET.sample_ga_sessions
austin_bikeshare
for table in bikeshare_trips bikeshare_stations; do
echo "Copying sample_$table..."
bq cp -f bigquery-public-data:austin_bikeshare.$table \
$GOOGLE_CLOUD_PROJECT:$REVOS_BQ_DATASET.sample_$table
done
步骤 4:验证
for table in <copied_tables>; do
echo -n "$table: "
bq query --nouse_legacy_sql --format=csv \
"SELECT COUNT(*) FROM \`$GOOGLE_CLOUD_PROJECT.$REVOS_BQ_DATASET.$table\`" 2>/dev/null | tail -1
done
最终回复
Sample data loaded into $REVOS_BQ_DATASET.
Source: bigquery-public-data:<dataset_name>
Tables copied:
- <table_1>: <row_count> rows
- <table_2>: <row_count> rows
Next steps:
- Run "explore lakehouse" to inspect the data
- Run "create dbt transformations" to build bronze/silver/gold models
- Run "create cube" to generate Cube.dev semantic models
规则
- 使用
bq cp -f(不要使用CREATE TABLE AS SELECT)——速度更快、无需查询费用,并且可以保留架构。必须使用-f标志,以避免跨区域确认提示阻塞非交互式 shell。 - 显示每个表的复制进度。
- 清晰报告任何失败及其
bq错误消息。 - 始终为目标表添加
sample_前缀,以便轻松识别和清理示例数据。
评论
支持 Markdown