Data Lineage на SQL запросах.

Сегодня компании нацелены на сокращение времени доступа к информации. Термин пояснять нет смысла, так как сейчас находится на хайпе.

А как получить информацию и построить полноценный Data Lineges на SQL запросах. Проблема которая заставила меня задуматься. Для того, что бы корректно отвечать на этот вопрос система должна удовлетворять следующим условиям:

  • Знать синтаксис целевой СУБД
  • Знать структуру метаданных (таблиц, полей, представлениц и т.д.)
  • Давать четкий ответ, какие данные будут на выходе.

От одних только требования, если по честному делать тянет на написание собственного синтаксического анализатора и еще много чего. Вроде как кажется, что задача почти не имеет решения. На самом деле, решение задачи тривиальное и находится на поверхности. Встречаем тезис “Data Lineage = Explain”. Просто надо научится его забирать из БД и еще в удобном формате. Все очень просто. Для демонстрации возьмем простой и любимый PG и продемонстрируем. Смотрим как обычно видео. Ссылка на гит репозитарий.  https://github.com/biwed/dp--review)

План видео (ссылка на youtube https://youtu.be/V5ZNOa_qcF4)

00:00 Обзор решения
07:46 Обзор архитектуры PG + Fluentd + Kafka для получения explain
17:19 Выводы

В целом вывод такой. Это просто идеальная система, которая позволяет номально анализировать запросы. В заключении хочу сказать, что я верю, что есть возможно  достать explain хранимых процедур для PG ну и конечно GP.