I am trying to store a large amount of daily weather data into a postgreSQL database. This might not seem like it would be a lot of data but there are roughly 95,000 stations with daily data going back as much as 100 years. This can mean many million records (95,000 * 365 * 100) = 3,467,500,000. Although this is an overestimate it still seems impractical to me to store all the daily data in a single table with station ids as a foreign key mapping to another table with the station information. What would be the best way to structure this data for querying the data series by station? Should I create a table for each station (would result in 95,000 tables) or should I try something broader like a table for each region? What are the advantages and disadvantages? Any help is greatly appreciated.
My data looks like this:
Stations
*ID
-longitude
-latitude
-elevation
-country
-state
-name
...
Weather
*Station ID
*Date
-Precipitation
-High Temp
-Low Temp