ИИ-технологФлагман NP
ИИ-технолог

Промпты для инженера данных. 25 готовых примеров для генерации

От NP_Article

ИИ-технолог

Обучение управлению ИИ с 0 до мастерского уровня

250+ уроков Начато наполнение Без инфоцыган и воды

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

Проблема не в нейросетях, а в том, как мы с ними общаемся. Без четкого контекста, задачи и ожидаемого формата результата, ИИ не может угадать, что именно вам нужно. Он не сидит рядом с вами в офисе и не знает специфику ваших проектов. Поэтому ключ к успеху – в правильной формулировке запросов.

Здесь собраны не просто примеры, а готовые шаблоны, созданные с учетом типичных ошибок и реальных потребностей инженеров данных. Вы научитесь получать от ИИ именно то, что ожидаете, экономя время и нервы. В статье вы найдете:

  • Разбор частых ошибок при составлении запросов.
  • Готовые шаблоны для проектирования ETL/ELT-процессов.
  • Примеры промптов для оптимизации SQL-запросов и написания кода.
  • Инструкции для создания документации и схем данных.
  • Неочевидные приемы для повышения эффективности работы с ИИ.

Типичные ошибки при составлении запросов к ИИ

  1. Просить написать код без указания технологического стека. Нейросеть не знает, работаете вы с Apache Spark, Flink или используете чистый Python с Pandas. В итоге вы получите универсальный, но, скорее всего, неподходящий для вашей инфраструктуры код.
  2. Давать задачу без контекста и примера данных. Запрос “Напиши скрипт для очистки данных” без описания структуры этих данных (названия колонок, типы, примеры значений) приведет к созданию скрипта, который очищает “сферические данные в вакууме” и потребует полной переделки.
  3. Игнорировать требования к производительности и оптимизации. ИИ по умолчанию может сгенерировать работающий, но крайне неэффективный код. Если не указать, что решение должно быть оптимизировано для больших объемов данных или иметь низкую задержку, вы рискуете получить “узкое место” в своем конвейере данных.
  4. Забывать про стандарты кодирования и документирование. Получив “стену” кода без комментариев и документации, вы потратите больше времени на его понимание и интеграцию, чем если бы написали все с нуля. Всегда просите добавлять комментарии, пояснения и следовать принятым в вашей команде стандартам.
  5. Формулировать запрос одним общим предложением. “Создай ETL-процесс” – это не задача, а название целого проекта. Такой запрос обречен на провал. Эффективный промпт должен содержать роль, детальное описание шагов, формат ответа и ограничения.
  6. Не просить объяснить предложенное решение. Получив готовый скрипт, многие просто копируют его, не разобравшись в логике. Это опасно, так как вы не сможете его поддерживать или модифицировать. Всегда просите ИИ объяснить, почему он выбрал именно такой подход и как работает каждая часть кода.

Сравнение запросов: от неясного к точному

Расплывчатый запрос инженера Почему это неэффективно Точная формулировка для ИИ
Напиши SQL-запрос для отчета. Неясно, из каких таблиц брать данные, какие метрики считать, какая СУБД используется (синтаксис может отличаться), и за какой период нужен отчет. Результат будет абсолютно случайным. Напиши SQL-запрос для PostgreSQL. Мне нужно рассчитать ежемесячную выручку по категориям товаров за последний год. Таблицы: ‘orders’ (order_id, created_at, total_price) и ‘order_items’ (order_id, product_id), ‘products’ (product_id, category). Результат должен содержать три колонки: ‘месяц’, ‘категория’, ‘выручка’.
Сделай скрипт для обработки данных. “Обработка” – слишком широкое понятие. Непонятно, что делать: чистить, трансформировать, агрегировать? Откуда брать данные и куда сохранять? Какой язык и библиотеки использовать? Напиши Python-скрипт с использованием Pandas. Скрипт должен прочитать CSV-файл ‘users.csv’, удалить строки с пропусками в колонке ’email’, привести колонку ‘registration_date’ к формату datetime и сохранить результат в новый CSV-файл ‘users_cleaned.csv’.
Как спроектировать конвейер данных? Это вопрос уровня консультации, а не конкретной задачи. ИИ даст общий теоретический ответ про ETL/ELT, который сложно применить на практике. Конечно, если ваша цель – просто почитать теорию, то почему бы и нет. Спроектируй архитектуру конвейера данных для сбора логов из нескольких веб-сервисов (данные в формате JSON) и загрузки их в хранилище ClickHouse. Источники – 10 сервисов, ~1 ТБ данных в сутки. Предложи технологический стек (например, Kafka + Spark Streaming), опиши шаги процесса и нарисуй схему в формате Mermaid.
Оптимизируй мой код. Непонятно, что именно оптимизировать: скорость выполнения, потребление памяти, читаемость? Без контекста (какие данные, какие объемы) и самого кода этот запрос бессмыслен. Проанализируй этот Python-скрипт, который использует Pandas для обработки 10 ГБ CSV-файла. Укажи на “узкие места” в производительности, особенно в части потребления памяти. Предложи оптимизированную версию кода, возможно, с использованием Dask или Polars.

25 промптов для инженера данных, которые действительно работают

1. Разработка ETL-конвейера

Проблема: Нужно спроектировать полный процесс извлечения, преобразования и загрузки данных, но сложно учесть все детали и выбрать подходящие инструменты.

Решение: Промпт помогает получить пошаговый план и архитектуру ETL-процесса с конкретным технологическим стеком и логикой обработки.

Текст промпта:

*****

Ты – опытный архитектор данных. Твоя задача – спроектировать ETL-конвейер для сбора данных о пользовательской активности из нескольких источников и загрузки их в аналитическое хранилище.

Контекст:

  • Источники данных:
    1. База данных PostgreSQL с транзакциями (таблица ‘payments’).
    2. Поток событий из Apache Kafka (топик ‘user_clicks’), события в формате JSON.
    3. Ежедневные выгрузки в формате CSV на FTP-сервере (файлы ‘daily_regs_*.csv’).
  • Целевое хранилище: ClickHouse.
  • Объем данных: ~50 миллионов событий в день.
  • Технологический стек для реализации: Apache Spark, Apache Airflow.

Задача:

  1. Опиши пошаговую архитектуру ETL-процесса. Разбей его на три этапа: извлечение (Extract), преобразование (Transform), загрузка (Load).
  2. Для этапа преобразования опиши ключевые шаги: очистка данных, обогащение (например, добавление геолокации по IP), агрегация.
  3. Предложи структуру целевых таблиц в ClickHouse (схема данных).
  4. Создай схему конвейера в виде кода для Mermaid для визуализации.
  5. Укажи, какие метрики мониторинга стоит отслеживать для этого конвейера (например, количество обработанных записей, время задержки).

Формат ответа: Структурированный документ с разделами: “Архитектура”, “Шаги преобразования”, “Схема целевых таблиц”, “Визуализация (Mermaid)”, “Метрики мониторинга”. Избегай общих фраз, давай конкретные рекомендации.

*****

Почему это работает: Промпт предоставляет весь необходимый контекст: источники, приемник, объемы, стек. Четкое разделение задачи на пункты заставляет ИИ выдать структурированный и полный ответ, а не общую теорию.

2. Оптимизация SQL-запроса

Проблема: Медленный SQL-запрос тормозит работу отчетов или витрин данных, но причина не очевидна.

Решение: Промпт позволяет получить анализ запроса, выявить “узкие места” и получить оптимизированную версию с объяснениями.

Текст промпта:

*****

Ты – эксперт по оптимизации баз данных с 15-летним опытом работы с PostgreSQL. Твоя задача – проанализировать и оптимизировать медленный SQL-запрос.

Контекст:

  • СУБД: PostgreSQL 14.
  • Проблема: Запрос выполняется более 5 минут на таблицах размером ~100 млн строк каждая.
  • Схемы таблиц:
    • ‘users’ (user_id INT, registration_date DATE, city VARCHAR)
    • ‘actions’ (action_id INT, user_id INT, action_type VARCHAR, created_at TIMESTAMP)
  • Индексы: есть первичные ключи на ‘user_id’ и ‘action_id’.

Вот запрос для анализа:
[вставьте сюда ваш медленный SQL-запрос]

Задача:

  1. Проанализируй план выполнения запроса (EXPLAIN), если бы ты его получил. Укажи на самые затратные операции (например, Full Table Scan, вложенные циклы).
  2. Выяви потенциальные проблемы в текущем запросе (например, неправильный порядок JOIN, отсутствие нужных индексов, избыточные подзапросы).
  3. Напиши оптимизированную версию запроса.
  4. Предложи, какие индексы необходимо создать для ускорения этого и похожих запросов. Напиши команды для их создания.
  5. Объясни, почему предложенная версия запроса и новые индексы должны работать быстрее.

Формат ответа: Пошаговый анализ с разделами: “Анализ узких мест”, “Оптимизированный запрос”, “Рекомендации по индексированию”, “Объяснение”.

*****

Почему это работает: Запрос не просто просит “улучшить”, а требует провести анализ, как это сделал бы опытный администратор баз данных. Указание на схему, индексы и версию СУБД дает ИИ всю информацию для вынесения экспертного суждения.

3. Генерация Python-скрипта для трансформации данных

Проблема: Нужно написать скрипт для сложной обработки данных, но не хочется тратить время на написание шаблонного кода.

Решение: Этот промпт генерирует готовый к использованию Python-скрипт с комментариями, обработкой ошибок и соблюдением лучших практик.

Текст промпта:

*****

Ты – старший инженер данных, специализирующийся на Python и Apache Spark. Твоя задача – написать PySpark-скрипт для трансформации данных.

Контекст:

  • Входные данные: Parquet-файл в HDFS по пути ‘/data/raw/events’.
  • Схема входных данных: ‘event_id’ (string), ‘user_id’ (long), ‘event_timestamp’ (long, unix time), ‘payload’ (string, JSON).
  • Выходные данные: Parquet-файл, сохраненный в HDFS по пути ‘/data/processed/events_flat’, партиционированный по дате.

Задача:
Напиши PySpark-скрипт, который выполняет следующие шаги:

  1. Читает исходный Parquet-файл.
  2. Преобразует ‘event_timestamp’ в читаемый формат ‘yyyy-MM-dd HH:mm:ss’ и сохраняет в новую колонку ‘event_time’.
  3. Создает колонку ‘event_date’ (формат ‘yyyy-MM-dd’) для партиционирования.
  4. Разбирает JSON из колонки ‘payload’ и извлекает из него поля ‘event_type’ (string) и ‘device_id’ (string) в отдельные колонки.
  5. Удаляет исходную колонку ‘payload’.
  6. Обрабатывает возможные ошибки при разборе JSON: если JSON некорректен, поля ‘event_type’ и ‘device_id’ должны быть заполнены значением NULL.
  7. Сохраняет результат в формате Parquet, используя партиционирование по колонке ‘event_date’ с перезаписью существующих партиций.
  8. Код должен быть хорошо прокомментирован и следовать стилю PEP8. Добавь логирование ключевых этапов (начало, чтение, окончание трансформации, сохранение).

Формат ответа: Полный текст Python-скрипта с импортами, инициализацией Spark-сессии и всеми шагами обработки.

*****

Почему это работает: Промпт детализирует каждый шаг трансформации, включая такие важные нюансы, как обработка ошибок, партиционирование и логирование. Это превращает ИИ из простого генератора кода в помощника, который пишет производственный код.

4. Создание схемы данных (“звезда”)

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

Решение: Промпт помогает разработать классическую схему “звезда”, идеально подходящую для BI-систем и аналитических запросов.

Текст промпта:

*****

Ты – архитектор BI-систем. Твоя задача – спроектировать модель данных по схеме “звезда” для анализа продаж в розничной сети.

Контекст:

  • Бизнес-процесс: анализ продаж.
  • Основные сущности: Продажи, Товары, Магазины, Покупатели, Даты.
  • Гранулярность таблицы фактов: одна запись на одну проданную позицию в чеке.

Задача:

  1. Определи таблицу фактов. Укажи, какие числовые показатели (факты) она будет содержать (например, ‘количество’, ‘цена’, ‘сумма_скидки’).
  2. Определи таблицы-измерения (dimensions). Для каждого измерения опиши его атрибуты.
    • Измерение “Товары” (атрибуты: ‘название’, ‘категория’, ‘бренд’).
    • Измерение “Магазины” (атрибуты: ‘название_магазина’, ‘город’, ‘регион’).
    • Измерение “Покупатели” (атрибуты: ‘имя’, ‘пол’, ‘возрастная_группа’).
    • Измерение “Даты” (атрибуты: ‘полная_дата’, ‘год’, ‘квартал’, ‘месяц’, ‘день_недели’).
  3. Напиши SQL DDL-команды (CREATE TABLE) для создания всех таблиц (таблицы фактов и измерений) для СУБД PostgreSQL. Укажи первичные и внешние ключи для связи таблиц.
  4. Нарисуй диаграмму схемы данных с помощью синтаксиса Mermaid.

Формат ответа: Разделы: “Таблица фактов”, “Таблицы измерений”, “SQL DDL-скрипты”, “Диаграмма схемы данных (Mermaid)”.

*****

Почему это работает: Промпт четко определяет бизнес-контекст и гранулярность, что является ключевым для правильного проектирования DWH. Требование создать DDL-скрипты и диаграмму делает результат максимально практичным.

5. Написание Dockerfile для приложения с данными

Проблема: Нужно упаковать приложение для обработки данных в Docker-контейнер для удобства развертывания, но есть сложности с зависимостями и конфигурацией.

Решение: Промпт генерирует оптимизированный и безопасный Dockerfile, который следует лучшим практикам.

Текст промпта:

*****

Ты – DevOps-инженер со специализацией на контейнеризации. Твоя задача – написать Dockerfile для Python-приложения, которое обрабатывает данные.

Контекст:

  • Приложение: Python-скрипт ‘process.py’.
  • Зависимости: указаны в файле ‘requirements.txt’ (содержит ‘pandas’, ‘psycopg2-binary’).
  • Задача приложения: подключается к базе данных PostgreSQL и выполняет расчеты.
  • Переменные окружения: приложению нужны ‘DB_HOST’, ‘DB_USER’, ‘DB_PASSWORD’ для подключения к базе.

Задача:
Напиши Dockerfile, который:

  1. Использует официальный легковесный базовый образ Python (например, ‘python:3.9-slim’).
  2. Использует многоступенчатую сборку (multi-stage build) для уменьшения размера итогового образа. На первом этапе устанавливаются зависимости для сборки, на втором – только рантайм-зависимости.
  3. Копирует файл ‘requirements.txt’ и устанавливает зависимости до копирования остального кода для эффективного использования кеша слоев Docker.
  4. Создает непривилегированного пользователя (non-root user) и запускает приложение от его имени для повышения безопасности.
  5. Копирует исходный код приложения (‘process.py’) в рабочую директорию.
  6. В качестве команды по умолчанию (CMD) задает запуск скрипта ‘python process.py’.

Дополнительно напиши краткое объяснение, почему каждый из шагов (многоступенчатая сборка, запуск от non-root user) важен.

Формат ответа: Полный текст Dockerfile с комментариями к каждой инструкции и отдельный блок с объяснениями.

*****

Почему это работает: Промпт запрашивает не просто Dockerfile, а Dockerfile, созданный по лучшим практикам: многоступенчатая сборка, кэширование слоев, безопасность. Это показывает ИИ, что требуется решение производственного уровня.

6. Создание DAG для Apache Airflow

Проблема: Требуется автоматизировать запуск конвейера данных по расписанию, но написание DAG (Directed Acyclic Graph) в Airflow требует знания его синтаксиса и особенностей.

Решение: Промпт генерирует готовый Python-файл с кодом DAG, который можно сразу поместить в папку Airflow.

Текст промпта:

*****

Ты – опытный пользователь Apache Airflow. Твоя задача – написать код DAG для оркестрации ETL-процесса.

Контекст:

  • Название DAG: ‘sales_data_pipeline’.
  • Расписание запуска: ежедневно в 03:00 по московскому времени.
  • Задачи в DAG:
    1. ‘fetch_data_from_api’ (BashOperator): выполняет curl-запрос для получения данных и сохранения их в файл.
    2. ‘process_data_with_spark’ (SparkSubmitOperator): запускает Spark-джоб для обработки скачанных данных.
    3. ‘check_data_quality’ (PythonOperator): выполняет Python-функцию для проверки качества обработанных данных.
    4. ‘send_notification_success’ (EmailOperator): отправляет письмо об успешном завершении.
    5. ‘send_notification_failure’ (EmailOperator): отправляет письмо в случае сбоя любой из задач.

Логика зависимостей:
‘fetch_data_from_api’ -> ‘process_data_with_spark’ -> ‘check_data_quality’ -> ‘send_notification_success’.
Если любая из задач падает, должна выполниться ‘send_notification_failure’.

Задача:
Напиши полный Python-код для этого DAG. Используй TaskFlow API, если это уместно. Установи ‘retries=3’ для всех задач, кроме отправки уведомлений. Определи ‘default_args’ для DAG. Код должен быть готов к использованию в Airflow 2.x.

Формат ответа: Полный Python-файл (.py) с кодом DAG.

*****

Почему это работает: Промпт точно описывает операторы, зависимости между ними и параметры (расписание, ретраи), что позволяет ИИ сгенерировать корректный и функциональный DAG, а не просто синтаксический каркас.

7. Разработка логики обработки потоковых данных

Проблема: Необходимо обрабатывать данные в режиме реального времени, например, из Apache Kafka, но сложность представляет управление состоянием и окнами.

Решение: Промпт помогает создать код для потоковой обработки с использованием Spark Streaming, включая оконные функции.

Текст промпта:

*****

Ты – специалист по потоковой обработке данных с помощью Spark Structured Streaming. Твоя задача – написать код для анализа потока кликов пользователей в реальном времени.

Контекст:

  • Источник: топик Kafka ‘clicks_stream’.
  • Формат сообщений в Kafka: JSON со схемой {‘user_id’: string, ‘timestamp’: long, ‘page_url’: string}.
  • Задача: считать количество кликов по каждой странице (‘page_url’) в 1-минутных “опрокидывающихся” окнах (tumbling window).
  • Вывод: результат выводить в консоль в режиме ‘update’.

Задача:
Напиши Python-скрипт, использующий PySpark Structured Streaming, который:

  1. Подключается к Kafka и читает данные из топика ‘clicks_stream’.
  2. Разбирает JSON-строку.
  3. Преобразует ‘timestamp’ в тип timestamp.
  4. Группирует данные по ‘page_url’ и 1-минутному окну на основе колонки ‘timestamp’.
  5. Агрегирует данные, подсчитывая количество событий в каждом окне.
  6. Выводит результат в консоль.
  7. Добавь водяной знак (watermark) на 2 минуты для обработки запоздавших данных.

Формат ответа: Полный PySpark-скрипт.

*****

Почему это работает: Промпт конкретизирует ключевые аспекты потоковой обработки: тип окна, его размер, столбец времени, режим вывода и обработку запоздавших данных (watermark). Это позволяет получить точное и рабочее решение.

8. Генерация модульных тестов для конвейера данных

Проблема: Ручное тестирование конвейеров данных отнимает много времени и не гарантирует надежности. Нужно автоматизировать этот процесс.

Решение: Промпт генерирует код модульных тестов для функции трансформации данных с использованием библиотеки `pytest`.

Текст промпта:

*****

Ты – инженер по качеству данных (Data QA Engineer). Твоя задача – написать модульные тесты для Python-функции, которая трансформирует данные.

Контекст:

  • Фреймворк для тестирования: pytest.
  • Библиотека для обработки данных: pandas.
  • Тестируемая функция ‘transform_data’ находится в файле ‘transforms.py’:
    # transforms.py
    import pandas as pd
    def transform_data(df: pd.DataFrame) -> pd.DataFrame:
        df['full_name'] = df['first_name'] + ' ' + df['last_name']
        df = df.dropna(subset=['email'])
        return df
    

Задача:
Напиши Python-код для файла ‘test_transforms.py’, который содержит следующие тесты для функции ‘transform_data’:

  1. Тест, проверяющий корректное создание колонки ‘full_name’.
  2. Тест, проверяющий удаление строк с отсутствующим ’email’.
  3. Тест, который проверяет, что функция не падает на пустом DataFrame.
  4. Тест, который проверяет, что исходный DataFrame не изменяется (если функция должна работать с копией).

Для каждого теста подготовь небольшие примеры входных DataFrame и ожидаемый результат.

Формат ответа: Полный код файла ‘test_transforms.py’ с импортами и всеми тестовыми случаями.

*****

Почему это работает: Промпт предоставляет сам код для тестирования и четко описывает, какие именно аспекты его работы нужно проверить. Это позволяет ИИ сгенерировать исчерпывающий набор тестов, покрывающий основные и пограничные случаи.

9. Написание документации для конвейера данных

Проблема: Конвейер данных работает, но никто, кроме его создателя, не понимает, как он устроен. Отсутствие документации затрудняет поддержку и развитие.

Решение: Промпт помогает создать структурированную и понятную документацию в формате Markdown.

Текст промпта:

*****

Ты – технический писатель, специализирующийся на документации для данных. Твоя задача – написать документацию для ETL-конвейера ‘user_profiles_etl’.

Контекст:

  • Название конвейера: ‘Формирование витрины пользовательских профилей’.
  • Назначение: Ежедневно собирает данные о пользователях из CRM и логов активности, чтобы создать единую витрину данных для отдела маркетинга.
  • Технологии: Airflow, Spark, PostgreSQL.
  • Источники: таблица ‘clients’ в PostgreSQL, топик Kafka ‘user_activity’.
  • Результат: таблица ‘user_profiles_mart’ в Greenplum.

Задача:
Создай документацию в формате Markdown (файл README.md), которая включает следующие разделы:

  1. ‘Общее описание’: Краткое назначение конвейера.
  2. ‘Архитектура’: Краткое описание используемых технологий и потока данных. Можно использовать Mermaid для диаграммы.
  3. ‘Источники данных’: Описание каждого источника (откуда, какой формат).
  4. ‘Логика трансформации’: Ключевые шаги обработки данных (например, объединение, расчет LTV, сегментация).
  5. ‘Целевая таблица’: Описание структуры и полей итоговой витрины.
  6. ‘Инструкции по запуску и мониторингу’: Как запустить DAG вручную, где смотреть логи и на какие дашборды мониторинга обращать внимание.
  7. ‘Владелец и контакты’: Кто отвечает за конвейер.

Стиль текста: понятный для нетехнических специалистов (например, аналитиков).

Формат ответа: Текст в формате Markdown.

*****

Почему это работает: Промпт задает четкую структуру документа, которую ИИ должен заполнить на основе предоставленного контекста. Это гарантирует, что все важные аспекты конвейера будут описаны, и документация будет полезной.

10. Создание скрипта для проверки качества данных

Проблема: “Грязные” данные в источнике могут сломать конвейер или привести к неверным расчетам. Нужен автоматический способ выявления проблем.

Решение: Промпт генерирует скрипт, который выполняет набор проверок качества данных и сообщает о результатах.

Текст промпта:

*****

Ты – инженер по качеству данных (Data Quality Engineer). Твоя задача – написать Python-скрипт для валидации данных в DataFrame с использованием библиотеки Pandera.

Контекст:

  • Данные: DataFrame pandas, загруженный из CSV-файла с заказами.
  • Правила валидации:
    • ‘order_id’ (int): должен быть уникальным и не содержать пропусков.
    • ‘order_date’ (string, формат ‘YYYY-MM-DD’): должен быть валидной датой.
    • ‘amount’ (float): должен быть положительным числом.
    • ‘status’ (string): должен принимать одно из значений: ‘created’, ‘paid’, ‘shipped’, ‘delivered’.

Задача:
Напиши Python-скрипт, который:

  1. Определяет схему валидации Pandera на основе перечисленных правил.
  2. Создает пример DataFrame, который содержит как валидные, так и невалидные данные.
  3. Применяет схему к DataFrame, перехватывая исключение SchemaError.
  4. В случае ошибки выводит подробную информацию о том, какие именно проверки не прошли и на каких данных.
  5. Если данные валидны, выводит сообщение об успехе.

Формат ответа: Полный Python-скрипт с комментариями.

*****

Почему это работает: Промпт указывает на конкретную библиотеку (`Pandera`) и четко перечисляет правила валидации для каждого поля. Это позволяет ИИ сгенерировать точный и рабочий скрипт для автоматизации проверок качества данных.

11. Разработка логики для поиска аномалий

Проблема: Необходимо отслеживать внезапные всплески или падения ключевых метрик (например, количество регистраций), чтобы оперативно реагировать на проблемы или возможности.

Решение: Промпт помогает создать SQL-запрос для выявления аномалий в временных рядах с использованием статистических методов.

Текст промпта:

*****

Ты – аналитик данных, специализирующийся на поиске аномалий. Твоя задача – написать SQL-запрос для выявления аномальных дней по количеству регистраций.

Контекст:

  • СУБД: ClickHouse.
  • Таблица: ‘registrations’ со столбцами ‘registration_date’ (Date) и ‘user_id’ (UInt64).
  • Метод: будем считать аномалией день, когда количество регистраций отклоняется от скользящего среднего за последние 7 дней более чем на 3 стандартных отклонения.

Задача:
Напиши один SQL-запрос, который:

  1. Агрегирует данные для получения ежедневного количества регистраций.
  2. Рассчитывает скользящее среднее (moving average) и стандартное отклонение (standard deviation) за 7-дневное окно.
  3. Вычисляет Z-оценку (Z-score) для каждого дня.
  4. Отбирает только те дни, где абсолютное значение Z-оценки больше 3.
  5. Результат должен содержать столбцы: ‘registration_date’, ‘registrations_count’, ‘moving_avg’, ‘moving_stddev’, ‘z_score’.

Формат ответа: Полный текст SQL-запроса с комментариями, объясняющими логику работы оконных функций.

*****

Почему это работает: Промпт дает четкое определение “аномалии” через конкретный статистический метод (Z-оценка на основе скользящего среднего). Это позволяет ИИ перевести бизнес-требование в точный математический расчет на SQL.

12. Проектирование дашборда для мониторинга

Проблема: Конвейер данных работает, но его состояние непрозрачно. Нужно создать инструмент для визуального контроля его здоровья.

Решение: Промпт помогает спроектировать структуру дашборда мониторинга, определив ключевые метрики и визуализации.

Текст промпта:

*****

Ты – SRE-инженер (Site Reliability Engineer). Твоя задача – спроектировать дашборд для мониторинга состояния ETL-конвейера в системе Yandex DataLens (или Grafana).

Контекст:

  • Конвейер: загружает данные о кликах пользователей каждые 15 минут.
  • Технологии: Kafka -> Spark Streaming -> ClickHouse.
  • Цель дашборда: быстро оценивать здоровье конвейера и находить причины проблем.

Задача:
Опиши структуру дашборда. Для каждого виджета укажи:

  1. Название виджета (например, “Задержка данных в Kafka”).
  2. Метрику, которую он отображает.
  3. Тип визуализации (график, число, таблица, индикатор).
  4. SQL-запрос к системным таблицам или таблицам с данными для получения этой метрики (можно псевдокод).

Примеры виджетов для включения в дашборд:

  • Текущая задержка (lag) в топиках Kafka.
  • Количество обработанных сообщений в минуту (Spark Streaming).
  • Количество ошибок/сбоев при обработке.
  • Время выполнения последнего батча.
  • Количество свежих записей в целевой таблице ClickHouse.
  • Проверка свежести данных (разница между текущим временем и временем последней записи).

Формат ответа: Структурированный список виджетов с описанием по 4 пунктам для каждого.

*****

Почему это работает: Промпт не просит “нарисовать дашборд”, а декомпозирует задачу на проектирование конкретных виджетов с метриками и запросами. Это позволяет получить практическое руководство для создания дашборда в любой BI-системе.

13. Объяснение сложной концепции простыми словами

Проблема: Нужно объяснить коллеге или менеджеру сложный технический термин (например, “идемпотентность” или “каппа-архитектура”), но сложно подобрать понятные аналогии.

Решение: Промпт помогает получить простое и ясное объяснение с примерами и аналогиями.

Текст промпта:

*****

Ты – евангелист данных, мастер объяснять сложные вещи простым языком. Твоя задача – объяснить концепцию “[укажите концепцию, например, ‘идемпотентность конвейера данных’]”.

Целевая аудитория: [укажите аудиторию, например, ‘младший аналитик данных’ или ‘продукт-менеджер без технического бэкграунда’].

Задача:
Объясни концепцию, используя следующую структуру:

  1. ‘Что это такое?’: Простое определение в одном-двух предложениях.
  2. ‘Аналогия из реальной жизни’: Приведи понятную аналогию (например, для идемпотентности – многократное нажатие кнопки вызова лифта).
  3. ‘Пример в инженерии данных’: Объясни, как эта концепция применяется на практике в ETL-процессах.
  4. ‘Почему это важно?’: Опиши, какие проблемы решает или предотвращает применение этой концепции (например, предотвращение дублирования данных при перезапуске задачи).

Избегай сложного технического жаргона. Стиль – дружелюбный и понятный.

Формат ответа: Текст, разбитый на 4 указанных раздела.

*****

Почему это работает: Структура “определение – аналогия – пример – польза” является классической формулой хорошего объяснения. Промпт заставляет ИИ следовать ей, что гарантирует понятный и полезный результат для указанной аудитории.

14. Сравнение двух технологий

Проблема: Нужно выбрать технологию для проекта (например, Apache Flink vs. Spark Streaming), но сложно объективно оценить все плюсы и минусы.

Решение: Промпт генерирует детальное сравнение двух технологий по ключевым критериям, помогая сделать осознанный выбор.

Текст промпта:

*****

Ты – независимый технический консультант. Твоя задача – провести объективное сравнение двух технологий: [технология 1, например, ‘Apache Spark Structured Streaming’] и [технология 2, например, ‘Apache Flink’].

Контекст:

  • Задача: построение системы для обработки финансовых транзакций в режиме реального времени.
  • Ключевые требования: низкая задержка (low-latency), гарантии обработки “exactly-once”, высокая пропускная способность.

Задача:
Сравни эти две технологии по следующим критериям в виде таблицы:

  1. ‘Модель обработки’: Как технология работает с данными (микро-батчи vs. истинный стриминг).
  2. ‘Производительность и задержка’: Какая из них обычно обеспечивает меньшую задержку.
  3. ‘Управление состоянием (State Management)’: Возможности и надежность.
  4. ‘Оконные функции’: Гибкость и разнообразие окон.
  5. ‘Экосистема и сообщество’: Насколько развиты библиотеки и поддержка.
  6. ‘Простота использования’: Порог вхождения и сложность API.
  7. ‘Гарантии доставки’: Поддержка ‘at-least-once’, ‘exactly-once’.

После таблицы сделай краткий вывод: какую технологию и в каком случае лучше выбрать для нашей задачи и почему.

Формат ответа: Таблица сравнения и раздел “Рекомендация”.

*****

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

15. Генерация регулярного выражения

Проблема: Нужно извлечь структурированную информацию из неструктурированной текстовой строки (например, из логов), но написание сложных “регулярок” – это всегда головная боль.

Решение: Промпт генерирует нужное регулярное выражение и объясняет, как оно работает.

Текст промпта:

*****

Ты – эксперт по регулярным выражениям. Твоя задача – составить регулярное выражение для извлечения данных из строки лога.

Контекст:

  • Пример строки лога: [2023-10-27 10:15:30] INFO: User 'alex@example.com' performed action 'login' from IP '192.168.1.10'
  • Данные для извлечения:
    • ‘timestamp’: 2023-10-27 10:15:30
    • ‘level’: INFO
    • ’email’: alex@example.com
    • ‘action’: login
    • ‘ip_address’: 192.168.1.10

Задача:

  1. Напиши регулярное выражение (PCRE-совместимое), которое извлекает все пять указанных полей в именованные группы захвата (named capture groups).
  2. Предоставь подробное объяснение каждой части регулярного выражения.
  3. Приведи пример использования этого выражения в Python с помощью модуля re.

Формат ответа: Разделы: “Регулярное выражение”, “Объяснение”, “Пример на Python”.

*****

Почему это работает: Промпт дает конкретный пример строки и четко указывает, что нужно извлечь. Требование использовать именованные группы и предоставить объяснение делает результат не только рабочим, но и понятным для дальнейшего использования.

16. Разработка скрипта для миграции данных

Проблема: Необходимо перенести данные из одной базы данных в другую, минимизировав время простоя и риск потери данных.

Решение: Промпт помогает составить план и сгенерировать скрипт для миграции данных между различными СУБД.

Текст промпта:

*****

Ты – специалист по миграции данных. Твоя задача – создать Python-скрипт для переноса данных из таблицы MySQL в таблицу ClickHouse.

Контекст:

  • Источник: MySQL, таблица ‘logs’ (id, message, created_at).
  • Приемник: ClickHouse, таблица ‘logs_ch’ (id, message, created_at).
  • Объем данных: 1 миллиард строк. Прямая выгрузка в память невозможна.
  • Библиотеки: ‘mysql-connector-python’, ‘clickhouse-driver’.

Задача:
Напиши Python-скрипт, который:

  1. Подключается к обеим базам данных.
  2. Считывает данные из MySQL порциями (батчами) по 100 000 строк, чтобы избежать проблем с памятью.
  3. Вставляет каждую порцию данных в ClickHouse.
  4. Использует курсор на стороне сервера в MySQL (server-side cursor) для эффективного чтения.
  5. Выводит прогресс в консоль (например, “Вставлено 100000 строк…”).
  6. Обеспечивает корректную обработку ошибок и закрытие соединений.

Формат ответа: Полный Python-скрипт с комментариями, объясняющими логику батчинга.

*****

Почему это работает: Промпт акцентирует внимание на ключевой проблеме при работе с большими данными – потреблении памяти. Указание на необходимость батчинга и использования серверных курсоров направляет ИИ на создание эффективного и масштабируемого решения.

17. Генерация конфигурационного файла

Проблема: Настройка производительности Spark-приложения требует знания десятков параметров конфигурации. Сложно подобрать оптимальные значения.

Решение: Промпт генерирует шаблон конфигурационного файла с рекомендованными параметрами и объяснениями.

Текст промпта:

*****

Ты – эксперт по производительности Apache Spark. Твоя задача – сгенерировать оптимальную конфигурацию для Spark-приложения.

Контекст:

  • Кластер: Yandex Data Proc (или любой другой Hadoop-кластер).
  • Характеристики узла-исполнителя (executor node): 8 ядер CPU, 64 ГБ RAM.
  • Количество исполнителей: 10.
  • Задача приложения: чтение 2 ТБ данных из HDFS, выполнение сложных join-операций и агрегаций, запись результата в Parquet.

Задача:

  1. Сгенерируй конфигурационные параметры для spark-submit или для файла spark-defaults.conf.
  2. Рассчитай и предложи оптимальные значения для следующих ключевых параметров:
    • spark.executor.instances
    • spark.executor.cores
    • spark.executor.memory
    • spark.driver.memory
    • spark.sql.shuffle.partitions
    • spark.default.parallelism
  3. Добавь параметры для включения сериализатора Kryo и настройки сжатия промежуточных данных.
  4. Для каждого параметра напиши краткое объяснение, почему выбрано именно такое значение и на что оно влияет.

Формат ответа: Список параметров в формате ключ=значение и блок с объяснениями.

*****

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

18. Скрипт для анонимизации данных

Проблема: Для тестирования или передачи аналитикам нужны данные, похожие на реальные, но без персональной информации (ФИО, email, телефоны).

Решение: Промпт генерирует скрипт, который заменяет чувствительные данные на сгенерированные (фейковые), сохраняя при этом структуру.

Текст промпта:

*****

Ты – специалист по безопасности данных. Твоя задача – написать Python-скрипт для анонимизации данных в CSV-файле.

Контекст:

  • Исходный файл: ‘clients.csv’.
  • Колонки для анонимизации: ‘full_name’, ’email’, ‘phone_number’, ‘passport_series’, ‘passport_number’.
  • Библиотека для генерации фейковых данных: Faker.
  • Требование: необходимо сохранить консистентность. Если в исходных данных один и тот же человек встречается несколько раз, его анонимизированные данные также должны быть одинаковыми.

Задача:
Напиши Python-скрипт, который:

  1. Читает ‘clients.csv’ с помощью pandas.
  2. Для каждой уникальной записи в колонке ‘full_name’ генерирует одно фейковое ФИО и сохраняет это сопоставление в словаре.
  3. Заменяет все вхождения ‘full_name’ на соответствующие фейковые значения из словаря.
  4. Аналогично поступает с колонками ’email’ и ‘phone_number’.
  5. Колонки ‘passport_series’ и ‘passport_number’ заменяет на случайно сгенерированные строки цифр.
  6. Сохраняет анонимизированный DataFrame в новый файл ‘clients_anonymized.csv’.

Формат ответа: Полный Python-скрипт с комментариями.

*****

Почему это работает: Промпт акцентирует внимание на важном требовании – консистентности анонимизации. Это заставляет ИИ реализовать более сложную логику с использованием словарей, что критически важно для создания правдоподобных тестовых данных.

19. Проектирование фреймворка для валидации данных

Проблема: Разовые проверки качества данных полезны, но нужен системный подход – единый фреймворк, который можно легко расширять.

Решение: Промпт помогает спроектировать архитектуру такого фреймворка, основанного на конфигурационных файлах.

Текст промпта:

*****

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

Контекст:

  • Идея: проверки качества данных должны описываться в YAML-файлах, а не в коде, чтобы их могли добавлять даже аналитики.
  • Фреймворк должен уметь читать данные из разных источников (например, CSV, таблицы PostgreSQL) и применять к ним набор проверок.

Задача:

  1. Предложи структуру YAML-файла для описания проверок. Он должен позволять указывать таблицу/файл, колонку и тип проверки (например, ‘not_null’, ‘is_unique’, ‘min_value’, ‘max_value’, ‘pattern’). Приведи пример такого YAML.
  2. Опиши архитектуру Python-приложения. Какие классы или модули понадобятся? (например, ‘DataReader’ для чтения данных, ‘Validator’ для выполнения проверок, ‘RuleParser’ для парсинга YAML).
  3. Напиши псевдокод или упрощенный Python-код для основного класса ‘Validator’, который загружает правила из YAML и последовательно применяет их к DataFrame.
  4. Опиши, как можно расширять фреймворк, добавляя новые типы проверок.

Формат ответа: Разделы: “Структура YAML-конфигурации”, “Архитектура приложения”, “Пример кода Validator”, “Расширяемость”.

*****

Почему это работает: Промпт переводит задачу с уровня “напиши скрипт” на уровень “спроектируй систему”. Фокус на конфигурации в YAML и расширяемости заставляет ИИ думать как архитектор, предлагая гибкое и масштабируемое решение.

20. Помощь в выборе базы данных

Проблема: Для нового проекта нужно выбрать подходящую СУБД, но среди десятков вариантов (реляционные, NoSQL, колоночные) легко запутаться.

Решение: Промпт помогает получить структурированную рекомендацию на основе требований проекта.

Текст промпта:

*****

Ты – независимый консультант по базам данных. Твоя задача – порекомендовать оптимальную СУБД для нового проекта.

Контекст проекта:

  • Тип приложения: [опишите приложение, например, ‘социальная сеть для любителей кошек’]
  • Тип данных: [опишите данные, например, ‘профили пользователей, посты, комментарии, лайки, граф друзей’]
  • Ожидаемая нагрузка: [опишите нагрузку, например, ’10 000 запросов в секунду на чтение, 1000 на запись’]
  • Ключевые типы запросов: [опишите запросы, например, ‘выборка ленты постов от друзей, поиск пользователей, запись лайков’]
  • Требования к системе: [укажите требования, например, ‘высокая доступность, горизонтальная масштабируемость, гибкая схема данных для профилей’]

Задача:

  1. Предложи 2-3 наиболее подходящих варианта СУБД из разных категорий (например, реляционные, документные, графовые).
  2. Для каждого варианта кратко опиши его сильные и слабые стороны в контексте данного проекта.
  3. Сделай финальную рекомендацию: какой вариант (или комбинация вариантов, например, PostgreSQL для профилей и Neo4j для графа друзей) является наилучшим выбором и почему.
  4. Укажи на потенциальные риски или сложности при использовании рекомендованного решения.

Формат ответа: Структурированный анализ с разделами для каждой предложенной СУБД и итоговой рекомендацией.

*****

Почему это работает: Промпт заставляет ИИ действовать как настоящий консультант: не давать один ответ, а анализировать требования, предлагать альтернативы и обосновывать свой выбор. Это помогает принять взвешенное решение.

21. Генерация плана для обработки медленно меняющихся измерений (SCD)

Проблема: Атрибуты в таблицах-измерениях (например, категория товара или отдел сотрудника) могут меняться со временем. Нужно правильно обрабатывать эти изменения, чтобы не потерять исторические данные.

Решение: Промпт помогает разработать логику для реализации одного из типов SCD (Slowly Changing Dimensions).

Текст промпта:

*****

Ты – архитектор хранилищ данных. Твоя задача – разработать SQL-логику для реализации медленно меняющегося измерения типа 2 (SCD Type 2).

Контекст:

  • Хранилище: на базе Greenplum (или любой другой MPP-СУБД).
  • Измерение для обработки: ‘dim_employees’ (таблица сотрудников).
  • Ключевые атрибуты, которые нужно отслеживать: ‘department’ (отдел), ‘position’ (должность).
  • Структура таблицы ‘dim_employees’: ’employee_key’ (surrogate key), ’employee_id’ (natural key), ‘full_name’, ‘department’, ‘position’, ‘start_date’, ‘end_date’, ‘is_current’ (boolean).

Задача:
Предположим, у нас есть стейджинговая таблица ‘stg_employees’ со свежими данными на сегодня. Напиши последовательность SQL-запросов (или один MERGE-запрос), которая:

  1. Находит сотрудников, у которых изменился ‘department’ или ‘position’. Для этих сотрудников в ‘dim_employees’ проставляет ‘is_current’ = false и ‘end_date’ = сегодня.
  2. Вставляет в ‘dim_employees’ новые записи для этих же сотрудников с новыми значениями ‘department’/’position’, ‘start_date’ = сегодня, ‘end_date’ = NULL и ‘is_current’ = true.
  3. Находит новых сотрудников (которых нет в ‘dim_employees’) и вставляет их с ‘start_date’ = сегодня и ‘is_current’ = true.

Формат ответа: Последовательность SQL-команд с подробными комментариями к каждому шагу.

*****

Почему это работает: SCD2 – это классическая, но нетривиальная задача в DWH. Промпт четко описывает логику и структуру таблицы, что позволяет ИИ сгенерировать корректный и сложный SQL-код, который сложно было бы написать с нуля без ошибок.

22. Скрипт для получения данных из REST API

Проблема: Множество данных доступно через REST API, но нужно написать надежный скрипт, который будет обрабатывать пагинацию, ошибки и ограничения по частоте запросов.

Решение: Промпт генерирует Python-скрипт, который инкапсулирует всю логику работы с API.

Текст промпта:

*****

Ты – Python-разработчик, специализирующийся на интеграциях. Твоя задача – написать скрипт для извлечения всех заказов из REST API.

Контекст:

  • API: вымышленный сервис ‘shop-api.com’.
  • Конечная точка (endpoint): https://api.shop-api.com/v1/orders.
  • Аутентификация: через заголовок X-API-Key: [ваш ключ].
  • Пагинация: API возвращает по 100 заказов на страницу. Для получения следующей страницы нужно использовать параметр ?page=2, ?page=3 и так далее. Когда заказы заканчиваются, API возвращает пустой массив [].
  • Ограничение частоты запросов (rate limiting): не более 10 запросов в секунду.

Задача:
Напиши Python-скрипт, который:

  1. Использует библиотеку requests и time.
  2. В цикле запрашивает страницы с заказами, пока не получит пустой ответ.
  3. Добавляет все полученные заказы в один список.
  4. Вставляет паузу (time.sleep) между запросами, чтобы не превысить ограничение.
  5. Обрабатывает возможные HTTP-ошибки (например, 401, 429, 500) и выводит информативные сообщения.
  6. В конце сохраняет весь список заказов в JSON-файл ‘all_orders.json’.

Формат ответа: Полный Python-скрипт.

*****

Почему это работает: Промпт описывает все реальные сложности работы с API: аутентификацию, пагинацию, ограничения. Это позволяет получить не просто один `requests.get()`, а полноценный и надежный клиент для API.

23. Генерация плана по оптимизации затрат в облачном DWH

Проблема: Счета за использование облачного хранилища данных (например, BigQuery или Snowflake) растут, и нужно найти способы их сократить без ущерба для производительности.

Решение: Промпт помогает составить чек-лист конкретных действий по оптимизации затрат.

Текст промпта:

*****

Ты – FinOps-специалист с экспертизой в облачных хранилищах данных. Твоя задача – предложить план по снижению затрат на [укажите DWH, например, ‘Google BigQuery’].

Контекст:

  • Основные затраты идут на хранение данных и на выполнение аналитических запросов.
  • Команда состоит из аналитиков и инженеров данных разного уровня.
  • Часто выполняются запросы вида SELECT * FROM ...

Задача:
Создай чек-лист из 10-15 конкретных рекомендаций по оптимизации затрат, сгруппированных по категориям. Для каждой рекомендации кратко объясни, как она помогает экономить.

Категории для рекомендаций:

  1. ‘Оптимизация хранения’:
    • Настройка жизненного цикла данных (time-to-live).
    • Использование долгосрочного хранения (long-term storage).
    • Правильный выбор ключей партиционирования и кластеризации.
  2. ‘Оптимизация запросов’:
    • Избегание SELECT *.
    • Использование пред-агрегированных витрин данных.
    • Обучение аналитиков смотреть на план выполнения запроса и объем сканируемых данных.
    • Настройка квот на пользователей или проекты.
  3. ‘Архитектурные изменения’:
    • Рассмотрение возможности использования материализованных представлений.
    • Оптимизация ETL-процессов для уменьшения количества операций записи.

Формат ответа: Маркированный список рекомендаций, сгруппированных по категориям.

*****

Почему это работает: Промпт структурирует задачу по понятным категориям (хранение, запросы, архитектура), что помогает ИИ выдать не разрозненные советы, а комплексный план действий. Это практическое руководство для команды.

24. Мозговой штурм признаков для модели машинного обучения

Проблема: Команда машинного обучения хочет создать модель (например, для предсказания оттока клиентов), но нуждается в качественных данных. Задача инженера данных – подготовить эти данные (признаки).

Решение: Промпт помогает сгенерировать идеи для новых признаков (features) на основе имеющихся сырых данных.

Текст промпта:

*****

Ты – опытный инженер данных, работающий в тесной связке с командой Data Science. Твоя задача – провести мозговой штурм и предложить идеи для генерации признаков (feature engineering) для модели предсказания оттока клиентов.

Контекст:

  • Бизнес-задача: предсказать, уйдет ли клиент в следующем месяце.
  • Имеющиеся сырые данные:
    • Таблица ‘users’ (user_id, registration_date, city).
    • Таблица ‘payments’ (user_id, payment_date, amount).
    • Таблица ‘app_sessions’ (user_id, session_start, session_end).

Задача:
Сгенерируй список из 15-20 потенциально полезных признаков, которые можно рассчитать на основе этих данных. Сгруппируй их по категориям:

  1. ‘Признаки, основанные на профиле’: (например, ‘возраст аккаунта в днях’).
  2. ‘Признаки, основанные на платежах’: (например, ‘средний чек’, ‘количество платежей за последний месяц’, ‘время с последнего платежа’).
  3. ‘Признаки, основанные на активности’: (например, ‘средняя длительность сессии’, ‘количество сессий за последнюю неделю’, ‘частота использования приложения’).
  4. ‘Комбинированные признаки’: (например, ‘LTV клиента’).

Для каждого признака укажи, как его можно рассчитать.

Формат ответа: Маркированный список идей признаков, сгруппированных по категориям.

*****

Почему это работает: Промпт четко определяет исходные данные и конечную цель, позволяя ИИ сфокусироваться на творческой задаче генерации идей. Группировка по категориям помогает структурировать результат и делает его более понятным для команды.

25. Создание наброска политики управления данными (Data Governance)

Проблема: В компании хаос с данными: непонятно, кто за что отвечает, где искать “золотую запись” и как обеспечить качество. Нужен первый шаг к наведению порядка.

Решение: Промпт помогает создать структуру основного документа по управлению данными, который станет основой для дальнейшей работы.

Текст промпта:

*****

Ты – руководитель по управлению данными (Head of Data Governance). Твоя задача – составить набросок политики управления данными для компании среднего размера.

Контекст:

  • Компания быстро растет, данные разрознены по разным системам.
  • Цель: внедрить базовые принципы Data Governance, чтобы повысить доверие к данным и эффективность работы с ними.

Задача:
Напиши структуру (оглавление) документа “Политика управления данными” и для каждого пункта кратко опиши, что он должен содержать.

Основные разделы для включения:

  1. ‘Введение и цели’: Зачем нужна эта политика.
  2. ‘Роли и ответственности’: Описание ролей (например, ‘Владелец данных’, ‘Стюард данных’) и их зоны ответственности.
  3. ‘Стандарты качества данных’: Определение ключевых метрик качества (полнота, точность, своевременность) и процедур их контроля.
  4. ‘Управление мастер-данными (MDM)’: Подход к определению и управлению “золотыми записями” (например, для клиентов, продуктов).
  5. ‘Каталог данных и бизнес-глоссарий’: Требование вести единый каталог данных и словарь бизнес-терминов.
  6. ‘Безопасность и доступ к данным’: Принципы классификации данных и правила предоставления доступа.
  7. ‘Жизненный цикл данных’: Политика хранения и архивирования.

Формат ответа: Структурированный документ с оглавлением и кратким описанием каждого раздела.

*****

Почему это работает: Промпт просит не написать всю политику, а создать ее каркас. Это более реалистичная задача для ИИ, результат которой станет отличной отправной точкой для обсуждения и детализации внутри компании.

Продвинутые команды для ИИ в задачах инженера данных

Команда/Модификатор Описание Пример использования в промпте
Действуй пошагово Заставляет ИИ разбить сложную задачу на логические этапы и описать каждый из них, прежде чем давать финальный ответ. Помогает при проектировании сложных систем. “Спроектируй архитектуру… Действуй пошагово: сначала определи источники, затем компоненты обработки, затем хранилище.”
Предложи три альтернативных решения Вместо одного ответа ИИ предоставит несколько вариантов, сравнив их плюсы и минусы. Полезно при выборе технологий или подходов. “…Сравни Flink и Spark Streaming. Предложи три альтернативных решения для задачи: одно на Flink, одно на Spark и одно с использованием облачного сервиса.”
Оцени сложность реализации по шкале от 1 до 5 Просит ИИ дать оценку трудоемкости предложенного им решения. Помогает приоритизировать задачи. “Напиши скрипт для миграции данных… В конце оцени сложность реализации этого подхода по шкале от 1 до 5, где 1 – просто, 5 – очень сложно.”
Укажи возможные узкие места и риски Заставляет ИИ думать не только о “счастливом пути”, но и о потенциальных проблемах: производительности, масштабируемости, поддержке. “Спроектируй ETL-конвейер… Укажи возможные узкие места в этой архитектуре и риски, связанные с выбором этих технологий.”
Напиши код, который будет понятен младшему специалисту Управляет стилем кода. ИИ будет добавлять больше комментариев, использовать более простые конструкции и избегать слишком “умных” оптимизаций. “Напиши Python-скрипт… Код должен быть максимально читаемым и понятным для младшего инженера данных.”
Выступи в роли критика Позволяет использовать ИИ для проверки собственных идей. Вы даете ему свое решение, а он ищет в нем недостатки. “Вот моя архитектура конвейера данных [описание]. Выступи в роли критика и найди в ней 3 слабых места.”

Неочевидные советы для максимальной эффективности

  1. Создайте “базовый промпт” с профилем вашей компании. Заведите текстовый файл, в котором описан ваш основной технологический стек (например, “Мы используем Airflow, Spark на Kubernetes, ClickHouse, Yandex DataLens”), стандарты кодирования и цели. Вставляйте этот текст в начало каждого сложного запроса, чтобы ИИ сразу получал весь необходимый контекст.
  2. Используйте ИИ как “резинового утенка”. Если вы застряли на сложной проблеме, попробуйте объяснить ее нейросети так, как будто это ваш коллега. Сам процесс формулирования мысли и разбиения задачи на части часто помогает найти решение, даже до того как ИИ даст ответ.
  3. Просите ИИ выступить в роли критика вашего кода или архитектуры. Вместо того чтобы просить написать что-то с нуля, предоставьте ИИ свой готовый код или схему и дайте ему роль “придирчивого тимлида”. Запрос “Найди 5 потенциальных проблем в этом коде” может дать больше пользы, чем “Напиши хороший код”.
  4. Ведите отдельные чаты для разных проектов или контекстов. Не смешивайте в одной беседе запросы про Spark, SQL и Docker. Разные чаты позволяют ИИ лучше удерживать контекст по конкретной теме, что повышает качество его ответов при последующих уточнениях.
  5. Требуйте не только код, но и тесты и документацию к нему. Запрос “Напиши функцию” – это половина дела. Правильный запрос звучит как: “Напиши функцию, модульные тесты для нее с использованием pytest и docstring в формате Google Style”. Это приучает к дисциплине и экономит массу времени в будущем.
  6. Для очень сложных задач давайте ИИ “цепочку мыслей” (Chain of Thought). Вместо того чтобы сразу просить финальное решение, покажите ему пример своих рассуждений. Например: “Мне нужно оптимизировать запрос. Я думаю, проблема в JOIN, потому что… или, может быть, в отсутствии индекса… Как бы ты рассуждал дальше?”. Это помогает направить “мысли” ИИ в нужное русло.