シードデータをCSVとしてエクスポートする

スプレッドシートインポート、データパイプラインテスト、バルクロード用にCSV形式でシードデータを生成します。NULL値と特殊文字の処理方法を学びます。

Output Formats

詳細な説明

CSV出力形式

CSV出力形式はヘッダー行を持つカンマ区切り値を生成します。この形式はスプレッドシート、データベース、ETLツール、データ分析ライブラリで広くサポートされています。

単一テーブル出力

id,first_name,last_name,email,is_active,created_at
1,James,Smith,james.smith42@gmail.com,true,2023-07-15 14:27:38
2,Emily,Garcia,emily.garcia17@outlook.com,false,2022-11-03 09:45:12
3,Robert,,robert.jones5@yahoo.com,true,2024-01-20 18:03:51

複数テーブル出力

スキーマに複数テーブルが含まれる場合、各テーブルはコメントヘッダーで区切られます:

# Table: users
id,first_name,...

# Table: products
id,name,...

特殊値の処理

シナリオ CSV表現
NULL値 空フィールド(カンマ間にコンテンツなし)
Boolean TRUE true
Boolean FALSE false
カンマを含む文字列 ダブルクォートで囲む:"New York, NY"
クォートを含む文字列 クォートを二重にしてエスケープ:"He said ""hello"""
改行を含む文字列 ダブルクォートで囲む

CSV固有の考慮事項

SQL INSERT出力とは異なり、CSV形式はオートインクリメントIDを含むすべてのカラムを含みます。CSVインポートツールは通常完全なレコードを必要とし、データベースが自動生成する場合でも明示的なIDが必要な場合があるためです。

一般的なインポート先

  • PostgreSQL: COPY table FROM 'file.csv' CSV HEADER;
  • MySQL: LOAD DATA INFILE 'file.csv' INTO TABLE ...
  • SQLite: .mode csv then .import file.csv table
  • Pandas: pd.read_csv('file.csv')
  • Excel / Google Sheets: ファイルを直接開くかインポート

CSVを選択すべきとき

CSVは、コンシューマーがスプレッドシート、データパイプライン、またはSQLやJSONを受け付けないバルクインポートツールの場合に最適な形式です。大規模データセットで最もコンパクトな形式でもあります。

ユースケース

データチームがCSVファイルからデータウェアハウスにレコードをロードするETLパイプラインをテストするためにCSV形式のサンプルデータが必要です。適切なNULL処理と正しくエスケープされた特殊文字を持つリアルなデータが必要です。

試してみる — Database Seed Generator

フルツールを開く