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?

Связанные уроки

  • db-01-intro
Data Governance и Catalog

0

1

Войти