First of all, make sure this holds NO PII, don't ever publish any PII data.
With that said:
Setup your DE via API with one field "data" and no maxLength
(only possible via API) on that. This will hold a JSON.
Create a second field that has a value that you can lookup on, such as "include" and defaultValue "1" (in this example, it's also text)
Then, use an SQL Query Activity and FOR JSON PATH:
myNonPersonalData AS [nonPersonalData],
data2 AS [data2],
data3 AS [data3]
FOR JSON PATH
) AS [Data]
Result is one field (data) containing a large json Array that you can just lookup via AMPScript by matching on "include = 1"
put this AMPScript on your cloudpage:
SET @output = Lookup("myDE","data","include","1")
Depending on the number of records in your planned JSON, do some due diligence in terms of load testing. I have done this for stuff in the range of 500 to 1000 records with a couple seconds runtime of the SQL and no problems in the DE.