シードデータを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 csvthen.import file.csv table - Pandas:
pd.read_csv('file.csv') - Excel / Google Sheets: ファイルを直接開くかインポート
CSVを選択すべきとき
CSVは、コンシューマーがスプレッドシート、データパイプライン、またはSQLやJSONを受け付けないバルクインポートツールの場合に最適な形式です。大規模データセットで最もコンパクトな形式でもあります。
ユースケース
データチームがCSVファイルからデータウェアハウスにレコードをロードするETLパイプラインをテストするためにCSV形式のサンプルデータが必要です。適切なNULL処理と正しくエスケープされた特殊文字を持つリアルなデータが必要です。