Snoopy: Effective and Efficient Semantic Join Discovery via Proxy Columns