US Department of Transportation が公開してるデータセットを Postgres12 にロードしたのでメモ。
まずは下記からデータをダウンロードする。
On-Time : Reporting Carrier On-Time Performance (1987-present)
右上のフィルターで Geography, Year, Period を選択するのと、あとはデータセットに含めたいカラムをチェックする。
全てのカラムがほしいので 全部チェックした。
そして Download をクリックすると zip が落ちてくる。
解凍後、CSV ファイルのヘッダ行と末尾の余計なカンマを sed で削除する。
cat data.csv |sed 1d | sed 's/,$//' > data2.csv
そしてテーブルを作る。
各カラムの桁数が不明なのでやや適当w
CREATE TABLE airline.flights ( YEAR integer, QUARTER integer, MONTH integer, DAY_OF_MONTH integer, DAY_OF_WEEK integer, FL_DATE varchar(10), OP_UNIQUE_CARRIER varchar(10), OP_CARRIER_AIRLINE_ID integer, OP_CARRIER varchar(10), TAIL_NUM varchar(10), OP_CARRIER_FL_NUM varchar(10), ORIGIN_AIRPORT_ID integer, ORIGIN_AIRPORT_SEQ_ID integer, ORIGIN_CITY_MARKET_ID integer, ORIGIN varchar(10), ORIGIN_CITY_NAME varchar(100), ORIGIN_STATE_ABR varchar(10), ORIGIN_STATE_FIPS varchar(10), ORIGIN_STATE_NM varchar(50), ORIGIN_WAC integer, DEST_AIRPORT_ID integer, DEST_AIRPORT_SEQ_ID integer, DEST_CITY_MARKET_ID integer, DEST varchar(10), DEST_CITY_NAME varchar(100), DEST_STATE_ABR varchar(10), DEST_STATE_FIPS varchar(10), DEST_STATE_NM varchar(50), DEST_WAC integer, CRS_DEP_TIME varchar(10), DEP_TIME varchar(10), DEP_DELAY numeric, DEP_DELAY_NEW numeric, DEP_DEL15 numeric, DEP_DELAY_GROUP numeric, DEP_TIME_BLK varchar(20), TAXI_OUT numeric, WHEELS_OFF varchar(10), WHEELS_ON varchar(10), TAXI_IN numeric, CRS_ARR_TIME varchar(10), ARR_TIME varchar(10), ARR_DELAY numeric, ARR_DELAY_NEW numeric, ARR_DEL15 numeric, ARR_DELAY_GROUP integer, ARR_TIME_BLK varchar(10), CANCELLED numeric, CANCELLATION_CODE varchar(10), DIVERTED numeric, CRS_ELAPSED_TIME numeric, ACTUAL_ELAPSED_TIME numeric, AIR_TIME numeric, FLIGHTS numeric, DISTANCE numeric, DISTANCE_GROUP integer, CARRIER_DELAY numeric, WEATHER_DELAY numeric, NAS_DELAY numeric, SECURITY_DELAY numeric, LATE_AIRCRAFT_DELAY numeric, FIRST_DEP_TIME varchar(10), TOTAL_ADD_GTIME varchar(10), LONGEST_ADD_GTIME varchar(10), DIV_AIRPORT_LANDINGS integer, DIV_REACHED_DEST numeric, DIV_ACTUAL_ELAPSED_TIME numeric, DIV_ARR_DELAY numeric, DIV_DISTANCE numeric, DIV1_AIRPORT varchar(10), DIV1_AIRPORT_ID integer, DIV1_AIRPORT_SEQ_ID integer, DIV1_WHEELS_ON varchar(10), DIV1_TOTAL_GTIME numeric, DIV1_LONGEST_GTIME numeric, DIV1_WHEELS_OFF varchar(10), DIV1_TAIL_NUM varchar(20), DIV2_AIRPORT varchar(10), DIV2_AIRPORT_ID integer, DIV2_AIRPORT_SEQ_ID integer, DIV2_WHEELS_ON varchar(10), DIV2_TOTAL_GTIME numeric, DIV2_LONGEST_GTIME numeric, DIV2_WHEELS_OFF varchar(10), DIV2_TAIL_NUM varchar(20), DIV3_AIRPORT varchar(10), DIV3_AIRPORT_ID integer, DIV3_AIRPORT_SEQ_ID integer, DIV3_WHEELS_ON varchar(10), DIV3_TOTAL_GTIME numeric, DIV3_LONGEST_GTIME numeric, DIV3_WHEELS_OFF varchar(10), DIV3_TAIL_NUM varchar(20), DIV4_AIRPORT varchar(10), DIV4_AIRPORT_ID integer, DIV4_AIRPORT_SEQ_ID integer, DIV4_WHEELS_ON varchar(10), DIV4_TOTAL_GTIME numeric, DIV4_LONGEST_GTIME numeric, DIV4_WHEELS_OFF varchar(10), DIV4_TAIL_NUM varchar(20), DIV5_AIRPORT varchar(10), DIV5_AIRPORT_ID integer, DIV5_AIRPORT_SEQ_ID integer, DIV5_WHEELS_ON varchar(10), DIV5_TOTAL_GTIME numeric, DIV5_LONGEST_GTIME numeric, DIV5_WHEELS_OFF varchar(10), DIV5_TAIL_NUM varchar(20) );
テーブルを作ったら先程用意した CSV をロードする。
psql -h localhost -U postgres -d postgres -c "\copy airline.flights from '/tmp/data2.csv' delimiter ',' csv"
以上