load-sample-data について
load-sample-dataは、bigquery-public-dataのサンプルテーブルを指定したBigQueryデータセットにコピーするスキルです。テストや分析用データの準備に使え、コピー先には`sample_`を付け、名前が重複する場合は上書きかスキップかを確認します。
主な機能
- 01サンプルデータセットの一覧提示
- 02`bq cp`によるテーブルのコピー
- 03コピー先テーブルへの`sample_`付与
- 04テーブル名の重複確認と対処方法の質問
- 05コピー後の行数確認
活用シーン
- 01分析用のECサンプルテーブルを準備
- 02Google Analyticsのセッションサンプルを読み込み
- 03Austinの自転車シェアデータを取り込み
- 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_のプレフィックスを付けてください。
コメント
Markdown 対応