
11/30/2022 · Daniel Ohayon
What this post added
This post introduces UPM (Unified Programming Model), an internal library for static analysis of SQL code. UPM represents SQL queries as semantic trees, enabling the development of SQL linters, data lineage analysis, and a unified SQL language front end across Meta's various query engines (Presto, Spark, XStream). It also enhances type-checking by leveraging user-defined types in table schemas to catch semantic errors like unit and ID comparison mismatches. The data lineage team uses UPM to build column-level data lineage graphs across the warehouse.