Google Cloud Blog на русском
Подписаться
Как использовать логирование пользовательских функций Python для наблюдаемости конвейера
BigQuery теперь поддерживает логирование пользовательских функций Python (UDF), позволяя разработчикам отправлять структурированные логи непосредственно в Cloud Logging, используя стандартную библиотеку логирования Python. Эта новая функция облегчает оперативный мониторинг и отладку без внешних плагинов, что особенно полезно при построении отказоустойчивых конвейеров данных. Рабочий процесс включает встроенную валидацию в рамках пользовательской функции Python, оповещения в реальном времени через Cloud Monitoring на основе метрик, основанных на логах, и SQL-триаж/повторное выполнение изолированных данных.Практический пример демонстрирует конвейер приема событий электронной коммерции. Универсальная пользовательская функция Python анализирует JSON, регистрирует диагностическую информацию для недопустимых записей и возвращает NULL, чтобы предотвратить сбой запроса. Логирование включается с помощью SET @@udf.properties в сессии BigQuery.Оповещения в реальном времени могут быть настроены в Cloud Logging с использованием специального фильтра логов для ошибок пользовательских функций. Для криминалистического анализа BigQuery Log Analytics через связанное представление _AllLogs позволяет инженерам данных запрашивать изолированные полезные нагрузки непосредственно с помощью SQL. Поскольку исходные полезные нагрузки сохраняются, проблемные записи могут быть восстановлены и повторно загружены в производственную таблицу, гарантируя отсутствие потери данных.Помимо валидации данных, эта функция логирования поддерживает такие сценарии использования, как теневое выполнение для безопасных миграций, аудит маскирования PII и обнаружение дрейфа результатов машинного обучения. Рекомендации включают включение отладочного вывода, избегание конфиденциальных данных в логах и управление затратами на логирование путем выборочного логирования. Эта интеграция упрощает отладку и повышает отказоустойчивость конвейеров данных в BigQuery.