Оболочка Impala или Spark для ETL?

Недавно я начал работать над средой Hadoop. Мне нужно было сделать базовый ETL для заполнения нескольких таблиц. В настоящее время я импортирую данные в Hadoop с помощью sqoop и использую команду оболочки Impala для написания SQL-запросов для преобразований.

Но в последнее время я много слышу о Spark. В моей ситуации будет ли у меня какое-либо преимущество при написании ETL в Spark вместо оболочки Impala?

Спасибо С

На мой взгляд неудачный выбор. Используется Импала.

thebluephantom 07.02.2019 08:26

SQL помимо выбора также имеет вставку, обновление, удаление. На протяжении веков люди писали ETL с использованием SQL. Следовательно, Impala, ImpalaQL также использовались в аналогичном ключе для выполнения ETL. Представление о том, что другой ответ лучше моего, менее очевидно. Кстати, 2 ответа выбрать нельзя. Мне любопытно объяснение.

thebluephantom 07.02.2019 19:02

@thebluephantom, как вы можете сказать, я новичок в stackoverflow. Если я делаю что-то не так, принимая ответы, пожалуйста, дайте мне знать. Я не слишком хорошо знаком с тем, что происходит, когда я принимаю.

user11003671 07.02.2019 19:37

Вы можете принять только 1 ответ. Вы можете проголосовать за все ответы / проголосовать против. Я думаю, что мой ответ намного лучше, чем принятие другого, который отвергает мой. Но я могу жить с этим, но чувствую, что вы можете быть новичком во всем этом.

thebluephantom 07.02.2019 19:39

Спасибо за объяснение и понимание.

user11003671 07.02.2019 19:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
777
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Многие люди в прошлом использовали либо A) сценарии SQL (например, Impala) со сценариями UNIX, либо использовали B) инструменты ETL для ETL.

Однако вопрос в том, 1) больше масштаба imo и 2) стандартизация технологий.

Поскольку используется Spark, почему бы не стандартизировать Spark?

Я прошел через этот цикл, и обработка Kimball DWH вполне может быть выполнена с помощью Spark. Это означает меньшие затраты с точки зрения платных инструментов ETL, таких как Informatica. Но есть общественные издания.

Некоторые моменты, на которые следует обратить внимание:

  • Сохранение файла в различных форматах HDFS проще и удобнее с помощью Data Frame Writer и т. д.
  • Но отображения с ветвями, подобные Informatica, немного отличаются.
  • Производительность в масштабе будет лучше с Spark, когда данные будут получены из внешних источников.
  • Управление файлами проще с помощью сценариев UNIX, чем внутри Spark imo, но к этому нужно привыкнуть, если это делается в Spark.
  • Sqoop можно избежать, и вы можете использовать JDBC DF Reader of Spark, но нет причин отказываться от sqoop, хотя вместо этого я бы использовал Confluent Kafka Connect с более высокой задержкой, но тогда мы переходим к Zen Questions, поскольку Kafka более реален. временные аспекты.
  • В целом я не убежден в преимуществах инструментов ETL.

С учетом сокращения затрат, которое необходимо для ИТ-отдела, Spark является хорошим вариантом. Но это не для слабонервных, нужно быть хорошим программистом. Это то, что я слышу от многих людей.

Спасибо thebluephantom за ваш ответ. Мы следуем тому же методу, который вы упомянули. Инструменты ETL для нашего хранилища данных impala и сценарии оболочки для загрузки/преобразования данных в Hadoop Мы не хотим покупать инструменты ETL для работы Hadoop. Мы хотим продолжать использовать инструменты, уже доступные в экосистемах Hadoop. Теперь один момент, который вы упомянули о стандартизации. Использование Spark вместо скриптов Imapala/shell выгодно только для стандартизации или будет реальный прирост производительности? Я не понял этого момента из вашего ответа.

user11003671 02.02.2019 19:53

Impala по определению быстрее по сравнению с HiveQL, использующим Map Reduce. Spark действительно предназначен для больших объемов, запуск задания Spark требует дополнительных затрат. Но стандартный подход привлекателен, и люди, конечно, хотят узнать что-то новое для своего резюме. Ладно с последним. Однако Spark не подходит для обработки всех kpi.

thebluephantom 02.02.2019 21:35

Коснувшись, нажав на галочку

thebluephantom 03.02.2019 08:59

Я просто принял это. Потребовалось некоторое время, чтобы понять, как это принять, поскольку это первая публикация чего-либо в stackoverflow. Еще раз спасибо.

user11003671 03.02.2019 17:24

Я бы добавил, что Impala — это не инструмент ETL, это механизм запросов SQL, который позволяет вам выполнять запросы SQL к очень большим наборам данных после того, как данные были очищены в процессе ETL.

Исторически Pig и Hive использовались для ETL до Spark. Hive по-прежнему актуален, если вы предпочитаете SQL-подобный синтаксис, и есть много вариантов, которые предлагают более высокую производительность, например Hive на Tez и Hive на Spark, которые заменяют MapReduce на Spark.

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

Вы можете использовать +1 вместо отметки «принять» (флажок), поскольку ответ @thebluephantom является более полным. Я предоставляю некоторую дополнительную информацию, которая охватывает вещи, не упомянутые в его ответе.

tk421 07.02.2019 18:54

Просто любопытно, почему бы просто не перейти на SparkSQL (вместо Hive/Pig), если мы уже используем Spark и хотим возможности SQL?

akki 20.04.2021 05:57

Другие вопросы по теме