Как разобрать стандарт SQL (BigQuery), чтобы получить входные и выходные столбцы - PullRequest
0 голосов
/ 08 января 2020

Мы строим хранилище данных в 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 грамматика?

1 Ответ

1 голос
/ 08 января 2020

Вы можете использовать google / zeta sql, что BigQuery использует для анализа стандарта SQL.

...