Size: a a a

2020 December 21

e

er@essbase.ru in Data Engineers
Anton Zadorozhniy
sqoop блистает если у вас немного очень больших таблиц, если у вас много маленьких (или вообще нет очень больших таблиц) - то оверхед на вашем "кластере" будет огромный, вам лучше посмотреть на какой-то подходящий ETL инструмент или написать свою выгружалку
А можно чуток конкретики ? Много это сколько ?  100 млн записей это много ?
источник

AZ

Anton Zadorozhniy in Data Engineers
er@essbase.ru
А можно чуток конкретики ? Много это сколько ?  100 млн записей это много ?
да, 100 млн в день это норм
источник

e

er@essbase.ru in Data Engineers
Крошка сын к отцу пришел и спросила кроха. Много это сколько ?  ))  А если колонок 200 ?  .. как понять с какого момента sqoop не нужен ?
источник

AZ

Anton Zadorozhniy in Data Engineers
у меня нет конечно модели классифицирующей кейсы, когда брать скуп, когда брать что-то еще, но обычно я смотрю по количеству таблиц, и способности коннекторов скуп брать данные параллельно
источник

AZ

Anton Zadorozhniy in Data Engineers
er@essbase.ru
Крошка сын к отцу пришел и спросила кроха. Много это сколько ?  ))  А если колонок 200 ?  .. как понять с какого момента sqoop не нужен ?
вы легко можете посчитать: какое у вас целевое время выгрузки, сколько таблиц, какой размер кластера (скуп запускает мапперы, минимум один на таблицу, максимум - маппер на каждую партицию и сабпартицию)
источник

e

er@essbase.ru in Data Engineers
Ок. Короче нужно прототипирование для локальных условий. Спасибо )
источник

ЕК

Епихин Кирилл... in Data Engineers
А не подскажите каким инструментом лучше забирать данные из пг на хдфс и синхронизировать их?
источник

ИК

Иван Калининский... in Data Engineers
Anton Zadorozhniy
вы легко можете посчитать: какое у вас целевое время выгрузки, сколько таблиц, какой размер кластера (скуп запускает мапперы, минимум один на таблицу, максимум - маппер на каждую партицию и сабпартицию)
Может и больше мапперов создать, если указать в параметрах. И --split-by может быть по какому-то произвольному полю, не обязательно соответствующиму партициям и субпартициям. Коннекторы, конечно, могут быть более интеллектуальными и использовать особенности базы-источника, как oraoop

Мне очень интересно, что имеется в виду под оверхедом для маленьких таблиц и вообще? Имеется в виду оверхед создания заданий map-reduce, или что-то ещё? Вообще, выбор sqoop как CDC - это разумно?
источник

AZ

Anton Zadorozhniy in Data Engineers
Иван Калининский
Может и больше мапперов создать, если указать в параметрах. И --split-by может быть по какому-то произвольному полю, не обязательно соответствующиму партициям и субпартициям. Коннекторы, конечно, могут быть более интеллектуальными и использовать особенности базы-источника, как oraoop

Мне очень интересно, что имеется в виду под оверхедом для маленьких таблиц и вообще? Имеется в виду оверхед создания заданий map-reduce, или что-то ещё? Вообще, выбор sqoop как CDC - это разумно?
я написал что 1 маппер на таблицу - это минимум
источник

AZ

Anton Zadorozhniy in Data Engineers
он не умеет мультиплицировать выгрузки нескольких таблиц через 1 маппер
источник

AZ

Anton Zadorozhniy in Data Engineers
у меня полтора года назад был кейс - у клиента флот из большого количества PG и в каждом много таблиц, в сумме речь была о 10-15К таблицах, многие из них содержат десятки/сотник строк или меняются редко, изначальное решение было - все грузить Sqoop-ом, на приличном кластере (60 с чем-то узлов), но окно выгрузки - 3 часа
источник

AZ

Anton Zadorozhniy in Data Engineers
я написал очень легковесную выгружалку на Go которая умела мультиплексить таблицы и еще кое-какие трюки, удалось время обстукивания сократить с 4 часов до десятков минут
источник

AZ

Anton Zadorozhniy in Data Engineers
(но эта выгружалка конечно не умела параллелить выгрузку одной большой таблицы, но клиенту это и не было нужно)
источник

ИК

Иван Калининский... in Data Engineers
Anton Zadorozhniy
(но эта выгружалка конечно не умела параллелить выгрузку одной большой таблицы, но клиенту это и не было нужно)
это понятно, решение под задачу, правильно и профессионально
источник

ИК

Иван Калининский... in Data Engineers
Anton Zadorozhniy
я написал очень легковесную выгружалку на Go которая умела мультиплексить таблицы и еще кое-какие трюки, удалось время обстукивания сократить с 4 часов до десятков минут
Данные были получены через ODBC и шли напрямую в файлы? Или там еще был слой?
источник

AZ

Anton Zadorozhniy in Data Engineers
Иван Калининский
Данные были получены через ODBC и шли напрямую в файлы? Или там еще был слой?
читал lib/pq драйвером (чистый гошный драйвер), писал в S3 родным клиентом
источник

ИК

Иван Калининский... in Data Engineers
Anton Zadorozhniy
читал lib/pq драйвером (чистый гошный драйвер), писал в S3 родным клиентом
Спасибо!

Как-то даже не рассматривал варианты полностью кастомной утилиты, надо будет не упускать из виду
источник

AZ

Anton Zadorozhniy in Data Engineers
Иван Калининский
Спасибо!

Как-то даже не рассматривал варианты полностью кастомной утилиты, надо будет не упускать из виду
Это всё-таки очень редкий случай, почти экстремальный, кому-то может подойти простая выгрузка оператором на питоне в эйрфлоу (плюс самые большие таблицы в скупе), я привёл просто как иллюстрацию оверхеда и где он может мешать
источник

Y

Yura in Data Engineers
Всем привет! Может кто читал Designing Data-Intensive Applications в переводе на русский? Адекватный перевод?
источник

AB

Andrey Bel in Data Engineers
Yura
Всем привет! Может кто читал Designing Data-Intensive Applications в переводе на русский? Адекватный перевод?
с кабанчиком?) вроде норм перевод
источник