import pymonetdb import time import re #Creation_table createAirline = """CREATE TABLE airlines ( "IATA_CODE" VARCHAR(2) NOT NULL PRIMARY KEY UNIQUE, "AIRLINE" VARCHAR(99) NOT NULL );""" createAirports = """CREATE TABLE airports ( "IATA_CODE" VARCHAR(3) NOT NULL PRIMARY KEY UNIQUE, "AIRPORT" VARCHAR(100), "CITY" VARCHAR(40), "STATE" VARCHAR(2), "COUNTRY" VARCHAR(40), "LATITUDE" REAL, "LONGITUDE" REAL );""" createFlights = """CREATE TABLE flights ( "YEAR" INT, "MONTH" INT, "DAY" INT, "DAY_OF_WEEK" INT, "AIRLINE" VARCHAR(2), "FLIGHT_NUMBER" INT, "TAIL_NUMBER" VARCHAR(6), "ORIGIN_AIRPORT" VARCHAR(5), "DESTINATION_AIRPORT" VARCHAR(5), "SCHEDULED_DEPARTURE" INT, "DEPARTURE_TIME" INT, "DEPARTURE_DELAY" INT, "TAXI_OUT" INT, "WHEELS_OFF" INT, "SCHEDULED_TIME" INT, "ELAPSED_TIME" INT, "AIR_TIME" INT, "DISTANCE" INT, "WHEELS_ON" INT, "TAXI_IN" INT, "SCHEDULED_ARRIVAL" INT, "ARRIVAL_TIME" INT, "ARRIVAL_DELAY" INT, "DIVERTED" INT, "CANCELLED" INT, "CANCELLATION_REASON" VARCHAR(1), "AIR_SYSTEM_DELAY" INT, "SECURITY_DELAY" INT, "AIRLINE_DELAY" INT, "LATE_AIRCRAFT_DELAY" INT, "WEATHER_DELAY" INT );""" #Inserer_data peuplementAirlines = r"COPY INTO airlines FROM 'C:\\Users\\Public\\2015_Flight_Delay_and_cancellations\\airlines.csv' USING DELIMITERS ',', E'\n', '\"';" peuplementAirports = r"COPY INTO airports FROM 'C:\\Users\\Public\\2015_Flight_Delay_and_cancellations\\airports.csv' USING DELIMITERS ',', E'\n', '\"' NULL AS '';" peuplementFlights = r"COPY INTO flights FROM 'C:\\Users\\Public\\2015_Flight_Delay_and_cancellations\\flights.csv' USING DELIMITERS ',', E'\n', '\"' NULL AS '';" def connect_monetdb(): connection = pymonetdb.connect(username="monetdb", password="monetdb", hostname="localhost", database="demo") cursor = connection.cursor() return connection, cursor def create_table_monetdb(): try: connect = connect_monetdb() with connect[0] as conn: with connect[1] as cursor: start_time = time.time() cursor.execute(createAirline) cursor.execute(createAirports) cursor.execute(createFlights) conn.commit() end_time = time.time() cursor.close() conn.close() except(pymonetdb.DatabaseError,Exception) as error: print(error) return end_time-start_time def load_data_monetdb(): try: connect = connect_monetdb() with connect[0] as conn: with connect[1] as cursor: start_time = time.time() cursor.execute(peuplementAirports) cursor.execute(peuplementAirlines) cursor.execute(peuplementFlights) conn.commit() end_time = time.time() cursor.close() conn.close() except(pymonetdb.DatabaseError,Exception) as error: print(error) return end_time-start_time def requete_monetdb(str): try: connect=connect_monetdb() with connect[0] as conn: with connect[1] as cursor: start_time = time.time() cursor.execute(str) conn.commit() end_time = time.time() cursor.close() conn.close() except(pymonetdb.DatabaseError, Exception) as error: print(error) return end_time-start_time def reset_data_monetdb(): try: connect = connect_monetdb() with connect[0] as conn: with connect[1] as cursor: start_time = time.time() cursor.execute("DROP TABLE IF EXISTS airlines") cursor.execute("DROP TABLE IF EXISTS airports") cursor.execute("DROP TABLE IF EXISTS flights") conn.commit() end_time = time.time() cursor.close() conn.close() except(pymonetdb.DatabaseError, Exception) as error: print(error) return end_time-start_time