[Знания] Конкуренция инструментов интеграции больших данных 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
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.