Size: a a a

2021 March 05

A

Aleksandr in Data Engineers
и почему оно может всплывать и не всплывать от запуска к запуску?
источник

AS

Andrey Smirnov in Data Engineers
Aleksandr
и почему оно может всплывать и не всплывать от запуска к запуску?
может у вас там гдето if, и он идет по одной или по другой ветке
источник

GP

Grigory Pomadchin in Data Engineers
🚨ГОТОВЬТЕСЬ!🚨
И не говорите, что мы вас не предупреждали.

Уже 10 марта стартует флагманский онлайн-курс
"Data Engineer 8.0". Присоединяйтесь: https://clck.ru/TXLLN

🧑🏻‍💻Приглашаем дата инженеров, администраторов баз данных и менеджеров по развитию продуктов систематизировать свои знания и овладеть новыми востребованными навыками в области дата инжиниринга.

7-недельная образовательная программа по построению ETL-пайплайнов: Hadoop, Kafka, Spark, Airflow, ElasticSearch и пр:
✔️21 практическое занятие;
✔️10+ современных инструментов по обработке данных;
✔️6 лабораторий-суперавчиков.

Обучают: Антон Пилипенко (Sbermarket), Николай Марков (Aligned Research Group), Андрей Титов (NVIDIA) и Егор Матешук (Qvant),

Преподаватели, не нуждающиеся в дополнительном представлении. Они поделятся с вами своим бесценным опытом, датасетами из реальной жизни и помогут обойти многие подводные камни.
источник

А

Алексей in Data Engineers
Anton Zadorozhniy
Свою приложеньку ещё имеет смысл писать если вы хотите батчевую логику; в open source не осталось батчевых выгружалок из Кафки вроде бы
спарк стриминг может работать как стрим, а может как батч:
spark.read.format("kafka") //батчами с метки и до конца
spark.readStream.format("kafka") //стримом

- или это не то?
источник

А

Алексей in Data Engineers
а или что офсет нужно самому хранить так?
источник

AZ

Anton Zadorozhniy in Data Engineers
Алексей
спарк стриминг может работать как стрим, а может как батч:
spark.read.format("kafka") //батчами с метки и до конца
spark.readStream.format("kafka") //стримом

- или это не то?
может, мы говорили приложения для просто логистики данных, держать спарк кластер просто чтобы иногда положить данные из кафки в S3 - для некоторых может показаться оверхедом
источник

AZ

Anton Zadorozhniy in Data Engineers
(особенно если в экосистеме спарка вообще нет)
источник

P

Pavel in Data Engineers
Алексей
а или что офсет нужно самому хранить так?
Кстати, есть неплохой паттерн по организации хранения данных - писать оффсет последней записи во вставляемом батче, писать прям рядом с данными + в отдельную табличку (или файл, пох). При записи это поможет сделать гарантию однократной вставки данных🙂
источник

Igor  Master in Data Engineers
Pavel
Кстати, есть неплохой паттерн по организации хранения данных - писать оффсет последней записи во вставляемом батче, писать прям рядом с данными + в отдельную табличку (или файл, пох). При записи это поможет сделать гарантию однократной вставки данных🙂
Это если это в одной транзакции писать
источник

P

Pavel in Data Engineers
Может есть какое-нибудь хитровыебанное название такого подхода
источник

Igor  Master in Data Engineers
Это на самом деле прямо в документации к кафке написано. Иначе будут либо дубликаты либо недосланные ивенты
источник

P

Pavel in Data Engineers
Igor  Master
Это если это в одной транзакции писать
Нет. Это даже при записи в клик можно сделать
источник

AZ

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

P

Pavel in Data Engineers
Anton Zadorozhniy
У нас так делает наш грузчик данных из стандартного набора утилит (он пишет в файл пары партиция-оффсет на котором закончил), но он на плюсах и либрдкафка, с авро схемами не умеет работать поэтому не всем подходит
Трешугаррасчлененка
источник

AZ

Anton Zadorozhniy in Data Engineers
Pavel
Трешугаррасчлененка
Зато очень шустрый )
источник

Igor  Master in Data Engineers
Anton Zadorozhniy
У нас так делает наш грузчик данных из стандартного набора утилит (он пишет в файл пары партиция-оффсет на котором закончил), но он на плюсах и либрдкафка, с авро схемами не умеет работать поэтому не всем подходит
А он потом как-то анализирует какие файлы он записал уже и с того момента начинает?
Может быть такое что он недозапишет файл.
источник

AZ

Anton Zadorozhniy in Data Engineers
Igor  Master
А он потом как-то анализирует какие файлы он записал уже и с того момента начинает?
Может быть такое что он недозапишет файл.
Он берет файл с офсетами и начинает с того же места, не анализирует целевую таблицу (он пишет в базу, а не объектный сторадж)
источник

Igor  Master in Data Engineers
а ну так это примерно так же как спарк оффсеты менеджит
источник

AZ

Anton Zadorozhniy in Data Engineers
Да, все так делают, идея в том что нужно это делать не спарк джобом для которого нужен кластер, а маленькой самодостаточной утилитой
источник

Igor  Master in Data Engineers
А почему оффсеты в Кафке не хранить? librd - тема согласен
источник