Files
m1_bdd_comparaison_perf/PostgreSQL.py
2024-12-03 19:34:27 +01:00

118 lines
3.7 KiB
Python

import time
import psycopg2
def connect_postgres():
return psycopg2.connect(
host="localhost",
database="postgres",
user="postgres",
password="1"
)
def create_tables_postgres():
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:
for command in sql_command_create_table:
cursor.execute(command)
conn.commit()
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)
def create_data_postgres():
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:
for command in sql_command_copy:
cursor.execute(command)
conn.commit()
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)
def requete_postgres(str):
try:
with connect_postgres() as conn:
with conn.cursor() as cursor:
start = time.time()
cursor.execute(str)
conn.commit()
temps = time.time() -start
print("Cette requête prends:", temps, "seconde")
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)
def reset_database_postgres():
try:
with connect_postgres() as conn:
with conn.cursor() as cursor:
cursor.execute('DROP TABLE IF EXISTS flights,airlines,airports')
conn.commit()
cursor.close()
conn.close()
except (psycopg2.DatabaseError, Exception) as error:
print(error)