Как подружить 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.


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

19521Банковский троян VENON на Rust атакует Бразилию с помощью девяти техник обхода защиты 19520Бонобо агрессивны не меньше шимпанзе, но всё решают самки 19519Почему 600-килограммовый зонд NASA падает на землю из-за солнечной активности? 19518«Липовый календарь»: как расписание превращает работников в расходный материал 19517Вредоносные Rust-пакеты и ИИ-бот крадут секреты разработчиков через CI/CD-пайплайны 19516Как хакеры за 72 часа превратили npm-пакет в ключ от целого облака AWS 19515Как WebDAV-диск и поддельная капча помогают обойти антивирус? 19514Могут ли простые числа скрываться внутри чёрных дыр? 19513Метеорит пробил крышу дома в Германии — откуда взялся огненный шар над Европой? 19512Уязвимости LeakyLooker в Google Looker Studio открывали доступ к чужим базам данных 19511Почему тысячи серверов оказываются открытой дверью для хакеров, хотя могли бы ею не быть? 19510Как исследователи за четыре минуты заставили ИИ-браузер Perplexity Comet попасться на... 19509Может ли женщина без влагалища и шейки матки зачать ребёнка естественным путём? 19508Зачем учёные из Вены создали QR-код, который невозможно увидеть без электронного... 19507Девять уязвимостей CrackArmor позволяют получить root-доступ через модуль безопасности...
Ссылка