次のような米国国勢調査の CSV ファイルがあります。
"ZIP5","ZIP4","ZIP9","STATE CODE","STATE","COUNTY CODE","COUNTY NAME","CBSA CODE","CBSA TITLE","CBSA LSAD","METRO DIVISION CODE","METRO DIVISION TITLE","METRO DIVISION LSAD","CSA CODE","CSA TITLE","CSA LSAD"
"04841",,"04841","23","ME","013","Knox County","40500","Rockland, ME","Micropolitan Statistical Area",,,,,,
"04843",,"04843","23","ME","013","Knox County","40500","Rockland, ME","Micropolitan Statistical Area",,,,,,
"04846",,"04846","23","ME","013","Knox County","40500","Rockland, ME","Micropolitan Statistical Area",,,,,,
"04847",,"04847","23","ME","013","Knox County","40500","Rockland, ME","Micropolitan Statistical Area",,,,,,
"04848",,"04848","23","ME","027","Waldo County",,,,,,,,,
"04849",,"04849","23","ME","027","Waldo County",,,,,,,,,
"04850",,"04850","23","ME","027","Waldo County",,,,,,,,,
"04851",,"04851","23","ME","013","Knox County","40500","Rockland, ME","Micropolitan Statistical Area",,,,,,
"04852",,"04852","23","ME","015","Lincoln County",,,,,,,,,
ファイルには 200 万件を超えるレコードがあります。ほとんどのレコードでは、すべてのフィールドにデータがありません。
上記の CSV ファイルに対して定義した MySQL レコード レイアウトは次のとおりです。
+----------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| ZIP5 | varchar(5) | NO | | NULL | |
| ZIP4 | varchar(5) | NO | | NULL | |
| ZIP9 | varchar(10) | NO | | NULL | |
| STATE_CODE | varchar(2) | NO | | NULL | |
| STATE | varchar(2) | NO | | NULL | |
| COUNTY_CODE | varchar(3) | NO | | NULL | |
| COUNTY_NAME | varchar(50) | NO | | NULL | |
| CBSA_CODE | varchar(5) | NO | | NULL | |
| CBSA_TITLE | varchar(50) | NO | | NULL | |
| CBSA_LSAD | varchar(50) | NO | | NULL | |
| METRO_DIVISION_CODE | varchar(5) | NO | | NULL | |
| METRO_DIVISION_TITLE | varchar(50) | NO | | NULL | |
| METRO_DIVISION_LSAD | varchar(50) | NO | | NULL | |
| CSA_CODE | varchar(3) | NO | | NULL | |
| CSA_TITLE | varchar(50) | NO | | NULL | |
| CSA_LSAD | varchar(50) | NO | | NULL | |
+----------------------+------------------+------+-----+---------+----------------+
(ZIP5 を主キーとして定義する必要があることに気付きましたか?)
CSV ファイルに空のフィールドがある場合は、\N に変更する必要があると読みましたが、これを簡単に行う方法はありますか? これを行う PHP プログラムを作成することもできますが、200 万件を超えるレコードでは非常に長い時間がかかり、私のサーバーには十分な RAM がありません。
この CSV ファイルを MySQL に最も簡単にインポートするにはどうすればよいですか? これを行うMySQLのLOADコマンドにいくつかのパラメータがありますか? 現在の動作方法では、ZIP5 にはデータの切り捨てがあり、MySQL を見ると、郵便番号に引用符があり、最初の 4 桁しかないと不平を言っています。ありがとう!