Sorry, somehow only now I saw your comment.
First, the 250 GB quota is soft, i.e. I wouldn't worry about it (for now ;-))
Second, the best way to save space is to keep in the crossmatch query only the columns your really want (i.e. not all the columns).
Finally, if you can apply constraints (with WHERE) during or before the crossmatch query, that can reduce the number of rows, potentially significantly. For instance, maybe you are interested only in rows with enough SNR? Or only in objects that are redder than some value?...
As to the question "how big will my table be"? If you're counting columns, you could assign 4 bytes per value for each small int and each float. And 8 bytes for doubles and big ints. varchars are hard to estimate. I think a good but quick upper bound is Ncols x 8 bytes x Nrows. (Note that if you were to write out a table to e.g. a CSV file, the resulting file size is unknown, since much depends on details such as encoding, presence of char-valued fields, etc.
Best,
Robert