Вопросы интервью по хранению данных и процессам Etl

Основные концепции хранения данных

Твердое понимание основ хранения данных - это первое, что оценивают интервьюеры. Вам нужно не только определить термины, но и объяснить, как они применяются в реальных сценариях.

Что такое хранилище данных?

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

Каковы основные характеристики хранилища данных?

Чем хранилище данных отличается от озера данных?

Озеро данных хранит необработанные, необработанные данные в своем родном формате (структурированные, полуструктурированные или неструктурированные). Склад данных хранит обработанные, очищенные и структурированные данные. Организации часто используют и то, и другое: озеро для поисковой аналитики и машинного обучения, и склад для структурированной отчетности. Интервьюеры могут спросить о случаях использования, когда один предпочтительнее другого.

Что такое операционный хранилище данных (ODS)?

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

Моделирование данных в Data Warehousing

Моделирование данных - это план хранилища данных. Два общих подхода - это схема звезды и схема снежинки.

Что такое звездная схема?

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

Что такое схема снежинки?

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

Что такое таблица фактов? Какие бывают виды фактов?

Таблица фактов содержит количественные показатели (например, объем продаж, количество, прибыль) и иностранные ключи, связывающие их с таблицами измерений.

Интервьюеры могут попросить вас выбрать подходящий тип фактов для данного бизнес-сценария.

Что такое таблицы измерений? Объясните соответствующие размеры.

Таблицы измерений содержат описательные атрибуты (например, имя клиента, цвет продукта, местоположение магазина). Соответствующие размеры разделяются по нескольким таблицам фактов в хранилище данных или по разным мартам данных. Они обеспечивают согласованность, чтобы отчеты могли быть объединены осмысленно. Например, размер даты, используемый как в таблицах фактов продаж, так и в таблицах фактов инвентаризации, должен иметь одинаковую структуру и гранулярность.

Медленно меняющиеся измерения (SCD)

Обработка изменений атрибутов измерения с течением времени является критическим навыком в дизайне ETL. Интервьюеры часто спрашивают о типах SCD.

Тип 1, Тип 2 и Тип 3 медленно меняют размеры.

Будьте готовы к обсуждению компромиссов: тип 2 увеличивает количество строк, но дает полный контрольный след; тип 1 прост, но теряет историю.

Обзор процесса ETL

Процесс ETL является основой интеграции данных. Необходимо глубокое понимание каждого этапа и общих проблем.

Подробно объясните каждый шаг ETL.

Вытяжка: Данные извлекаются из различных исходных систем — реляционных баз данных, плоских файлов (CSV, JSON, XML), API, облачных хранилищ или потоковых платформ. Вытяжка может быть полной (все данные) или постепенной (только новые / модифицированные записи с момента последнего запуска).

Преобразование: Данные очищаются, проверяются и преобразуются в согласованный формат.Преобразования включают:

Загрузка: Трансформированные данные вставляются в целевой хранилище данных. Стратегии загрузки: полное обновление (укорочение и перезагрузка), приращённое приложение и повышение (слияние). Рассмотрим восстановление индекса, переключение разделов и управление транзакциями во время загрузки.

В чем разница между ETL и ELT?

ETL преобразует данные перед загрузкой в склад. ELT (Extract, Load, Transform) сначала загружает необработанные данные, а затем преобразует их с использованием вычислительной мощности хранилища данных (например, SQL или MapReduce). ELT распространен в современных облачных хранилищах данных, таких как Snowflake, BigQuery и Redshift, где хранение и вычисления разъединены. ETL по-прежнему предпочтительнее, когда преобразования требуют сложной бизнес-логики или когда качество исходных данных низкое.

Что такое общие инструменты ETL?

Популярные инструменты включают Informatica PowerCenter, Talend, IBM DataStage, Microsoft SSIS, Apache NiFi и облачные сервисы, такие как AWS Glue, Azure Data Factory и Google Dataflow. Варианты с открытым исходным кодом: Pentaho (Kettle), Apache Airflow (оркестрация) и dbt (инструмент для создания данных для преобразований). Интервьюеры могут спросить о вашем опыте работы с конкретными инструментами и о том, как вы обрабатывали производительность или отладку.

Вопросы интервью и их подробные ответы

1.Какие основные проблемы стоят перед процессами ETL и как вы их смягчаете?

К числу проблем относятся:

2.Как оптимизировать процессы ETL для повышения производительности?

Оптимизация производительности охватывает несколько областей:

3.В чем разница между OLAP и OLTP системами?

OLTP (Online Transaction Processing) предназначен для больших объемов, коротких, атомных транзакций (например, ввода заказа, обновления инвентаря). Данные нормализуются, а запросы касаются небольшого количества записей. OLAP (Online Analytical Processing) предназначен для сложных запросов, которые объединяют большие объемы исторических данных. OLAP-системы обычно денормализуются (звездная схема) и поддерживают многомерный анализ (срез, кости, сверление). Типичный вопрос интервью: «Когда вы выберете базу данных OLAP по базе данных OLTP?» Ответ: для аналитических отчетов, приборных панелей и интеллектуального анализа данных.

4. Объясните концепцию суррогатных ключей против естественных ключей в хранении данных.

Суррогатный ключ - это искусственный, сгенерированный системой уникальный идентификатор (например, целочисленная последовательность), используемый в качестве основного ключа в таблице измерений. Естественный ключ - это бизнес-идентификатор из источника (например, код продукта, идентификатор клиента). Суррогатные ключи рекомендуются, потому что они стабильны (бизнес-ключи могут меняться, вызывая волновые эффекты), поддерживают SCD Type 2 (несколько строк на бизнес-ключ) и улучшают производительность соединения (узкие числовые ключи).

5.Как вы справляетесь с обработкой ошибок в трубопроводе ETL?

Внедрить надежную структуру обработки ошибок:

6.Что такое сбор данных об изменениях (CDC)?

CDC - это метод сбора изменений (вставок, обновлений, удаления) в исходных данных и применения их к целевой системе. Методы включают:

CDC имеет важное значение для низкозадерживаемых ETL и конвейеров данных в реальном времени. Интервьюеры могут спрашивать о компромиссах: log-based имеет минимальное влияние на источник, но может быть сложным; timetamp-based проще, но может пропустить удаление.

Вопросы продвинутого интервью

7.Как вы разрабатываете процесс ETL для хранилища данных, который поддерживает как пакетное, так и в режиме реального времени?

Гибридные архитектуры распространены. Для пакетных: планируйте ночные задания с использованием дополнительных нагрузок. Для реальных: используйте потоковый слой (например, Kafka) для захвата событий, затем применяйте легкие преобразования и загружайте в таблицу фактов в реальном времени или дельта-слой (например, в озерном домике). Пути пакетов и реального времени должны сходиться на складе с использованием восходящей логики. Рассмотрите разделение по времени для последовательного слияния двух потоков. Используйте инструменты, такие как Apache Flink или Spark Structured Streaming.

8. Объясните происхождение данных и почему это важно.

Линейка данных отслеживает происхождение, преобразования и движение данных от источника к цели. Она помогает в анализе воздействия (что ломается в отчетах ниже по потоку, если источник изменяется), отладке (следить, почему значение неверно) и аудите (соблюдение правил, таких как GDPR или SOX). Инструменты, такие как Apache Atlas, Marquez или коммерческие решения (Collibra, Alation) обеспечивают автоматизированную линию. Интервьюеры могут спросить, как вы бы документировали линию в проекте ETL.

9.Какая разница между хранилищем данных и банком данных?

Хранилище данных - это общекорпоративное хранилище, охватывающее несколько предметных областей. Март данных - это подмножество, ориентированное на одну бизнес-функцию (например, продажи, финансы). Марты данных могут быть построены поверх склада (зависимые) или независимо (независимые). Выбор между ними включает компромиссы в стоимости, управлении и гибкости.

10.Как вы справляетесь с медленно меняющимися размерами в ETL?

Подход зависит от типа SCD:

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

Лучшие практики ETL

Интервьюеры будут искать практический опыт. Упомяните эти лучшие практики во время обсуждений:

Ссылка на внешние ресурсы для более глубокого обучения: IBM на ETL, Snowflake: ETL vs ELT и Мартин Фаулер на эволюционных данных.

Заключение

Освоение интервью по процессам хранения данных и ETL требует как теоретических знаний, так и практического опыта. Сосредоточьтесь на основных концепциях - характеристиках хранилища данных, пространственном моделировании, SCD и оптимизации ETL - и будьте готовы обсуждать реальные проблемы с конкретными решениями. Практика четко объясняет ваш мыслительный процесс. Подготовившись к этим общим и продвинутым вопросам, вы продемонстрируете опыт, необходимый для успешных ролей управления данными.