mcpField
L
load-sample-data

load-sample-data

github.com/revosai数据与数据库0123 次安装5 天前更新
代码仓库

关于 load-sample-data

load-sample-data 是一项将 bigquery-public-data 中的示例表复制到指定 BigQuery 数据集的技能,面向需要测试或分析样例数据的用户。它为目标表统一添加 `sample_` 前缀,并在表名冲突时要求选择覆盖或跳过。

主要功能

  1. 01提供可选示例数据集
  2. 02使用 `bq cp` 复制表
  3. 03目标表添加 `sample_` 前缀
  4. 04检查表名冲突并询问处理方式
  5. 05复制后验证行数

适用场景

  1. 01为分析准备电商示例表
  2. 02加载 Google Analytics 会话样本
  3. 03导入 Austin 共享单车数据
  4. 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