117 lines
4.6 KiB
Python
117 lines
4.6 KiB
Python
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:
|
|
with connect_monetdb()[0] as conn:
|
|
with connect_monetdb()[1] as cursor:
|
|
cursor.execute(createAirline)
|
|
cursor.execute(createAirports)
|
|
cursor.execute(createFlights)
|
|
conn.commit()
|
|
cursor.close()
|
|
conn.close()
|
|
except(pymonetdb.DatabaseError,Exception) as error:
|
|
print(error)
|
|
|
|
def load_data_monetdb():
|
|
try:
|
|
with connect_monetdb()[0] as conn:
|
|
with connect_monetdb()[1] as cursor:
|
|
cursor.execute(peuplementAirports)
|
|
cursor.execute(peuplementAirlines)
|
|
cursor.execute(peuplementFlights)
|
|
conn.commit()
|
|
cursor.close()
|
|
conn.close()
|
|
except(pymonetdb.DatabaseError,Exception) as error:
|
|
print(error)
|
|
|
|
def requete_monetdb(str):
|
|
try:
|
|
with connect_monetdb()[0] as conn:
|
|
with connect_monetdb()[1] as cursor:
|
|
cursor.execute(peuplementAirports)
|
|
cursor.execute(peuplementAirlines)
|
|
cursor.execute(peuplementFlights)
|
|
conn.commit()
|
|
cursor.close()
|
|
conn.close()
|
|
except(pymonetdb.DatabaseError, Exception) as error:
|
|
print(error)
|
|
|
|
def reset_data_monetdb(connection,cursor):
|
|
try:
|
|
with connect_monetdb()[0] as conn:
|
|
with connect_monetdb()[1] as cursor:
|
|
cursor.execute("DROP TABLE IF EXISTS airlines")
|
|
cursor.execute("DROP TABLE IF EXISTS airports")
|
|
cursor.execute("DROP TABLE IF EXISTS flights")
|
|
conn.commit()
|
|
cursor.close()
|
|
conn.close()
|
|
except(pymonetdb.DatabaseError, Exception) as error:
|
|
print(error) |