Как подружить Great Expectations с Impala?

Для интеграции Great Expectations с Impala, SQL-движком, официально не поддерживаемым библиотекой, потребуется ряд нестандартных решений. Во-первых, необходимо настроить подключение через SQLAlchemy, создав движок к базе данных Impala. Во-вторых, нужно организовать структуру проекта для кастомных проверок, так как в GX нет штатного способа подключения проверок из произвольной папки. Проверки подключаются импортом в основном файле.
Как подружить Great Expectations с Impala?
Изображение носит иллюстративный характер

Основные проблемы при интеграции заключаются в поддержке регулярных выражений, использовании зарезервированных слов Impala и обработке подзапросов. Регулярные выражения, не поддерживаемые диалектом Impala, обходятся путем создания собственной проверки, игнорирующей проверку диалекта и возвращающей условие в формате, понятном для Impala. Зарезервированные слова, используемые GX, переименовываются на допустимые, а тип данных NUMERIC изменяется на INTEGER. Проблема с подзапросами в SELECT решается путем выноса неподдерживаемого подзапроса в отдельный запрос и его дальнейшей подстановки в основной.

Для внедрения изменений потребуется замена ряда файлов библиотеки GX. В частности, это файлы, отвечающие за проверки уникальности значений, регулярные выражения и вспомогательные методы. Замена файлов — это способ быстрого решения проблем. Он может показаться спорным, но, по мнению авторов, он оправдан в ситуации, когда нужен быстро работающий инструмент.

Несмотря на нестандартные решения, такие как подмена файлов библиотеки, описанный подход позволяет эффективно интегрировать GX с Impala. Разработчикам необходимо быть внимательными к логам, чтобы выявить проблемные файлы, и прослеживать цепочку подключений для внесения необходимых изменений. Этот подход дает возможность использовать возможности GX для анализа качества данных в больших объемах, обрабатываемых Impala.


Новое на сайте

19208Как новые поколения троянов удаленного доступа захватывают системы ради кибершпионажа и... 19207Почему мировые киберпреступники захватили рекламные сети, и как Meta вместе с властями... 19206Как фальшивый пакет StripeApi.Net в NuGet Gallery незаметно похищал финансовые API-токены... 19205Зачем неизвестная группировка UAT-10027 внедряет бэкдор Dohdoor в системы образования и... 19204Ритуальный предсвадебный плач как форма протеста в традиционном Китае 19203Невидимая угроза в оперативной памяти: масштабная атака северокорейских хакеров на... 19202Как уязвимость нулевого дня в Cisco SD-WAN позволяет хакерам незаметно захватывать... 19201Как Google разрушил глобальную шпионскую сеть UNC2814, охватившую правительства 70 стран... 19200Как простое открытие репозитория в Claude Code позволяет хакерам получить полный контроль... 19199Зачем киберсиндикат SLH платит женщинам до 1000 долларов за один телефонный звонок в... 19198Устранение слепых зон SOC: переход к доказательной сортировке угроз для защиты бизнеса 19197Скрытые бэкдоры в цепочках поставок по: атаки через вредоносные пакеты NuGet и npm 19196Как абсолютная самоотдача, отказ от эго и физиологическое переосмысление тревоги помогают... 19195Отказ от стратегии гладиаторов как главный драйвер экспоненциального роста корпораций 19194Цена ручного управления: почему отказ от автоматизации данных разрушает национальную...
Ссылка