149 lines
4.5 KiB
Python
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'
|
|
)
|