Big Data
Data Governance и Catalog
GDPR штраф Amazon в 2021 году: €746 миллионов за нарушение обработки персональных данных. Meta: $1.3 млрд штраф в 2023. Для compliance нужно знать где хранятся данные пользователей, кто имеет доступ, и как долго. Без Data Governance и Catalog это невозможно для компании с тысячами таблиц.
- **Airbnb Dataportal**: внутренний catalog с 10 000+ датасетами. Каждый датасет имеет owner, description, quality score, lineage. «Right to be forgotten» запрос обрабатывается за часы, а не недели - благодаря catalog lineage.
- **Goldman Sachs Data Mesh**: финансовый регулятор требует полной прослеживаемости каждой цифры в отчётах. Data lineage от raw market data до финансового отчёта - требование регулятора, реализованное через Apache Atlas.
- **Databricks Unity Catalog (2022)**: централизованный governance для всего Databricks lakehouse. Column-level security, row-level filtering, автоматический lineage - унифицирован для Delta Lake, Spark, SQL.
Metadata: данные о данных
Компания накопила 5000 таблиц за 10 лет. Что означает `revenue` в таблице `finance_v3`? Gross или net? Включает ли taxes? Кто owner? Когда последний раз обновлялась? Без metadata ответить невозможно - data scientists тратят часы на расследование. Это называется «data swamp».
Metadata делится на три типа: **Technical** (схема, типы, размер, партиционирование), **Business** (описание колонок, owner, SLA, tags), **Operational** (lineage, история запусков, freshness, quality score). Data Catalog агрегирует все три типа и делает их searchable.
- **Technical metadata**: `orders` таблица, 47 колонок, Parquet, партиционирована по `created_date`, 2.3 TB, 150M строк.
- **Business metadata**: owner=order-team@company.com, description='Все транзакции с момента запуска платформы', tag=PII (содержит персональные данные), certified=true.
- **Operational metadata**: последнее обновление 2024-01-15 03:22 UTC, freshness SLA 2h, data quality score 98.5%, upstream: raw_orders (Kafka), downstream: fct_orders, ml_features.
Forrester Research: компании теряют $25M в год из-за плохой управляемости metadata. Противоположный пример: Spotify DataMesh (2023) - каждый из 5000+ датасетов имеет бизнес owner, описание, SLA. Data discovery занимает минуты вместо дней.
Аналитик находит две таблицы: `orders_v1` и `orders_final`. В metadata нет описания. Как правильно определить какую использовать?
Apache Atlas: governance для Hadoop экосистемы
Apache Atlas - open-source data governance платформа для Hadoop экосистемы (HDFS, Hive, HBase, Kafka). Автоматически захватывает metadata: Hive таблица создана -> Atlas видит схему, lineage из HiveQL запросов, статистику.
Atlas строит entity граф: Type System (бизнес термины) -> Classifications (теги: PII, FINANCIAL, SENSITIVE) -> Lineage (откуда данные пришли) -> Policy (правила доступа на основе classifications). HDFS файл помечен как PII -> Atlas автоматически применяет маскировку при доступе через Ranger.
Hortonworks (теперь Cloudera) Atlas используется в крупнейших Hadoop deployments: JPMorgan Chase для GDPR compliance с 10 000+ Hive таблицами, Verizon для telecoms data governance. Автоматическое propagation PII тегов снижает ручную разметку на 90%.
Atlas автоматически propagates classification PII от raw_customers.email к derived_table.email. Зачем это важно?
DataHub: современный data catalog от LinkedIn
LinkedIn создал DataHub для управления 10 000+ датасетов на своей data platform. В 2019 году открыл исходный код. DataHub стал одним из популярнейших open-source data catalogs: Airbnb, Slack, Coursera, Netflix используют его или форки.
DataHub построен на метамодели: все сущности (Dataset, Pipeline, Dashboard, User) описываются через Aspects (кусочки metadata). Push-based архитектура: источники сами отправляют metadata через API или Kafka. Поддерживает: dbt, Airflow, Spark, Looker, Mode, Tableau, BigQuery, Snowflake, Hive.
DataHub vs Apache Atlas: Atlas сильнее в Hadoop ecosystem (native Hive/HDFS integration), DataHub универсальнее (любые источники через plugins), активнее развивается сообществом. DataHub имеет 9000+ GitHub stars, Atlas - 1700+. Для новых multi-cloud платформ DataHub предпочтительнее.
Команда использует dbt для трансформаций. Как DataHub получает lineage из dbt?
Управление доступом к данным: RBAC и ABAC
GDPR, CCPA, HIPAA требуют: только авторизованные пользователи видят персональные данные. Но granular access control в data warehouses сложен: нельзя дать аналитику доступ к `orders` таблице но скрыть колонку `email`. Решения: RBAC, ABAC, Row/Column-level security.
- **RBAC (Role-Based Access Control)**: доступ определяется ролью. `DATA_ANALYST` видит агрегаты, `DATA_ENGINEER` видит raw, `DATA_PRIVACY` видит PII. Просто администрировать, но негибко.
- **ABAC (Attribute-Based Access Control)**: доступ по атрибутам (user department + data classification + time of day). Apache Ranger, AWS Lake Formation поддерживают ABAC. Более гибко, сложнее настроить.
- **Column-level security**: BigQuery Policy Tags, Snowflake Column Masking. Аналитик видит `email` как `xxxx@domain.com`, privacy team - полное значение.
- **Row-level security**: каждый пользователь видит только строки относящиеся к его region/department. Snowflake Row Access Policies, dbt row-level filtering.
- **Dynamic Data Masking**: данные маскируются at query time без изменения storage. PII в таблице хранится в открытом виде, но читается маскированным в зависимости от роли.
Data Catalog - это просто Excel таблица с описанием датасетов, которую ведёт команда вручную
Современный Data Catalog (DataHub, Atlas) автоматически захватывает metadata из источников, строит lineage граф, применяет classification propagation и интегрируется с access control. Ручное ведение не масштабируется для 1000+ датасетов
LinkedIn с 10 000+ датасетами не может вести metadata вручную. DataHub автоматически собирает metadata из Kafka, dbt, Airflow, Looker через ingestion framework. Ручной catalog устаревает через месяц после последнего обновления.
HR таблица с зарплатами: менеджеры должны видеть только своих подчинённых, HR директор - всех. Какой механизм использовать?
Ключевые идеи
- **Metadata** трёх типов: technical (схема, размер), business (owner, описание, теги), operational (lineage, freshness, quality). Все три нужны для полного governance.
- **Apache Atlas** - Hadoop ecosystem governance: автоматический захват из Hive/HDFS, classification propagation, Ranger integration для enforcement.
- **DataHub** - open-source (LinkedIn) catalog для multi-cloud: dbt, Airflow, Spark integrations, push-based ingestion. Предпочтителен для современных платформ.
- **Access Control**: RBAC (роли), ABAC (атрибуты), Column masking, Row-level security. Комбинация для granular GDPR-compliant доступа.
Связанные темы
Data Governance объединяет качество, безопасность и поиск данных:
- Data Quality и Observability — Data catalog хранит quality scores; governance policies определяют минимальный quality score для certified датасетов
- Data Platform Architecture — Data Mesh требует federated governance: catalog централизован, ownership - у команд. Unity Catalog в Databricks - пример реализации
Вопросы для размышления
- Компания переходит с монолитного Hive data warehouse на Data Mesh с множеством команд-owner. Как изменится управление metadata: кто создаёт записи в catalog, кто несёт ответственность за качество?
- Column masking скрывает email как xxxx@domain.com для аналитика. Но аналитик может JOIN email с внешней таблицей через другой идентификатор и восстановить данные. Как называется эта атака и как от неё защититься?
- DataHub хранит lineage: dbt модель A -> модель B -> дашборд C. В каком случае нарушение в A не разрушит B и C - и нарушает ли это концепцию lineage integrity?