import time import psycopg2 def connect_postgres(): return psycopg2.connect( host="localhost", database="postgres", user="postgres", password="1" ) def create_tables_postgres(): start_time = 0 end_time = 0 sql_command_create_table= ( """CREATE TABLE airlines ( "IATA_CODE" VARCHAR(2), "AIRLINE" VARCHAR(30) ) """, """CREATE TABLE airports ( "IATA_CODE" VARCHAR(3), "AIRPORT" VARCHAR(100), "CITY" VARCHAR(40), "STATE" VARCHAR(2), "COUNTRY" VARCHAR(40), "LATITUDE" REAL, "LONGITUDE" REAL ) """, """CREATE TABLE flights ( "YEAR" INTEGER, "MONTH" INTEGER, "DAY" INTEGER, "DAY_OF_WEEK" INTEGER, "AIRLINE" VARCHAR(2), "FLIGHT_NUMBER" INTEGER, "TAIL_NUMBER" VARCHAR(6), "ORIGIN_AIRPORT" VARCHAR(5), "DESTINATION_AIRPORT" VARCHAR(5), "SCHEDULED_DEPARTURE" INTEGER, "DEPARTURE_TIME" INTEGER, "DEPARTURE_DELAY" INTEGER, "TAXI_OUT" INTEGER, "WHEELS_OFF" INTEGER, "SCHEDULED_TIME" INTEGER, "ELAPSED_TIME" INTEGER, "AIR_TIME" INTEGER, "DISTANCE" INTEGER, "WHEELS_ON" INTEGER, "TAXI_IN" INTEGER, "SCHEDULED_ARRIVAL" INTEGER, "ARRIVAL_TIME" INTEGER, "ARRIVAL_DELAY" INTEGER, "DIVERTED" INTEGER, "CANCELLED" INTEGER, "CANCELLATION_REASON" VARCHAR(1), "AIR_SYSTEM_DELAY" INTEGER, "SECURITY_DELAY" INTEGER, "AIRLINE_DELAY" INTEGER, "LATE_AIRCRAFT_DELAY" INTEGER, "WEATHER_DELAY" INTEGER ) """) try: with connect_postgres() as conn: with conn.cursor() as cursor: start_time = time.time() for command in sql_command_create_table: cursor.execute(command) conn.commit() end_time = time.time() cursor.close() conn.close() except (psycopg2.DatabaseError, Exception) as error: print(error) return end_time-start_time def create_data_postgres(): start_time = 0 end_time = 0 sql_command_copy =( """COPY airlines FROM 'C://Users//Public//2015_Flight_Delay_and_cancellations//airlines.csv' DELIMITER ',' NULL AS ''""", """COPY airports FROM 'C://Users//Public//2015_Flight_Delay_and_cancellations//airports.csv' DELIMITER ',' NULL AS ''""", """COPY flights FROM 'C://Users//Public//2015_Flight_Delay_and_cancellations//flights.csv' DELIMITER ',' NULL AS ''""") try: with connect_postgres() as conn: with conn.cursor() as cursor: start_time = time.time() for command in sql_command_copy: cursor.execute(command) conn.commit() end_time = time.time() cursor.close() conn.close() except (psycopg2.DatabaseError, Exception) as error: print(error) return end_time-start_time def requete_postgres(str): start_time = 0 end_time = 0 try: with connect_postgres() as conn: with conn.cursor() as cursor: start_time = time.time() cursor.execute(str) conn.commit() end_time = time.time() size = cursor.rowcount cursor.close() conn.close() except (psycopg2.DatabaseError, Exception) as error: print(error) return end_time-start_time, size def reset_database_postgres(): start_time = 0 end_time = 0 try: with connect_postgres() as conn: start_time = time.time() with conn.cursor() as cursor: cursor.execute('DROP TABLE IF EXISTS flights,airlines,airports,flights2') conn.commit() end_time = time.time() cursor.close() conn.close() except (psycopg2.DatabaseError, Exception) as error: print(error) return end_time-start_time