The goal is to write a query that for each table will compare the content and return any rows that are missing in one of the compared tables.
The query combines FULL OUTER JOIN, time travel, and row ids generated for each column:
SELECT * FROM ( SELECT TRIM(CONCAT_WS(', ', old.col1, old.col2, old.col3)) AS old_data_values, TRIM(CONCAT_WS(', ', new.col1, new.col2, new.col3)) AS new_data_values FROM table_1 VERSION AS OF 2 AS new FULL OUTER JOIN table_1 VERSION AS OF 1 AS old ON SHA1(TO_JSON(STRUCT(old.col1, old.col2, old.col3))) = SHA1(TO_JSON(STRUCT(new.col1, new.col2, new.col3))) ) s WHERE s.old_data_values = '' OR s.new_data_values = ''
You can combine this query with the How to get columns of one or multiple tables? to create a dynamic data validation job.