Мы строим хранилище данных в BigQuery, где мы генерируем большое количество витрин данных, используя стандартные операторы sql. Они могут быть довольно большими и сложными. Чтобы отследить происхождение данных через цепочку зависимостей, мы хотели бы автоматически проанализировать операторы SQL и получить все выходные столбцы, сопоставленные с входными данными table.column (s).
Простой пример:
SELECT t1.a, t2.b, t1.a + t2.b AS c
FROM table1 t1 JOIN table2 t2 ON t1.a = t2.a
Должен в конечном итоге дать нам:
Input Output
table1.a a
table2.b b
table1.a c
table1.b c
Мы пробовали использовать это: https://www.npmjs.com/package/node-sql-parser, но в некоторых наших сложных сценариях это не так ios.
Существует ли какая-либо библиотека на любом языке, которая поддерживает синтаксический анализ оператора SQL и возврат AST для полного стандарта SQL грамматика?