Just had a request for a way to move data from an external program into JMP. Generally I'd recommend using CSV files for this, but if compression is an issue, maybe something else is needed. Here's a couple of proof-of-concept scripts (you'll need to make sure they do what you need). Since I don't have an external program, each script is in two parts: create a zip file from a table, then recreate the table from the zip file. This assumes you are in control of how an external process might package and present the data to JMP.
Key points: zip files can hold binary (first example) or printable (second example) data. Jsl matrixToBlob and BlobToMatrix are fast. Don’t loop, or just loop over a few columns. Avoid looping for every row for a lot of rows. JMP’s zip file API appends new members, possibly changing the actualname to avoid earlier members…notice the deleteFile(). Clearing the zip (za=0) is NOT required; it is hinting that the file is outside of JMP (on disk). Converting numbers to printable and back is slow, and might be lossy as well if the formatted values don't have enough digits.
The first script puts raw data in a zip file member in "little-endian" format, a row at a time. Fast because it doesn't convert back and forth to printable.
The second script puts formatted data for a column into a zip file member, one column per member. Numeric data goes in a matrix, character in a list.
You can combine ideas from both scripts.
This example assumes binary numeric data. It should be really fast. Character data won’t work like this…
// (this code is untested!) make sample numeric data
dt=New Table("people", Add Rows(1e7),
New Column("fred", Numeric, Continuous,Format("Best",12), Formula(Random Normal())),
New Column("ralph", Numeric, Continuous,Format("Best",12), Formula(Random Normal())),
New Column("george", Numeric, Continuous,Format("Best",12), Formula(Random Normal()),)