Insert/ Update Scalability (more records, continually longer lookups --- solution?)
Parse the JSON when the record in inserted, not later.  (OK, maybe you need to collect the JSON in a "staging" table between arrival and processing.)

When you parse the JSON, extract only the fields that you need to manipulate/search/etc in MySQL.  Be conservative.  Don't extract many fields.  Leave the JSON as is in case you need the details later.  It would even be good to compress it and store it into a BLOB -- to save space, hence decrease I/O.

What queries will you be doing on the data?  Studying them is critical to the design of a Data Warehouse.

Properly indexed (etc), a table that grows by a factor of 10 may be only 10% slower.  Don't panic, but do look at the queries.  I have seen billion-row tables that hum along nicely.

It sounds like you are inserting only about 2 rows per minute; is that correct?  100 per second is when it starts to get challenging.

Let's worry about the "archiving" after we have covered some of the issues I mentioned.