Size: a a a

2019 November 15

AS

Andrey Smirnov in Moscow Spark
Dmitry Zaytsev
извени, не понял
тут сказано что для записи надо использовать https://docs.databricks.com/delta/delta-faq.html#can-i-access-delta-tables-outside-of-dbr
а он доступен только платно
источник

DZ

Dmitry Zaytsev in Moscow Spark
А то есть это их облако?
источник

DZ

Dmitry Zaytsev in Moscow Spark
А как же опенсурс?
источник

AS

Andrey Smirnov in Moscow Spark
Dmitry Zaytsev
А как же опенсурс?
исходники открыты data lake, про runtime никто не обещал
а может я зря на людей наговариваю, поэтому и ставлю знак вопроса
источник

DZ

Dmitry Zaytsev in Moscow Spark
источник

AB

Alexey Belov in Moscow Spark
Dmitry Zaytsev
А как же опенсурс?
Тут путаница в терминологии небольшая. Есть Databricks Delta, доступный только в Databricks Runtime. Это коммерческий продукт.
источник

AB

Alexey Belov in Moscow Spark
А есть Delta Lake - он открыт, но ограничен по функционалу.
источник

AS

Andrey Smirnov in Moscow Spark
Alexey Belov
А есть Delta Lake - он открыт, но ограничен по функционалу.
спасибо, а есть сводная страница ограничений?
источник

AB

Alexey Belov in Moscow Spark
Не находил таких.  В OSS версии точно нет команды Optimize и возможности использовать Z-ordering
источник

AP

Anton Pilipenko in Moscow Spark
Коллеги помогите советом:
есть kafka - там данные (json). Забираю все structured streaming. Я их на ходу забираю и раскладываю условно в звездочку. При этом проверяю не пришли ли какие новые значения полей из которых набиваются справочники. Получется что source один а sink-ов много. По факту получается что на каждый sink происходит чтение из топика. Проблема в том что вылетает периодически
OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions

Как я понимаю, выходит это когда первые несколько чтений прошли нормально а дальше в середине батча на каком то из синков просто kafka данные уже потерла.
startingOffsets=earliest

сделать
kafkaDf.cache

не выходить потому что
Queries with streaming sources must be executed with writeStream.start()

В общем то довольно таки честно. Городить велосипед не хочется. Есть ли какое-то нормальное решение для такого рода проблкм? На скала подкасте Андрей из NVidia говорил, что они строят streaming платформу, наверняка похожее что-то было. Spark 2.3.1
источник

t

tenKe in Moscow Spark
Anton Pilipenko
Коллеги помогите советом:
есть kafka - там данные (json). Забираю все structured streaming. Я их на ходу забираю и раскладываю условно в звездочку. При этом проверяю не пришли ли какие новые значения полей из которых набиваются справочники. Получется что source один а sink-ов много. По факту получается что на каждый sink происходит чтение из топика. Проблема в том что вылетает периодически
OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions

Как я понимаю, выходит это когда первые несколько чтений прошли нормально а дальше в середине батча на каком то из синков просто kafka данные уже потерла.
startingOffsets=earliest

сделать
kafkaDf.cache

не выходить потому что
Queries with streaming sources must be executed with writeStream.start()

В общем то довольно таки честно. Городить велосипед не хочется. Есть ли какое-то нормальное решение для такого рода проблкм? На скала подкасте Андрей из NVidia говорил, что они строят streaming платформу, наверняка похожее что-то было. Spark 2.3.1
1) Смотри есть ли в кафке оффсеты, с которыми у тебя отваливается стрим. Бывает, что данные пропадают слишком быстро (не помню название параметра в кафке)
2)  Решение проблемы может стать foreachBatch синк - будешь читать кафку один раз, а внутри кешировать, коллектить, играть в нарды и делать все что голову придет :)

p.s. Андрей из nvidia это я
источник

AP

Anton Pilipenko in Moscow Spark
tenKe
1) Смотри есть ли в кафке оффсеты, с которыми у тебя отваливается стрим. Бывает, что данные пропадают слишком быстро (не помню название параметра в кафке)
2)  Решение проблемы может стать foreachBatch синк - будешь читать кафку один раз, а внутри кешировать, коллектить, играть в нарды и делать все что голову придет :)

p.s. Андрей из nvidia это я
про первое - он сам сразу говорит что вот по этой партции с чекпоинта такой вот офсет а текущий уже уехал. С учетом того, что начинаю с самого старого оффсета - ретеншн не поможет (оно все равно будет удаляться в первую очередь)
Про второе - оно ж только в 2.4 вроде как появилось
источник

AS

Andrey Sutugin in Moscow Spark
foreachBatch должен помочь, только прийдеться обновить спарк до 2.4, а там на сколько я знаю hdp и пока спарк только 2.3.
источник

AP

Anton Pilipenko in Moscow Spark
Andrey Sutugin
foreachBatch должен помочь, только прийдеться обновить спарк до 2.4, а там на сколько я знаю hdp и пока спарк только 2.3.
Привет, да это и боль =/
источник

t

tenKe in Moscow Spark
Anton Pilipenko
про первое - он сам сразу говорит что вот по этой партции с чекпоинта такой вот офсет а текущий уже уехал. С учетом того, что начинаю с самого старого оффсета - ретеншн не поможет (оно все равно будет удаляться в первую очередь)
Про второе - оно ж только в 2.4 вроде как появилось
не совсем понял. У тебя у каждого синка будет свой отдельный чекпоинт и все стримы будут работать независимо друг от друга
источник

t

tenKe in Moscow Spark
поэтому корни ошибки скорее всего именно в том, что в кафке слишком быстро пропадают данные по оффсетам, с которых ты читаешь
источник

t

tenKe in Moscow Spark
иными словами, ты читаешь слишком медленно с earliest и кафка начинает удалять эти данные
источник

AS

Andrey Sutugin in Moscow Spark
Anton Pilipenko
Привет, да это и боль =/
Привет, я сам сейчас от подобной ерунды страдаю и пытаюсь убедить руководство и одминов перелезть на ванильный хадуп и спарк
источник

АЖ

Андрей Жуков... in Moscow Spark
Andrey Sutugin
foreachBatch должен помочь, только прийдеться обновить спарк до 2.4, а там на сколько я знаю hdp и пока спарк только 2.3.
Ну а чо, у нас hdp и контейнеры со спарком 2.4 в ярне
источник

AP

Anton Pilipenko in Moscow Spark
tenKe
не совсем понял. У тебя у каждого синка будет свой отдельный чекпоинт и все стримы будут работать независимо друг от друга
Все так но я ж цепляюсь к партиции топика - условно говоря я вычитал 100k записей первым батчом - а на втором батче кафка уже потерла 150к самых старых записей - поэтому и разваливается все....
Я попробую канеш начинать с самых новых но это как то не очень...
источник