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"
以上