Size: a a a

2020 February 18

РП

Роман Пашкевич... in Moscow Spark
Не. В этом и цель была. Оптимизировать обращение к проду, чтобы его не напрягать лишний раз, и при этом ускорить загрузку данных. Я уверен что мой конфиг не оптимален. Хотя может Спарк и умнее и делант как надо)
источник
2020 February 19

А

Алексей in Moscow Spark
Можно еще грузить с readonly standby на который резервируются данные. Но тоже надо дозировать нагурзку, чтобы не замедлять репликацию
источник

N

Nikolay in Moscow Spark
Можно с прод качать потихоньку. Если вы с того же оракла будите качать в одну сессию без параллелизации , то никто этого даже не заметит. Особенно , если у вас есть свой temp
источник

SK

Sergej Khakhulin in Moscow Spark
День добрый а не подскажете как с помошью ParquetFileReader прочитать parquet DataSet(иногда партиционированный даже)?
источник
2020 February 20

AN

Aleksandr Nikolaev in Moscow Spark
Добрый день. Нужна помощь с spark addpyfile.
Запускаю unittest, вызывается функция которая использует udf из другой части проекта. Прописал этот файл в addpyfile, выдается ошибка no module found. В чем может быть проблема??
источник

ИК

Иван Калининский... in Moscow Spark
Роман Пашкевич
Не. В этом и цель была. Оптимизировать обращение к проду, чтобы его не напрягать лишний раз, и при этом ускорить загрузку данных. Я уверен что мой конфиг не оптимален. Хотя может Спарк и умнее и делант как надо)
Если параллелить, то нужно позаботится о целостности данных, потому что каждое чтение - это отдельный запрос. Блокировка таблицы или ретроспективный запрос могут решить эту проблему. В sqoop это есть, как есть и подключаемый oraoop. Я бы не советовал пользоваться Spark при чтении больших объемов данных по JDBC
источник

РП

Роман Пашкевич... in Moscow Spark
Иван Калининский
Если параллелить, то нужно позаботится о целостности данных, потому что каждое чтение - это отдельный запрос. Блокировка таблицы или ретроспективный запрос могут решить эту проблему. В sqoop это есть, как есть и подключаемый oraoop. Я бы не советовал пользоваться Spark при чтении больших объемов данных по JDBC
Не советовал бы параллелить спарком? Или использовать sqoop?
источник

ИК

Иван Калининский... in Moscow Spark
скуп - советую)
источник

ИК

Иван Калининский... in Moscow Spark
спарк потребутся допиливать на каждый возникающий кейс, это я точно могу сказать.
источник

РП

Роман Пашкевич... in Moscow Spark
Ок. Пойду на тестовую Хану играться.  Надо 3,3млрд строк стянуть. Посмотрим какую нагрузку даст скуп и как быстро вытянет и запишет в hive.
источник

ИК

Иван Калининский... in Moscow Spark
3,3 млрд - должно быть порядка терабайта. В один поток довольно долго будет заходить, поэтому все же нужно искать способ параллелить.
источник

А

Алексей in Moscow Spark
Иван Калининский
скуп - советую)
скуп разве не ждбц также использует?
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
скуп разве не ждбц также использует?
без вариантов jdbc. Но скуп - тулза для загрузки, а спарк про другое все таки
источник

AB

Alexey Belov in Moscow Spark
Алексей
скуп разве не ждбц также использует?
Ждбц на стероидах, для Oracle это называется oraoop. Самостоятельно так тоже можно написать, но в Sqoop это уже сделано.
источник

А

Алексей in Moscow Spark
Alexey Belov
Ждбц на стероидах, для Oracle это называется oraoop. Самостоятельно так тоже можно написать, но в Sqoop это уже сделано.
бегло посмотрел доку http://archive.cloudera.com/cdh/3/adapters/oraoopuserguide.pdf, получается основная фишка - сплит по блокам rowid ?
источник

А

Алексей in Moscow Spark
и, судя по всему, таким оразом можно только фул заборы делать
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
и, судя по всему, таким оразом можно только фул заборы делать
Не уверен, но вроде фильтр вполне можно указать
источник

AB

Alexey Belov in Moscow Spark
Алексей
бегло посмотрел доку http://archive.cloudera.com/cdh/3/adapters/oraoopuserguide.pdf, получается основная фишка - сплит по блокам rowid ?
Ага. Можно вытягивать партиции, ограничивать выборку по where. Есть определенные ограничения, но в целом вполне работоспособный механизм. Надо в чат Data Engineers переходить  :)
источник

А

Алексей in Moscow Spark
Non-Incremental - написано, да и если написан кастомный фильтр, то для этих данных сложно будет понять нужные блоки и их rowid
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
Non-Incremental - написано, да и если написан кастомный фильтр, то для этих данных сложно будет понять нужные блоки и их rowid
Режим загрузки по партициям тоже есть.

Фильтр в oraoop я не пробовал задавать, но вообще, для Oracle фильтры по rowid и по данным совершенно независимы и могут быть использованы в одном запросе.

В спарк все это можно реализовать, но объем работы очень большой. Я просто уже делал такой загрузчик, и там очень много неожиданных кейсов по ходу возникло. К примеру, не все значения типа DECIMAL могут быть прочитаны в spark jdbc. И такое на каждом шагу. Если есть несколько месяцев, можно заняться. Или взять готовый инструмент (sqoop, ogg4bd если доступен!) и продумать архитектуру, чтобы обойти ограничения
источник