Files
static/conf/db_schema.py

149 lines
4.5 KiB
Python

# lib/db_schema.py
from sqlalchemy import Table, Column, Date, Float, Integer, String, Text, MetaData
metadata = MetaData()
# 날짜별 메트릭
fg_manager_static_ga4_by_date = Table(
'fg_manager_static_ga4_by_date', metadata,
Column('date', Date, primary_key=True),
Column('activeUsers', Integer),
Column('screenPageViews', Integer),
Column('sessions', Integer),
)
# 날짜 + 유입 소스별 세션
fg_manager_static_ga4_by_source = Table(
'fg_manager_static_ga4_by_source', metadata,
Column('date', Date, primary_key=True),
Column('sessionSource', String(255), primary_key=True),
Column('sessions', Integer),
)
# 날짜 + 유입 매체별 세션
fg_manager_static_ga4_by_medium = Table(
'fg_manager_static_ga4_by_medium', metadata,
Column('date', Date, primary_key=True),
Column('sessionMedium', String(255), primary_key=True),
Column('sessions', Integer),
)
# 날짜 + 장치 카테고리별 activeUsers
fg_manager_static_ga4_by_device = Table(
'fg_manager_static_ga4_by_device', metadata,
Column('date', Date, primary_key=True),
Column('deviceCategory', String(255), primary_key=True),
Column('activeUsers', Integer),
)
# 날짜 + 국가별 activeUsers
fg_manager_static_ga4_by_country = Table(
'fg_manager_static_ga4_by_country', metadata,
Column('date', Date, primary_key=True),
Column('country', String(255), primary_key=True),
Column('activeUsers', Integer),
)
# 날짜 + 도시별 activeUsers
fg_manager_static_ga4_by_city = Table(
'fg_manager_static_ga4_by_city', metadata,
Column('date', Date, primary_key=True),
Column('city', String(255), primary_key=True),
Column('activeUsers', Integer),
)
fg_manager_static_air = Table(
'fg_manager_static_air',
metadata,
Column('date', Date, primary_key=True, nullable=False),
Column('station', String(32), nullable=False), # 🔹 추가됨
Column('pm25', Float),
Column('pm10', Float),
Column('so2', Float),
Column('co', Float),
Column('no2', Float),
Column('o3', Float),
)
fg_manager_static_weather = Table(
'fg_manager_static_weather',
metadata,
Column('date', Date, primary_key=True, nullable=False),
Column('stnId', Integer, nullable=False),
Column('avgTa', Float),
Column('minTa', Float),
Column('minTaHrmt', String(4)),
Column('maxTa', Float),
Column('maxTaHrmt', String(4)),
Column('sumRnDur', Float),
Column('mi10MaxRn', Float),
Column('mi10MaxRnHrmt', String(4)),
Column('hr1MaxRn', Float),
Column('hr1MaxRnHrmt', String(4)),
Column('sumRn', Float),
Column('maxInsWs', Float),
Column('maxInsWsWd', Integer),
Column('maxInsWsHrmt', String(4)),
Column('maxWs', Float),
Column('maxWsWd', Integer),
Column('maxWsHrmt', String(4)),
Column('avgWs', Float),
Column('hr24SumRws', Float),
Column('maxWd', Integer),
Column('avgTd', Float),
Column('minRhm', Float),
Column('minRhmHrmt', String(4)),
Column('avgRhm', Float),
Column('avgPv', Float),
Column('avgPa', Float),
Column('maxPs', Float),
Column('maxPsHrmt', String(4)),
Column('minPs', Float),
Column('minPsHrmt', String(4)),
Column('avgPs', Float),
Column('ssDur', Float),
Column('sumSsHr', Float),
Column('hr1MaxIcsrHrmt', String(4)),
Column('hr1MaxIcsr', Float),
Column('sumGsr', Float),
Column('ddMefs', Float),
Column('ddMefsHrmt', String(4)),
Column('ddMes', Float),
Column('ddMesHrmt', String(4)),
Column('sumDpthFhsc', Float),
Column('avgTca', Float),
Column('avgLmac', Float),
Column('avgTs', Float),
Column('minTg', Float),
Column('avgCm5Te', Float),
Column('avgCm10Te', Float),
Column('avgCm20Te', Float),
Column('avgCm30Te', Float),
Column('avgM05Te', Float),
Column('avgM10Te', Float),
Column('avgM15Te', Float),
Column('avgM30Te', Float),
Column('avgM50Te', Float),
Column('sumLrgEv', Float),
Column('sumSmlEv', Float),
Column('n99Rn', Float),
Column('iscs', Text),
Column('sumFogDur', Float),
)
fg_manager_static_ga4 = Table(
'fg_manager_static_ga4', metadata,
Column('date', Date, primary_key=True),
Column('source', String(255), primary_key=True),
Column('medium', String(255), primary_key=True),
Column('deviceCategory', String(50), primary_key=True),
Column('country', String(100), primary_key=True),
Column('city', String(100), primary_key=True),
Column('activeUsers', Integer),
Column('screenPageViews', Integer),
mysql_engine='InnoDB',
mysql_charset='utf8mb4'
)