Files
m1_bdd_comparaison_perf/MonetDB.py
Minh VU 18a269e104 ok
2024-12-04 10:12:41 +01:00

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)