Внедрение искусственного интеллекта в работу изменило правила игры, но многие специалисты до сих пор не используют его потенциал на полную мощность. Вместо мощного ассистента нейросеть часто становится источником разочарований, выдавая общие и бесполезные ответы. Особенно остро это ощущается в такой технически сложной сфере, как инженерия данных. Эта статья призвана исправить ситуацию, предоставив рабочие промпты для инженера данных, которые помогут автоматизировать рутину и решать сложные задачи.
Проблема не в нейросетях, а в том, как мы с ними общаемся. Без четкого контекста, задачи и ожидаемого формата результата, ИИ не может угадать, что именно вам нужно. Он не сидит рядом с вами в офисе и не знает специфику ваших проектов. Поэтому ключ к успеху – в правильной формулировке запросов.
Здесь собраны не просто примеры, а готовые шаблоны, созданные с учетом типичных ошибок и реальных потребностей инженеров данных. Вы научитесь получать от ИИ именно то, что ожидаете, экономя время и нервы. В статье вы найдете:
- Разбор частых ошибок при составлении запросов.
- Готовые шаблоны для проектирования ETL/ELT-процессов.
- Примеры промптов для оптимизации SQL-запросов и написания кода.
- Инструкции для создания документации и схем данных.
- Неочевидные приемы для повышения эффективности работы с ИИ.
Типичные ошибки при составлении запросов к ИИ
- Просить написать код без указания технологического стека. Нейросеть не знает, работаете вы с Apache Spark, Flink или используете чистый Python с Pandas. В итоге вы получите универсальный, но, скорее всего, неподходящий для вашей инфраструктуры код.
- Давать задачу без контекста и примера данных. Запрос “Напиши скрипт для очистки данных” без описания структуры этих данных (названия колонок, типы, примеры значений) приведет к созданию скрипта, который очищает “сферические данные в вакууме” и потребует полной переделки.
- Игнорировать требования к производительности и оптимизации. ИИ по умолчанию может сгенерировать работающий, но крайне неэффективный код. Если не указать, что решение должно быть оптимизировано для больших объемов данных или иметь низкую задержку, вы рискуете получить “узкое место” в своем конвейере данных.
- Забывать про стандарты кодирования и документирование. Получив “стену” кода без комментариев и документации, вы потратите больше времени на его понимание и интеграцию, чем если бы написали все с нуля. Всегда просите добавлять комментарии, пояснения и следовать принятым в вашей команде стандартам.
- Формулировать запрос одним общим предложением. “Создай ETL-процесс” – это не задача, а название целого проекта. Такой запрос обречен на провал. Эффективный промпт должен содержать роль, детальное описание шагов, формат ответа и ограничения.
- Не просить объяснить предложенное решение. Получив готовый скрипт, многие просто копируют его, не разобравшись в логике. Это опасно, так как вы не сможете его поддерживать или модифицировать. Всегда просите ИИ объяснить, почему он выбрал именно такой подход и как работает каждая часть кода.
Сравнение запросов: от неясного к точному
| Расплывчатый запрос инженера | Почему это неэффективно | Точная формулировка для ИИ |
| Напиши 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-конвейер для сбора данных о пользовательской активности из нескольких источников и загрузки их в аналитическое хранилище.
Контекст:
- Источники данных:
- База данных PostgreSQL с транзакциями (таблица ‘payments’).
- Поток событий из Apache Kafka (топик ‘user_clicks’), события в формате JSON.
- Ежедневные выгрузки в формате CSV на FTP-сервере (файлы ‘daily_regs_*.csv’).
- Целевое хранилище: ClickHouse.
- Объем данных: ~50 миллионов событий в день.
- Технологический стек для реализации: Apache Spark, Apache Airflow.
Задача:
- Опиши пошаговую архитектуру ETL-процесса. Разбей его на три этапа: извлечение (Extract), преобразование (Transform), загрузка (Load).
- Для этапа преобразования опиши ключевые шаги: очистка данных, обогащение (например, добавление геолокации по IP), агрегация.
- Предложи структуру целевых таблиц в ClickHouse (схема данных).
- Создай схему конвейера в виде кода для Mermaid для визуализации.
- Укажи, какие метрики мониторинга стоит отслеживать для этого конвейера (например, количество обработанных записей, время задержки).
Формат ответа: Структурированный документ с разделами: “Архитектура”, “Шаги преобразования”, “Схема целевых таблиц”, “Визуализация (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-запрос]
Задача:
- Проанализируй план выполнения запроса (EXPLAIN), если бы ты его получил. Укажи на самые затратные операции (например, Full Table Scan, вложенные циклы).
- Выяви потенциальные проблемы в текущем запросе (например, неправильный порядок JOIN, отсутствие нужных индексов, избыточные подзапросы).
- Напиши оптимизированную версию запроса.
- Предложи, какие индексы необходимо создать для ускорения этого и похожих запросов. Напиши команды для их создания.
- Объясни, почему предложенная версия запроса и новые индексы должны работать быстрее.
Формат ответа: Пошаговый анализ с разделами: “Анализ узких мест”, “Оптимизированный запрос”, “Рекомендации по индексированию”, “Объяснение”.
*****
Почему это работает: Запрос не просто просит “улучшить”, а требует провести анализ, как это сделал бы опытный администратор баз данных. Указание на схему, индексы и версию СУБД дает ИИ всю информацию для вынесения экспертного суждения.
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-скрипт, который выполняет следующие шаги:
- Читает исходный Parquet-файл.
- Преобразует ‘event_timestamp’ в читаемый формат ‘yyyy-MM-dd HH:mm:ss’ и сохраняет в новую колонку ‘event_time’.
- Создает колонку ‘event_date’ (формат ‘yyyy-MM-dd’) для партиционирования.
- Разбирает JSON из колонки ‘payload’ и извлекает из него поля ‘event_type’ (string) и ‘device_id’ (string) в отдельные колонки.
- Удаляет исходную колонку ‘payload’.
- Обрабатывает возможные ошибки при разборе JSON: если JSON некорректен, поля ‘event_type’ и ‘device_id’ должны быть заполнены значением NULL.
- Сохраняет результат в формате Parquet, используя партиционирование по колонке ‘event_date’ с перезаписью существующих партиций.
- Код должен быть хорошо прокомментирован и следовать стилю PEP8. Добавь логирование ключевых этапов (начало, чтение, окончание трансформации, сохранение).
Формат ответа: Полный текст Python-скрипта с импортами, инициализацией Spark-сессии и всеми шагами обработки.
*****
Почему это работает: Промпт детализирует каждый шаг трансформации, включая такие важные нюансы, как обработка ошибок, партиционирование и логирование. Это превращает ИИ из простого генератора кода в помощника, который пишет производственный код.
4. Создание схемы данных (“звезда”)
Проблема: Нужно спроектировать модель данных для аналитического хранилища, но сложно определить таблицы фактов и измерений.
Решение: Промпт помогает разработать классическую схему “звезда”, идеально подходящую для BI-систем и аналитических запросов.
Текст промпта:
*****
Ты – архитектор BI-систем. Твоя задача – спроектировать модель данных по схеме “звезда” для анализа продаж в розничной сети.
Контекст:
- Бизнес-процесс: анализ продаж.
- Основные сущности: Продажи, Товары, Магазины, Покупатели, Даты.
- Гранулярность таблицы фактов: одна запись на одну проданную позицию в чеке.
Задача:
- Определи таблицу фактов. Укажи, какие числовые показатели (факты) она будет содержать (например, ‘количество’, ‘цена’, ‘сумма_скидки’).
- Определи таблицы-измерения (dimensions). Для каждого измерения опиши его атрибуты.
- Измерение “Товары” (атрибуты: ‘название’, ‘категория’, ‘бренд’).
- Измерение “Магазины” (атрибуты: ‘название_магазина’, ‘город’, ‘регион’).
- Измерение “Покупатели” (атрибуты: ‘имя’, ‘пол’, ‘возрастная_группа’).
- Измерение “Даты” (атрибуты: ‘полная_дата’, ‘год’, ‘квартал’, ‘месяц’, ‘день_недели’).
- Напиши SQL DDL-команды (CREATE TABLE) для создания всех таблиц (таблицы фактов и измерений) для СУБД PostgreSQL. Укажи первичные и внешние ключи для связи таблиц.
- Нарисуй диаграмму схемы данных с помощью синтаксиса 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, который:
- Использует официальный легковесный базовый образ Python (например, ‘python:3.9-slim’).
- Использует многоступенчатую сборку (multi-stage build) для уменьшения размера итогового образа. На первом этапе устанавливаются зависимости для сборки, на втором – только рантайм-зависимости.
- Копирует файл ‘requirements.txt’ и устанавливает зависимости до копирования остального кода для эффективного использования кеша слоев Docker.
- Создает непривилегированного пользователя (non-root user) и запускает приложение от его имени для повышения безопасности.
- Копирует исходный код приложения (‘process.py’) в рабочую директорию.
- В качестве команды по умолчанию (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:
- ‘fetch_data_from_api’ (BashOperator): выполняет curl-запрос для получения данных и сохранения их в файл.
- ‘process_data_with_spark’ (SparkSubmitOperator): запускает Spark-джоб для обработки скачанных данных.
- ‘check_data_quality’ (PythonOperator): выполняет Python-функцию для проверки качества обработанных данных.
- ‘send_notification_success’ (EmailOperator): отправляет письмо об успешном завершении.
- ‘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, который:
- Подключается к Kafka и читает данные из топика ‘clicks_stream’.
- Разбирает JSON-строку.
- Преобразует ‘timestamp’ в тип timestamp.
- Группирует данные по ‘page_url’ и 1-минутному окну на основе колонки ‘timestamp’.
- Агрегирует данные, подсчитывая количество событий в каждом окне.
- Выводит результат в консоль.
- Добавь водяной знак (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’:
- Тест, проверяющий корректное создание колонки ‘full_name’.
- Тест, проверяющий удаление строк с отсутствующим ’email’.
- Тест, который проверяет, что функция не падает на пустом DataFrame.
- Тест, который проверяет, что исходный 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), которая включает следующие разделы:
- ‘Общее описание’: Краткое назначение конвейера.
- ‘Архитектура’: Краткое описание используемых технологий и потока данных. Можно использовать Mermaid для диаграммы.
- ‘Источники данных’: Описание каждого источника (откуда, какой формат).
- ‘Логика трансформации’: Ключевые шаги обработки данных (например, объединение, расчет LTV, сегментация).
- ‘Целевая таблица’: Описание структуры и полей итоговой витрины.
- ‘Инструкции по запуску и мониторингу’: Как запустить DAG вручную, где смотреть логи и на какие дашборды мониторинга обращать внимание.
- ‘Владелец и контакты’: Кто отвечает за конвейер.
Стиль текста: понятный для нетехнических специалистов (например, аналитиков).
Формат ответа: Текст в формате 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-скрипт, который:
- Определяет схему валидации Pandera на основе перечисленных правил.
- Создает пример DataFrame, который содержит как валидные, так и невалидные данные.
- Применяет схему к DataFrame, перехватывая исключение
SchemaError. - В случае ошибки выводит подробную информацию о том, какие именно проверки не прошли и на каких данных.
- Если данные валидны, выводит сообщение об успехе.
Формат ответа: Полный Python-скрипт с комментариями.
*****
Почему это работает: Промпт указывает на конкретную библиотеку (`Pandera`) и четко перечисляет правила валидации для каждого поля. Это позволяет ИИ сгенерировать точный и рабочий скрипт для автоматизации проверок качества данных.
11. Разработка логики для поиска аномалий
Проблема: Необходимо отслеживать внезапные всплески или падения ключевых метрик (например, количество регистраций), чтобы оперативно реагировать на проблемы или возможности.
Решение: Промпт помогает создать SQL-запрос для выявления аномалий в временных рядах с использованием статистических методов.
Текст промпта:
*****
Ты – аналитик данных, специализирующийся на поиске аномалий. Твоя задача – написать SQL-запрос для выявления аномальных дней по количеству регистраций.
Контекст:
- СУБД: ClickHouse.
- Таблица: ‘registrations’ со столбцами ‘registration_date’ (Date) и ‘user_id’ (UInt64).
- Метод: будем считать аномалией день, когда количество регистраций отклоняется от скользящего среднего за последние 7 дней более чем на 3 стандартных отклонения.
Задача:
Напиши один SQL-запрос, который:
- Агрегирует данные для получения ежедневного количества регистраций.
- Рассчитывает скользящее среднее (moving average) и стандартное отклонение (standard deviation) за 7-дневное окно.
- Вычисляет Z-оценку (Z-score) для каждого дня.
- Отбирает только те дни, где абсолютное значение Z-оценки больше 3.
- Результат должен содержать столбцы: ‘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.
- Цель дашборда: быстро оценивать здоровье конвейера и находить причины проблем.
Задача:
Опиши структуру дашборда. Для каждого виджета укажи:
- Название виджета (например, “Задержка данных в Kafka”).
- Метрику, которую он отображает.
- Тип визуализации (график, число, таблица, индикатор).
- SQL-запрос к системным таблицам или таблицам с данными для получения этой метрики (можно псевдокод).
Примеры виджетов для включения в дашборд:
- Текущая задержка (lag) в топиках Kafka.
- Количество обработанных сообщений в минуту (Spark Streaming).
- Количество ошибок/сбоев при обработке.
- Время выполнения последнего батча.
- Количество свежих записей в целевой таблице ClickHouse.
- Проверка свежести данных (разница между текущим временем и временем последней записи).
Формат ответа: Структурированный список виджетов с описанием по 4 пунктам для каждого.
*****
Почему это работает: Промпт не просит “нарисовать дашборд”, а декомпозирует задачу на проектирование конкретных виджетов с метриками и запросами. Это позволяет получить практическое руководство для создания дашборда в любой BI-системе.
13. Объяснение сложной концепции простыми словами
Проблема: Нужно объяснить коллеге или менеджеру сложный технический термин (например, “идемпотентность” или “каппа-архитектура”), но сложно подобрать понятные аналогии.
Решение: Промпт помогает получить простое и ясное объяснение с примерами и аналогиями.
Текст промпта:
*****
Ты – евангелист данных, мастер объяснять сложные вещи простым языком. Твоя задача – объяснить концепцию “[укажите концепцию, например, ‘идемпотентность конвейера данных’]”.
Целевая аудитория: [укажите аудиторию, например, ‘младший аналитик данных’ или ‘продукт-менеджер без технического бэкграунда’].
Задача:
Объясни концепцию, используя следующую структуру:
- ‘Что это такое?’: Простое определение в одном-двух предложениях.
- ‘Аналогия из реальной жизни’: Приведи понятную аналогию (например, для идемпотентности – многократное нажатие кнопки вызова лифта).
- ‘Пример в инженерии данных’: Объясни, как эта концепция применяется на практике в ETL-процессах.
- ‘Почему это важно?’: Опиши, какие проблемы решает или предотвращает применение этой концепции (например, предотвращение дублирования данных при перезапуске задачи).
Избегай сложного технического жаргона. Стиль – дружелюбный и понятный.
Формат ответа: Текст, разбитый на 4 указанных раздела.
*****
Почему это работает: Структура “определение – аналогия – пример – польза” является классической формулой хорошего объяснения. Промпт заставляет ИИ следовать ей, что гарантирует понятный и полезный результат для указанной аудитории.
14. Сравнение двух технологий
Проблема: Нужно выбрать технологию для проекта (например, Apache Flink vs. Spark Streaming), но сложно объективно оценить все плюсы и минусы.
Решение: Промпт генерирует детальное сравнение двух технологий по ключевым критериям, помогая сделать осознанный выбор.
Текст промпта:
*****
Ты – независимый технический консультант. Твоя задача – провести объективное сравнение двух технологий: [технология 1, например, ‘Apache Spark Structured Streaming’] и [технология 2, например, ‘Apache Flink’].
Контекст:
- Задача: построение системы для обработки финансовых транзакций в режиме реального времени.
- Ключевые требования: низкая задержка (low-latency), гарантии обработки “exactly-once”, высокая пропускная способность.
Задача:
Сравни эти две технологии по следующим критериям в виде таблицы:
- ‘Модель обработки’: Как технология работает с данными (микро-батчи vs. истинный стриминг).
- ‘Производительность и задержка’: Какая из них обычно обеспечивает меньшую задержку.
- ‘Управление состоянием (State Management)’: Возможности и надежность.
- ‘Оконные функции’: Гибкость и разнообразие окон.
- ‘Экосистема и сообщество’: Насколько развиты библиотеки и поддержка.
- ‘Простота использования’: Порог вхождения и сложность API.
- ‘Гарантии доставки’: Поддержка ‘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
- ‘timestamp’:
Задача:
- Напиши регулярное выражение (PCRE-совместимое), которое извлекает все пять указанных полей в именованные группы захвата (named capture groups).
- Предоставь подробное объяснение каждой части регулярного выражения.
- Приведи пример использования этого выражения в 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-скрипт, который:
- Подключается к обеим базам данных.
- Считывает данные из MySQL порциями (батчами) по 100 000 строк, чтобы избежать проблем с памятью.
- Вставляет каждую порцию данных в ClickHouse.
- Использует курсор на стороне сервера в MySQL (server-side cursor) для эффективного чтения.
- Выводит прогресс в консоль (например, “Вставлено 100000 строк…”).
- Обеспечивает корректную обработку ошибок и закрытие соединений.
Формат ответа: Полный Python-скрипт с комментариями, объясняющими логику батчинга.
*****
Почему это работает: Промпт акцентирует внимание на ключевой проблеме при работе с большими данными – потреблении памяти. Указание на необходимость батчинга и использования серверных курсоров направляет ИИ на создание эффективного и масштабируемого решения.
17. Генерация конфигурационного файла
Проблема: Настройка производительности Spark-приложения требует знания десятков параметров конфигурации. Сложно подобрать оптимальные значения.
Решение: Промпт генерирует шаблон конфигурационного файла с рекомендованными параметрами и объяснениями.
Текст промпта:
*****
Ты – эксперт по производительности Apache Spark. Твоя задача – сгенерировать оптимальную конфигурацию для Spark-приложения.
Контекст:
- Кластер: Yandex Data Proc (или любой другой Hadoop-кластер).
- Характеристики узла-исполнителя (executor node): 8 ядер CPU, 64 ГБ RAM.
- Количество исполнителей: 10.
- Задача приложения: чтение 2 ТБ данных из HDFS, выполнение сложных join-операций и агрегаций, запись результата в Parquet.
Задача:
- Сгенерируй конфигурационные параметры для
spark-submitили для файлаspark-defaults.conf. - Рассчитай и предложи оптимальные значения для следующих ключевых параметров:
-
spark.executor.instances -
spark.executor.cores -
spark.executor.memory -
spark.driver.memory -
spark.sql.shuffle.partitions -
spark.default.parallelism
-
- Добавь параметры для включения сериализатора Kryo и настройки сжатия промежуточных данных.
- Для каждого параметра напиши краткое объяснение, почему выбрано именно такое значение и на что оно влияет.
Формат ответа: Список параметров в формате ключ=значение и блок с объяснениями.
*****
Почему это работает: Промпт предоставляет ИИ конкретные характеристики кластера, на основе которых можно выполнить расчеты. Это позволяет получить не общие советы, а конкретные, готовые к использованию значения конфигурации.
18. Скрипт для анонимизации данных
Проблема: Для тестирования или передачи аналитикам нужны данные, похожие на реальные, но без персональной информации (ФИО, email, телефоны).
Решение: Промпт генерирует скрипт, который заменяет чувствительные данные на сгенерированные (фейковые), сохраняя при этом структуру.
Текст промпта:
*****
Ты – специалист по безопасности данных. Твоя задача – написать Python-скрипт для анонимизации данных в CSV-файле.
Контекст:
- Исходный файл: ‘clients.csv’.
- Колонки для анонимизации: ‘full_name’, ’email’, ‘phone_number’, ‘passport_series’, ‘passport_number’.
- Библиотека для генерации фейковых данных: Faker.
- Требование: необходимо сохранить консистентность. Если в исходных данных один и тот же человек встречается несколько раз, его анонимизированные данные также должны быть одинаковыми.
Задача:
Напиши Python-скрипт, который:
- Читает ‘clients.csv’ с помощью pandas.
- Для каждой уникальной записи в колонке ‘full_name’ генерирует одно фейковое ФИО и сохраняет это сопоставление в словаре.
- Заменяет все вхождения ‘full_name’ на соответствующие фейковые значения из словаря.
- Аналогично поступает с колонками ’email’ и ‘phone_number’.
- Колонки ‘passport_series’ и ‘passport_number’ заменяет на случайно сгенерированные строки цифр.
- Сохраняет анонимизированный DataFrame в новый файл ‘clients_anonymized.csv’.
Формат ответа: Полный Python-скрипт с комментариями.
*****
Почему это работает: Промпт акцентирует внимание на важном требовании – консистентности анонимизации. Это заставляет ИИ реализовать более сложную логику с использованием словарей, что критически важно для создания правдоподобных тестовых данных.
19. Проектирование фреймворка для валидации данных
Проблема: Разовые проверки качества данных полезны, но нужен системный подход – единый фреймворк, который можно легко расширять.
Решение: Промпт помогает спроектировать архитектуру такого фреймворка, основанного на конфигурационных файлах.
Текст промпта:
*****
Ты – ведущий инженер данных. Твоя задача – спроектировать архитектуру простого фреймворка для валидации данных на Python.
Контекст:
- Идея: проверки качества данных должны описываться в YAML-файлах, а не в коде, чтобы их могли добавлять даже аналитики.
- Фреймворк должен уметь читать данные из разных источников (например, CSV, таблицы PostgreSQL) и применять к ним набор проверок.
Задача:
- Предложи структуру YAML-файла для описания проверок. Он должен позволять указывать таблицу/файл, колонку и тип проверки (например, ‘not_null’, ‘is_unique’, ‘min_value’, ‘max_value’, ‘pattern’). Приведи пример такого YAML.
- Опиши архитектуру Python-приложения. Какие классы или модули понадобятся? (например, ‘DataReader’ для чтения данных, ‘Validator’ для выполнения проверок, ‘RuleParser’ для парсинга YAML).
- Напиши псевдокод или упрощенный Python-код для основного класса ‘Validator’, который загружает правила из YAML и последовательно применяет их к DataFrame.
- Опиши, как можно расширять фреймворк, добавляя новые типы проверок.
Формат ответа: Разделы: “Структура YAML-конфигурации”, “Архитектура приложения”, “Пример кода Validator”, “Расширяемость”.
*****
Почему это работает: Промпт переводит задачу с уровня “напиши скрипт” на уровень “спроектируй систему”. Фокус на конфигурации в YAML и расширяемости заставляет ИИ думать как архитектор, предлагая гибкое и масштабируемое решение.
20. Помощь в выборе базы данных
Проблема: Для нового проекта нужно выбрать подходящую СУБД, но среди десятков вариантов (реляционные, NoSQL, колоночные) легко запутаться.
Решение: Промпт помогает получить структурированную рекомендацию на основе требований проекта.
Текст промпта:
*****
Ты – независимый консультант по базам данных. Твоя задача – порекомендовать оптимальную СУБД для нового проекта.
Контекст проекта:
- Тип приложения: [опишите приложение, например, ‘социальная сеть для любителей кошек’]
- Тип данных: [опишите данные, например, ‘профили пользователей, посты, комментарии, лайки, граф друзей’]
- Ожидаемая нагрузка: [опишите нагрузку, например, ’10 000 запросов в секунду на чтение, 1000 на запись’]
- Ключевые типы запросов: [опишите запросы, например, ‘выборка ленты постов от друзей, поиск пользователей, запись лайков’]
- Требования к системе: [укажите требования, например, ‘высокая доступность, горизонтальная масштабируемость, гибкая схема данных для профилей’]
Задача:
- Предложи 2-3 наиболее подходящих варианта СУБД из разных категорий (например, реляционные, документные, графовые).
- Для каждого варианта кратко опиши его сильные и слабые стороны в контексте данного проекта.
- Сделай финальную рекомендацию: какой вариант (или комбинация вариантов, например, PostgreSQL для профилей и Neo4j для графа друзей) является наилучшим выбором и почему.
- Укажи на потенциальные риски или сложности при использовании рекомендованного решения.
Формат ответа: Структурированный анализ с разделами для каждой предложенной СУБД и итоговой рекомендацией.
*****
Почему это работает: Промпт заставляет ИИ действовать как настоящий консультант: не давать один ответ, а анализировать требования, предлагать альтернативы и обосновывать свой выбор. Это помогает принять взвешенное решение.
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-запрос), которая:
- Находит сотрудников, у которых изменился ‘department’ или ‘position’. Для этих сотрудников в ‘dim_employees’ проставляет ‘is_current’ = false и ‘end_date’ = сегодня.
- Вставляет в ‘dim_employees’ новые записи для этих же сотрудников с новыми значениями ‘department’/’position’, ‘start_date’ = сегодня, ‘end_date’ = NULL и ‘is_current’ = true.
- Находит новых сотрудников (которых нет в ‘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-скрипт, который:
- Использует библиотеку
requestsиtime. - В цикле запрашивает страницы с заказами, пока не получит пустой ответ.
- Добавляет все полученные заказы в один список.
- Вставляет паузу (
time.sleep) между запросами, чтобы не превысить ограничение. - Обрабатывает возможные HTTP-ошибки (например, 401, 429, 500) и выводит информативные сообщения.
- В конце сохраняет весь список заказов в JSON-файл ‘all_orders.json’.
Формат ответа: Полный Python-скрипт.
*****
Почему это работает: Промпт описывает все реальные сложности работы с API: аутентификацию, пагинацию, ограничения. Это позволяет получить не просто один `requests.get()`, а полноценный и надежный клиент для API.
23. Генерация плана по оптимизации затрат в облачном DWH
Проблема: Счета за использование облачного хранилища данных (например, BigQuery или Snowflake) растут, и нужно найти способы их сократить без ущерба для производительности.
Решение: Промпт помогает составить чек-лист конкретных действий по оптимизации затрат.
Текст промпта:
*****
Ты – FinOps-специалист с экспертизой в облачных хранилищах данных. Твоя задача – предложить план по снижению затрат на [укажите DWH, например, ‘Google BigQuery’].
Контекст:
- Основные затраты идут на хранение данных и на выполнение аналитических запросов.
- Команда состоит из аналитиков и инженеров данных разного уровня.
- Часто выполняются запросы вида
SELECT * FROM ...
Задача:
Создай чек-лист из 10-15 конкретных рекомендаций по оптимизации затрат, сгруппированных по категориям. Для каждой рекомендации кратко объясни, как она помогает экономить.
Категории для рекомендаций:
- ‘Оптимизация хранения’:
- Настройка жизненного цикла данных (time-to-live).
- Использование долгосрочного хранения (long-term storage).
- Правильный выбор ключей партиционирования и кластеризации.
- ‘Оптимизация запросов’:
- Избегание
SELECT *. - Использование пред-агрегированных витрин данных.
- Обучение аналитиков смотреть на план выполнения запроса и объем сканируемых данных.
- Настройка квот на пользователей или проекты.
- Избегание
- ‘Архитектурные изменения’:
- Рассмотрение возможности использования материализованных представлений.
- Оптимизация 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 потенциально полезных признаков, которые можно рассчитать на основе этих данных. Сгруппируй их по категориям:
- ‘Признаки, основанные на профиле’: (например, ‘возраст аккаунта в днях’).
- ‘Признаки, основанные на платежах’: (например, ‘средний чек’, ‘количество платежей за последний месяц’, ‘время с последнего платежа’).
- ‘Признаки, основанные на активности’: (например, ‘средняя длительность сессии’, ‘количество сессий за последнюю неделю’, ‘частота использования приложения’).
- ‘Комбинированные признаки’: (например, ‘LTV клиента’).
Для каждого признака укажи, как его можно рассчитать.
Формат ответа: Маркированный список идей признаков, сгруппированных по категориям.
*****
Почему это работает: Промпт четко определяет исходные данные и конечную цель, позволяя ИИ сфокусироваться на творческой задаче генерации идей. Группировка по категориям помогает структурировать результат и делает его более понятным для команды.
25. Создание наброска политики управления данными (Data Governance)
Проблема: В компании хаос с данными: непонятно, кто за что отвечает, где искать “золотую запись” и как обеспечить качество. Нужен первый шаг к наведению порядка.
Решение: Промпт помогает создать структуру основного документа по управлению данными, который станет основой для дальнейшей работы.
Текст промпта:
*****
Ты – руководитель по управлению данными (Head of Data Governance). Твоя задача – составить набросок политики управления данными для компании среднего размера.
Контекст:
- Компания быстро растет, данные разрознены по разным системам.
- Цель: внедрить базовые принципы Data Governance, чтобы повысить доверие к данным и эффективность работы с ними.
Задача:
Напиши структуру (оглавление) документа “Политика управления данными” и для каждого пункта кратко опиши, что он должен содержать.
Основные разделы для включения:
- ‘Введение и цели’: Зачем нужна эта политика.
- ‘Роли и ответственности’: Описание ролей (например, ‘Владелец данных’, ‘Стюард данных’) и их зоны ответственности.
- ‘Стандарты качества данных’: Определение ключевых метрик качества (полнота, точность, своевременность) и процедур их контроля.
- ‘Управление мастер-данными (MDM)’: Подход к определению и управлению “золотыми записями” (например, для клиентов, продуктов).
- ‘Каталог данных и бизнес-глоссарий’: Требование вести единый каталог данных и словарь бизнес-терминов.
- ‘Безопасность и доступ к данным’: Принципы классификации данных и правила предоставления доступа.
- ‘Жизненный цикл данных’: Политика хранения и архивирования.
Формат ответа: Структурированный документ с оглавлением и кратким описанием каждого раздела.
*****
Почему это работает: Промпт просит не написать всю политику, а создать ее каркас. Это более реалистичная задача для ИИ, результат которой станет отличной отправной точкой для обсуждения и детализации внутри компании.
Продвинутые команды для ИИ в задачах инженера данных
| Команда/Модификатор | Описание | Пример использования в промпте |
| Действуй пошагово | Заставляет ИИ разбить сложную задачу на логические этапы и описать каждый из них, прежде чем давать финальный ответ. Помогает при проектировании сложных систем. | “Спроектируй архитектуру… Действуй пошагово: сначала определи источники, затем компоненты обработки, затем хранилище.” |
| Предложи три альтернативных решения | Вместо одного ответа ИИ предоставит несколько вариантов, сравнив их плюсы и минусы. Полезно при выборе технологий или подходов. | “…Сравни Flink и Spark Streaming. Предложи три альтернативных решения для задачи: одно на Flink, одно на Spark и одно с использованием облачного сервиса.” |
| Оцени сложность реализации по шкале от 1 до 5 | Просит ИИ дать оценку трудоемкости предложенного им решения. Помогает приоритизировать задачи. | “Напиши скрипт для миграции данных… В конце оцени сложность реализации этого подхода по шкале от 1 до 5, где 1 – просто, 5 – очень сложно.” |
| Укажи возможные узкие места и риски | Заставляет ИИ думать не только о “счастливом пути”, но и о потенциальных проблемах: производительности, масштабируемости, поддержке. | “Спроектируй ETL-конвейер… Укажи возможные узкие места в этой архитектуре и риски, связанные с выбором этих технологий.” |
| Напиши код, который будет понятен младшему специалисту | Управляет стилем кода. ИИ будет добавлять больше комментариев, использовать более простые конструкции и избегать слишком “умных” оптимизаций. | “Напиши Python-скрипт… Код должен быть максимально читаемым и понятным для младшего инженера данных.” |
| Выступи в роли критика | Позволяет использовать ИИ для проверки собственных идей. Вы даете ему свое решение, а он ищет в нем недостатки. | “Вот моя архитектура конвейера данных [описание]. Выступи в роли критика и найди в ней 3 слабых места.” |
Неочевидные советы для максимальной эффективности
- Создайте “базовый промпт” с профилем вашей компании. Заведите текстовый файл, в котором описан ваш основной технологический стек (например, “Мы используем Airflow, Spark на Kubernetes, ClickHouse, Yandex DataLens”), стандарты кодирования и цели. Вставляйте этот текст в начало каждого сложного запроса, чтобы ИИ сразу получал весь необходимый контекст.
- Используйте ИИ как “резинового утенка”. Если вы застряли на сложной проблеме, попробуйте объяснить ее нейросети так, как будто это ваш коллега. Сам процесс формулирования мысли и разбиения задачи на части часто помогает найти решение, даже до того как ИИ даст ответ.
- Просите ИИ выступить в роли критика вашего кода или архитектуры. Вместо того чтобы просить написать что-то с нуля, предоставьте ИИ свой готовый код или схему и дайте ему роль “придирчивого тимлида”. Запрос “Найди 5 потенциальных проблем в этом коде” может дать больше пользы, чем “Напиши хороший код”.
- Ведите отдельные чаты для разных проектов или контекстов. Не смешивайте в одной беседе запросы про Spark, SQL и Docker. Разные чаты позволяют ИИ лучше удерживать контекст по конкретной теме, что повышает качество его ответов при последующих уточнениях.
- Требуйте не только код, но и тесты и документацию к нему. Запрос “Напиши функцию” – это половина дела. Правильный запрос звучит как: “Напиши функцию, модульные тесты для нее с использованием pytest и docstring в формате Google Style”. Это приучает к дисциплине и экономит массу времени в будущем.
- Для очень сложных задач давайте ИИ “цепочку мыслей” (Chain of Thought). Вместо того чтобы сразу просить финальное решение, покажите ему пример своих рассуждений. Например: “Мне нужно оптимизировать запрос. Я думаю, проблема в JOIN, потому что… или, может быть, в отсутствии индекса… Как бы ты рассуждал дальше?”. Это помогает направить “мысли” ИИ в нужное русло.