If you export the data as a .csv file, and upload it into the Media drawer,
you can read it into a global text variable at Screen1.Initialize time,
and when it arrives via a File event, pass it thru a csv to table block, and save that in a global.
The table (list of lists) can be filtered using techniques in this sample app in the gallery ...
For 20,000 records, it might be small enough to not need indexes.
ABG