RZV_DE Telegram 300
#вести_с_полей

Чтобы распарсить SQL, нужно всего лишь написать правильную регулярку. Правда?

🔸 Я на трёх проектах пробовал решить задачу "программно прочитать SQL код и построить по нему `Data Lineage`". В том числе используя разные python пакеты вроде Sqlparse и Sqlglot. Цель более-менее сводилась к "хочу знать зависимости для группировки объектов на стадии миграции". Если знаешь, что везти сначала, а что -- потом, это делает планирование проекта прозрачным, а сроки -- предсказуемыми. В общем, важное и крутое знание для менеджмента, которое можно получить анализом проекта.

🔸 Вначале с готовыми пакетами всё неплохо, OLTP запросы проходят все тесты. Но потом начинаются разные особенности OLAP запросов, и небо "затягивает тучами":
. CTE и подзапросы
. десятки JOIN'ов
. не ANSI-SQL особенности диалекта СУБД на проекте
. функции (UDF) и хранимые процедуры (SP), которые перешли в виде "наследства"

🔸 Сегодня на почту упала небольшая статейка как раз на эту тему: "3 уровня понимания SQL". В ней описывают термин "`SQL Comprehension`" -- распознавание SQL кода, которое можно реализовать на разной глубине:
1. Парсинг -- проверка валидности SQL Keywords, количества аргументов в функциях
2. Компиляция -- построение логического плана с учётом типов данных колонок
3. Выполнение -- физический план + результат запроса, учитывает особенности СУБД

Рекомендую пробежаться по примеру и тому, как и что можно сломать :)

p.s. спасибо dbt, что он есть, и UDF & SP можно встречать сильно реже
p.p.s. любая СУБД "понимает" SQL на 3м уровне, да
p.p.p.s. очень любопытно, что получится у dbt после поглощения SDF и использования его как движка. Неужели то самое светлое будущее наступит для analytics engineers?



tgoop.com/rzv_de/300
Create:
Last Update:

#вести_с_полей

Чтобы распарсить SQL, нужно всего лишь написать правильную регулярку. Правда?

🔸 Я на трёх проектах пробовал решить задачу "программно прочитать SQL код и построить по нему `Data Lineage`". В том числе используя разные python пакеты вроде Sqlparse и Sqlglot. Цель более-менее сводилась к "хочу знать зависимости для группировки объектов на стадии миграции". Если знаешь, что везти сначала, а что -- потом, это делает планирование проекта прозрачным, а сроки -- предсказуемыми. В общем, важное и крутое знание для менеджмента, которое можно получить анализом проекта.

🔸 Вначале с готовыми пакетами всё неплохо, OLTP запросы проходят все тесты. Но потом начинаются разные особенности OLAP запросов, и небо "затягивает тучами":
. CTE и подзапросы
. десятки JOIN'ов
. не ANSI-SQL особенности диалекта СУБД на проекте
. функции (UDF) и хранимые процедуры (SP), которые перешли в виде "наследства"

🔸 Сегодня на почту упала небольшая статейка как раз на эту тему: "3 уровня понимания SQL". В ней описывают термин "`SQL Comprehension`" -- распознавание SQL кода, которое можно реализовать на разной глубине:
1. Парсинг -- проверка валидности SQL Keywords, количества аргументов в функциях
2. Компиляция -- построение логического плана с учётом типов данных колонок
3. Выполнение -- физический план + результат запроса, учитывает особенности СУБД

Рекомендую пробежаться по примеру и тому, как и что можно сломать :)

p.s. спасибо dbt, что он есть, и UDF & SP можно встречать сильно реже
p.p.s. любая СУБД "понимает" SQL на 3м уровне, да
p.p.p.s. очень любопытно, что получится у dbt после поглощения SDF и использования его как движка. Неужели то самое светлое будущее наступит для analytics engineers?

BY rzv Data Engineering



❌Photos not found?❌Click here to update cache.


Share with your friend now:
tgoop.com/rzv_de/300

View MORE
Open in Telegram


Telegram News

Date: |

Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. Today, we will address Telegram channels and how to use them for maximum benefit. As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): Unlimited number of subscribers per channel
from us


Telegram rzv Data Engineering
FROM American