Отслеживание линии данных в масштабе: как эта автономная платформа ежедневно обрабатывает петабайты

Отслеживание линии данных в масштабе: как эта автономная платформа ежедневно обрабатывает петабайты

7 августа 2025 г.

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

Фон и проблемы

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

  1. Зависимость от задачи черные дыры: Зависимости от задач межсистемы (Hive/Tidb/Starocks) поддерживались вручную, что привело к тому, что время устранения неполадок превышало 30 минут.
  2. Масштабируемость узких мест: Планировщик с одной точкой не мог справиться с тысячами параллельных задач. Отсутствие механизма повторной попытки привело к тому, что показатели задержки данных превышают 5%.

Технологический стек

Компонент

Обоснование отбора

Преимущества производительности

Планирование двигателя

Dolphinscheduler 2.0

Распределенная пропускная способность распределения увеличилась в 3 раза

Центр конфигурации

Go шаблон двигатель + yaml

Эффективность обновления обновления линии улучшилась на 70%

Синхронизация данных

Саморазвитый инструмент для инструментов + Datax Dual Engine

Производительность импорта Starroccs достигает 2 ТБ/мин

Мониторинг и оповещение

SMS + голосовой звонок

Задержка ответа предупреждения <5s

Основная архитектура дизайн

Ключевые технические реализации:

  1. Динамическая компиляция YAML
type TaskDAG struct {
    Nodes []Node `yaml:"nodes"` 
    Edges []Edge `yaml:"edges"`
}

func GenerateWorkflow(yamlPath string) (*ds.WorkflowDefine, error) {
    data := os.ReadFile(yamlPath)
    var dag TaskDAG
    yaml.Unmarshal(data, &dag)
    // Convert to DolphinScheduler DAG structure
    return buildDSDAG(dag) 
}
  1. Автоматический захват линии
  • Планы выполнения перехватов SQL для анализа входных/вывода таблиц ввода/вывода
  • Для задач, не являющихся SQL, использует крючки для захвата путей файлов
# StarRocks Broker Load Lineage Capture
def capture_brokerload(job_id):
    job = get_job_log(job_id)
    return {
      "input": job.params["hdfs_path"],
      "output": job.db_table 
    }

Решения для ключевых проблем

  1. План миграции с нулевой инцидентом
  • Двойное сравнение: Запустить как старые, так и новые системы параллельно; Используйте инструмент DataDiff, чтобы проверить согласованность результатов
  • Канарский релиз: Раздельный трафик по бизнес -единице поэтапно
  • Механизм отката: Полная возможность отката в течение 5 минут
  1. Саморазвитый высокопроизводительный инструмент импорта

Сценарий

Инструмент

Сравнение TPS

Улей → Старшие

Hive2sr

4 ×+ улучшение по сравнению с данными данных

Улей → DB

Hive2db

4 ×+ улучшение по сравнению с данными данных

Tidb → Hive

DB2Hive

2× improvement over Sqoop

Ключевые оптимизации:

  • Пакетное представление с использованием бассейна Go's Coroutine
  • Стратегия корректировки динамического буфера
func (w *StarrocksWriter) batchCommit() {
    for {
        select {
        case batch := <-w.batchChan:
            w.doBrokerLoad(batch) 
            // Dynamically adjust batch size
            w.adjustBatchSize(len(batch)) 
        }
    }
}

Реализация управления линии

Данные линии хранятся в базе данных графика NEO4J, позволяя:

  • Анализ воздействия: Найдите затронутую область изменения на уровне таблицы в течение секунд
  • Анализ основной причины: Проследить источник проблемы в течение 30 секунд во время сбоев
  • Аудит соответствия: Соответствует требованиям отслеживания данных GDPR

Выращивание производительности

Показатель

Перед миграцией

После миграции

Коэффициент улучшения

Задача отказов

8,2%

0,1%

98,8%

Ежедневные задержки задач

47

<3

94%

Время обслуживания линии

10 часов/неделя

0,5 часа/неделя

95%


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE