2000 rows may be stretching the usability of this technique, but you can give it a try to see if the performance is acceptable:
Lookup / Search within macros (telephone directory) / internal "database" in KM and how to do it elegantly?
I would store the data as files, maybe the source file being Excel, which you can export to text as TAB delimited when needed. If the performance is unacceptable, you could save to separate files based on some category.
Here is a simple example to get you started.
Instead of storing the data in a KM Variable, I would change to use a file.
MACRO: Replace Text with Numbers; OR, Lookup Data Using RegEx [Example]
For really large datasets (>> 2,000 rows), I would consider:
- SQL Database (SQLite)
- Excel using VLookup
Both of those obviously require more development effort, but will easily provide a good return if this is an ongoing workflow.