[Знания] Конкуренция инструментов интеграции больших данных ETL Sqoop, dataX, Kettle, Canal и StreamSets
[Знания] Конкуренция инструментов интеграции больших данных ETL Sqoop, dataX, Kettle, Canal и StreamSets

1. Резюме

Для хранилищ данных и приложений интеграции больших данных обычно используются инструменты ETL. ETL, аббревиатура Extract-Transform-Load на английском языке, используется для описания процесса извлечения, интерактивного преобразования и загрузки данных из источника в пункт назначения. Многие текущие приложения также имеют большое количество моделей приложений ELT. Существует множество распространенных инструментов ETL или ETL-подобных инструментов интеграции и синхронизации данных. Ниже приводится краткий обзор и сравнение Sqoop с открытым исходным кодом, dataX, Kettle, Canal и StreamSetst.

После анализа лично автор рекомендует отдать приоритет DataX.

2. Содержание

2.1 Sqoop

2.1.1 Введение

Sqoop, SQL-to-Hadoop означает «SQL в Hadoop и Hadoop в SQL». Это инструмент с открытым исходным кодом от Apache для передачи данных между Hadoop и серверами реляционных баз данных. Он в основном используется для передачи данных между Hadoop и реляционными базами данных. Он может импортировать данные из реляционной базы данных (MySQL, Oracle и т. д.) в HDFS Hadoop, а также экспортировать данные HDFS в реляционную базу данных. Суть команды sqoop заключается в преобразовании ее в программу MapReduce. Sqoop разделен на импорт и экспорт, стратегии — на табличные и запросные, а режимы — на инкрементальный и полный.

image.png

Простой пример команды:

image.png

Sqoop поддерживает полный импорт данных и инкрементальный импорт данных (инкрементальный импорт данных делится на два типа: один — инкрементный импорт данных на основе инкрементных столбцов (метод Append). Другой — инкрементный импорт данных на основе столбца времени (метод LastModified)). также можно указать, импортируются ли данные одновременно.

2.1.2 Особенности

1、может бытьреляционная база данныхсерединаимпорт данныхhdfs、hiveилиhbaseждатьhadoopкомпонентысередина,Вы также можете импортировать данные компонента Hadoop середина в реляционную базу данныхсередина;

2. Когда sqoop импортирует и экспортирует данные,полностью принятmap-reduceвычислитьрамка,Создайте задание по уменьшению карты на основе входных условий.,Работает на кластере Hadoop середина. Используйте map-reduceramka для выполнения операций импорта или экспорта на нескольких узлах одновременно.,Это быстрее и эффективнее, чем выполнение нескольких параллельных операций импорта и экспорта на одном узле.,В то же время он обеспечивает хорошую одновременную производительность и отказоустойчивость;

3、поддерживатьinsert、updateмодель,Параметры можно выбрать,Обновить, если содержимое существует,Если он не существует, вставьте его;

4. Лучшая поддержка основных внешних реляционных баз данных.

2.2.3 Github

https://github.com/apache/sqoop

2.2 dataX

2.2.1 Введение

DataX — это широко используемый инструмент/платформа для автономной синхронизации данных в Alibaba Group. Он реализует различные типы данных, включая MySQL, Oracle, SqlServer, Postgre, HDFS, Hive, ADS, HBase, TableStore (OTS), MaxCompute (ODPS), DRDS. и т. д. Эффективная функция синхронизации данных между источниками структурированных данных.

githubадрес:https://github.com/alibaba/DataX

Поддерживаемые источники данных:

image.png

Сам DataX, как платформа автономной синхронизации данных, построен с использованием архитектуры Framework + плагин. Абстрактное чтение и запись источников данных в подключаемые модули Reader+Writer и включение их во всю структуру синхронизации.

В настоящее время разработана структура datax3.0:

image.png

Пример использования Datax, суть которого заключается в написании задания файла конфигурации json:

image.png

Платформа DataX централизованно решает проблемы, возникающие при высокоскоростном обмене данными, с помощью таких технологий, как очереди двойной буферизации и инкапсуляция пула потоков, а также предоставляет простой интерфейс для взаимодействия с плагинами. Плагины разделены на две категории: Reader и. Writer на основе интерфейса плагинов, предоставляемого фреймворком, позволяет очень удобно разрабатывать необходимые плагины. Отсутствие встроенной поддержки добавочных обновлений, поскольку благодаря гибкой архитектуре DataX добавочную синхронизацию можно легко реализовать с помощью сценариев оболочки и других методов.

2.2.2 Особенности

1. Обмен данными между разнородными базами данных и файловыми системами;

2. Используйте фреймворк + построение архитектуры плагина,Framework обрабатывает буферизацию,контроль потока,одновременно,Большинство технических проблем быстрого обмена данными, таких как загрузка контекста.,Предоставляет простой интерфейс для взаимодействия с плагинами.,Плагины нужны только для реализации доступа к системе обработки данных;

3. Процесс передачи данных выполняется за один процесс, с полной операцией памяти, без чтения и записи диска и без IPC;

4、открытьрамка,Разработчики могут в очень короткие сроки разработать новый плагин для быстрой поддержки новых баз данных/файловых систем.

2.2.3 Github

https://github.com/alibaba/DataX

2.3 Kettle

2.3.1 Введение

Kettle, китайское название: Kettle, — это зарубежный бесплатный, визуальный и мощный инструмент ETL с открытым исходным кодом. Он написан на чистой Java и может работать в Windows, Linux и Unix. Извлечение данных эффективно и стабильно.

В настоящее время семейство чайников включает в себя 4 изделия: ложку, сковороду, CHEF и Kitchen.

Компоненты:

Spoon: позволяет использовать графический интерфейс для реализации процесса преобразования данных ETL.

Pan: запускайте процесс преобразования данных Spoon в пакетном режиме.

Chef: задание (с сохранением состояния, может отслеживать, выполняется ли оно, скорость выполнения и т. д.)

Кухня: запускайте шеф-повара порциями

2.3.2 Особенности

  • Бесплатное программное обеспечение с открытым исходным кодом: бесплатное программное обеспечение с открытым исходным кодом на основе Java.
  • Простота настройки: кроссплатформенность, экологичность, установка не требуется.
  • Различные базы данных: набор инструментов ETL для управления данными из разных баз данных.
  • Существует два типа файлов сценариев: преобразование и задание. Преобразование завершает базовое преобразование данных, а задание завершает управление всем рабочим процессом.
  • Дизайн графического интерфейса: перетаскивание, не нужно писать код
  • время Функция: стартовый модуль в разделе «Вакансии»,Есть время Функция,Можно использовать ежедневно,Еженедельно и другие методы

2.3.3 Github

https://github.com/pentaho/pentaho-kettle/

2.4 Canal

2.4.1 Введение

canal — это проект с открытым исходным кодом компании Alibaba, разработанный исключительно на Java. На основе инкрементного анализа журналов базы данных он обеспечивает подписку и потребление инкрементных данных в реальном времени. В настоящее время он в основном поддерживает MySQL и mariaDB.

Он используется в производственной среде многих крупномасштабных интернет-проектов, включая Alibaba, Meituan и т. д. Это очень зрелое решение для синхронизации баз данных, требующее только простой настройки.

Текущий канал поддерживает исходные версии MySQL, включая 5.1.x, 5.5.x, 5.6.x, 5.7.x и 8.0.x.

image.png

Принцип работы канала заключается в том, чтобы замаскироваться под ведомое устройство MySQL, имитировать протокол взаимодействия ведомого устройства MySQL и отправить протокол дампа MySQL Mater. MySQL mater получает запрос на дамп, отправленный каналом, и затем начинает отправлять двоичный журнал в канал. canal анализирует двоичный журнал, а затем отправляет его в места хранения, такие как MySQL, Kafka, Elastic Search и т. д.

Вместо того, чтобы спрашивать, что может делать канал, лучше спросить, что делает синхронизация данных.

нодаcanalсинхронизация данныхНе полную сумму, а постепенно。на основеbinary Регистрировать дополнительную подписку и потребление, canal может делать:

  • Зеркальное отображение базы данных
  • Резервное копирование базы данных в реальном времени
  • Создание индекса и обслуживание в режиме реального времени
  • Обновление бизнес-кеша (кэша)
  • Инкрементальная обработка данных с помощью бизнес-логики

2.4.2 Особенности

Canal получает данные, имитируя работу в качестве подчиненного устройства MySQL и отслеживая журнал binlog MySQL. После того, как binlog установлен в режим строки, он может не только получать данные о каждом выполненном сценарии добавления, удаления и изменения, но также получать данные до и после изменений. Благодаря этой функции канал может получать изменения в данных MySQL с высокой производительностью.

2.4.3 Github

githubадрес:https://github.com/alibaba/canal

2.5 StreamSets

2.5.1 Введение

Streamsets — это ETL-инструмент для сбора больших данных в реальном времени, который может собирать и передавать данные без написания строчки кода. Через визуальный интерфейс перетаскивания реализовано проектирование конвейеров данных (Pipelines) и планирование задач по расписанию.

Источник данных поддерживает структурированные и полу-/неструктурированные данные, такие как MySQL и Oracle, а целевой источник поддерживает HDFS, Hive, Hbase, Kudu, Solr, Elasticserach и т. д. Для создания конвейеров требуется настроить три части: источники данных (источники), операции (процессоры) и пункты назначения (назначения).

image.png

image.png

2.5.2 Особенности

Возможности Streamsets:

  • Операция визуального интерфейса с помощью перетаскивания. Никакого кодирования можно добиться без написания строки кода.
  • Мощная интеграция, более 100 готовых к использованию источников и пунктов назначения, поддержка более 100 источников данных и источников назначения.
  • Визуальный встроенный мониторинг расписания, наблюдение в реальном времени за потоком данных и качеством данных.

2.5.3 Github

адрес:https://github.com/streamsets/

2.6 Разница между Sqoop и Datax

2.6.1 Сравнение функций

1. Sqoop использует вычислительную среду с сокращением карты для импорта и экспорта, в то время как datax извлекает и загружает данные только на одной машине, на которой работает datax, что намного медленнее, чем sqoop;

2. Лопатку можно использовать только в реляционной база данныхиhadoopкомпонентымежду Миграция данных, но его нельзя использовать между компонентами, связанными с Hadoop, такими как hive и hbase. Sqoop импортирует и экспортирует данные друг в друга, причём одновременно в реляционную база Между данными, например между MySQL и Oracle, данные не могут быть импортированы и экспортированы через sqoop.

Напротив, datax может реализовать миграцию данных между компонентами Hadoop реляционных баз данных, между реляционными базами данных и между компонентами Hadoop соответственно;

3. Sqoop специально разработан для Hadoop и имеет хорошую поддержку Hadoop, тогда как datax может не поддерживать более высокие версии Hadoop;

4. Sqoop поддерживает обмен данными только между несколькими официально предоставленными реляционными базами данных и компонентами Hadoop. В datax пользователям нужно только изменить файлы в соответствии со своими потребностями, сгенерировать соответствующий пакет RPM, а затем использовать свои собственные настройки после установки. в;

2.6.2 Сравнение производительности

1、mysql->hdfs

Сгенерируйте 50 000 000 фрагментов данных в mysql, импортируйте эти данные в hdfs, используя datax и sqoop соответственно, и сравните их параметры производительности соответственно:

Сгенерируйте 50 000 000 фрагментов данных в mysql, импортируйте эти данные в hdfs, используя datax и sqoop соответственно, и сравните их параметры производительности соответственно:

sqoop:

свойство

ценить

Время процессора (мс)

325500

Чтение размера снимка физической памяти (байт)

3045625856

Чтение размера снимка виртуальной памяти (байт)

10975498240

Средняя скорость (МБ/с)

20.0809

Общее время(а)

99.2047

5. Сравнение производительности DataX — рисунок 1.

datax:

свойство

ценить

Средняя загрузка ЦП (%)

21.99

Средняя скорость (МБ/с)

4.95

Общее время(а)

202

image.png

2、oracle->hdfs

Сгенерируйте 50 000 000 фрагментов данных в Oracle, импортируйте эти данные в HDFS с помощью datax и sqoop соответственно и сравните их параметры производительности соответственно:

sqoop:

свойство

ценить

процессорное время

86510 миллисекунд

Чтение размера снимка физической памяти

2865557504

Чтение размера снимка виртуальной памяти

10937077760

средняя ставка

6.4137MB/s

общее время

94.9979s

image.png

datax:

свойство

ценить

Среднее использование ЦП

15.50%

средняя ставка

5.14MB/s

общее время

122s

image.png

2.6.3 Совместимость с ТДХ

1. Совместим с версией Hadoop в TDH и может импортировать данные из реляционных баз данных в HDFS в TDH;

2. у datax есть функция, которой нет у sqoop,Сразуда Преобразование данных изhdfsИмпортировать вhbase,Однако в настоящее время эта функция поддерживает только две версии hbase: 0.94.x и 1.1.x. Hbase-версия TDHсерединагипербазы — 0.98.6.,Так же и Не мероприятияTDH Hyperbase.

2.7 Сравнение Datax и Kettle

Сравните размеры

продукт

Kettle

DataX

дизайн и архитектура

Применимые сценарии

Традиционные инструменты ETL для моделирования хранилищ данных

Традиционные инструменты ETL для моделирования хранилищ данных

Поддержка источников данных

Большинство реляционных баз данных

Несколько реляционных баз данных и нереляционных баз данных больших данных.

язык разработки

Java

Python、Java

Визуальный веб-интерфейс

Код KettleOnline заряжает код Kettle-manager бесплатно

Веб-код данных бесплатно

базовая архитектура

Структура «главный-подчиненный» не отличается высокой доступностью, имеет плохую масштабируемость и низкую архитектурную отказоустойчивость и не подходит для сценариев с большими данными.

Поддерживает автономное развертывание и развертывание кластера.

Функция

машина CDC

На основе временных меток, триггеров и т. д.

Автономная пакетная обработка

Стратегия добычи

Поддержка поэтапного и полного извлечения

Поддерживает полное извлечение. Добавочное извлечение не поддерживается и должно быть реализовано с помощью сценариев оболочки.

Влияние на базу данных

Есть требования к структуре таблиц базы данных, что несколько навязчиво.

Собирайте данные через sql select, который не мешает источнику данных

Автоматически возобновлять загрузку с точек останова

Не поддерживается

Не поддерживается

Очистка данных

Моделирование и расчет требований к данным хранилища данных,Функция очистки относительно сложна.,Требуется ручное программирование

Необходимо написать скрипт очистки по своим четким правилам и вызвать его (DataX3.0 предусмотренная функция).

преобразование данных

Настройка сопоставления схемы вручную

Выполните сопоставление схемы, написав сценарии JSON.

характеристика

Данные в режиме реального времени

не в реальном времени

время

Сложность приложения

высокий

высокий

Нужно ли его развивать?

да

да

Простота использования

Низкий

Низкий

стабильность

Низкий

середина

Скорость извлечения

Нет большой разницы, когда объем данных небольшой. Когда объем данных большой, datax работает быстрее, чем чайник.

datax оказывает меньшую нагрузку на базу данных

другой

Внедрение и послепродажное обслуживание

Программное обеспечение с открытым исходным кодом, общественная активность.

Открытый исходный код Alibaba,Общественная деятельность

3. Справочник

(4) Синхронизация данных (Sqoop, dataX, Kettle, Canal, StreamSets) https://www.modb.pro/db/86290

(1) Сравнение инструментов извлечения данных: Kettle, Datax, Sqoop, StreamSets. https://blog.csdn.net/xiaozm1223/article/details/89670460

(2) Краткое описание обучения ETL (2) — Инструменты интеграции данных ETL: чайник, scoop, datax,streamSets Сравнивать https://zhanghaiyang.blog.csdn.net/article/details/104446610

(3)интеграция данныхинструментKettle、Sqoop、DataXиз Сравнивать https://www.cnblogs.com/bayu/articles/13335917.html

(5) Сравнение Datax и Sqoop https://blog.csdn.net/lzhcoder/article/details/107902791

(6) Сравнение Datax и Kettle https://blog.csdn.net/lzhcoder/article/details/120830522

(7) Чтобы получить очень подробное представление о Canal, просто прочитайте эту статью! https://blog.csdn.net/yehongzhi1994/article/details/107880162

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose