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分析用のECサンプルテーブルを準備
  2. 02Google Analyticsのセッションサンプルを読み込み
  3. 03Austinの自転車シェアデータを取り込み
  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 テーブルは日付ごとにシャーディングされています。代表的な 1 日分をコピーしてください。

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

ルール

  • CREATE TABLE AS SELECT ではなく bq cp -f を使用してください。高速で、クエリ料金がかからず、スキーマも保持されます。非対話型シェルで処理を妨げるリージョン間確認プロンプトを回避するには、-f フラグが必須です。
  • コピーする各テーブルの進行状況を表示してください。
  • 失敗が発生した場合は、bq のエラーメッセージを明示して報告してください。
  • サンプルデータを簡単に識別してクリーンアップできるよう、コピー先のテーブルには必ず sample_ のプレフィックスを付けてください。

コメント