Pull to refresh
7
0

Software developer

Send message

Дизайн и подходы создания Big Data пайплайнов

Reading time23 min
Views9K
image
(Корень всех зол в data engineering лежит в излишне сложном конвейере обработки данных)

Исторический контекст


Разработка конвейера данных достаточно серьезная задача, а с учетом областей с огромными объемами данных, эта сложность многократно увеличивается. Инструменты и концепции, связанные с большими данными, начали развиваться примерно в начале 2000-х годов, когда масштабы и скорость интернета резко начали возрастать. Компании внезапно обнаружили, что им приходится иметь дело с огромными объемами и скоростью передачи данных. Возможно, одним из пионеров в этой области был Google, инженеры которого боролись с поисковым сканером и индексатором. По сути это по, которое в то время лежало в основе поисковика Google. Поскольку количество веб-сайтов и страниц астрономически росло, Google не мог решить, как масштабировать свой сканер/индексатор, используя существующие вычислительные ресурсы, которые были распределены географически. Ни одна из коммерческих баз данных или технологий в то время не могла масштабироваться быстро и с минимальными затратами, и обе эти технологии были необходимы Google для масштабирования своего основного продукта.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments4

Как научиться программировать на Java: почему стоит и где начать

Reading time8 min
Views125K
image

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

Было бы проще, если бы среди всех языков программирования был «лидер рынка»? И тогда у всех новичков всегда будет безопасный выбор — выучите этот язык, и вы наверняка будете востребованы. Но это конечно же невозможно. Языки являются «инструментами» для решения многочисленных задач. Один из языков, к которому стоит присмотреться, является Java.

Java — это хорошо структурированный, объектно-ориентированный язык, который может показаться простым для начинающих. Вы можете справиться с ним довольно быстро, так как много различных процессов запускаются автоматически. В первое время не потребуется углубляться глубоко в «как там все работает». Java является кроссплатформенным языком. Это позволяет программисту создать приложение, которое можно развернуть на любом устройстве. Это предпочтительный язык для IoT(интернет вещей), отличный инструмент для создания enterprise приложений, мобильных приложений и т.д.

Что важно для новичка, у Java есть одно из крупнейших сообществ и очень качественная документация. Если у вас есть проблема, с высокой вероятностью ответ есть уже в документации. Еще два преимущества Java — это обширные библиотеки и фреймворки, которые покрывают большинство проблем, с которыми вам придется столкнуться как младшему разработчику.
Читать дальше →
Total votes 8: ↑4 and ↓4+3
Comments16

Как и по каким причинам провалились мои первые 5 стартапов

Reading time6 min
Views8.3K
До того, как Loki.ai стал финансово устойчивой компанией, я потерпел неудачу с первыми 5 стартапами за 5 лет.

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

Я запустил свой первый «бизнес» когда я еще учился в школе в 2009 году. Я занимался продажей футболок и доход нашей команды составлял 25 000 долларов. Но несмотря на доход, нам так и не удавалось получить какую-либо прибыль. В свои 17 лет я почему то стал считать, что разобрался в том, как делается бизнес. Но позже я понял, что продавать на площадках, где вы не пользуетесь популярностью и известностью, далеко не тоже самое что продавать футболки друзьям в школе. Это был мой самый первый опыт.

С момента окончания школы я запустил 6 стартапов и с треском провалился в 5 из них.

image

Все 5 неудач имели разные причины. Но уроки, которые я извлек из них, помогли на шестой попытке сделать то, что долго не удавалось (3 года и более).
Читать дальше →
Total votes 6: ↑4 and ↓2+4
Comments11

Обеспечение высокой доступности приложений с Kafka Streams

Reading time10 min
Views14K
Kafka Streams — это Java-библиотека для анализа и обработки данных, хранящихся в Apache Kafka. Как и в любой другой платформе потоковой обработки, она способна выполнять обработку данных с сохранением и/или без сохранения состояния в режиме реального времени. В этом посте я попытаюсь описать, почему достижение высокой доступности (99,99%) проблематично в Kafka Streams и что мы можем сделать для того, чтобы ее достичь.

Что нам нужно знать


Прежде чем описывать проблему и возможные решения, давайте рассмотрим основные концепции Kafka Streams. Если вы работали с API-интерфейсами Kafka для консьюмеров/продьюсеров, то большинство из этих парадигм вам уже знакомы. В следующих разделах я попытаюсь в нескольких словах описать хранение данных в партициях, перебалансировку групп консьюмеров и как основные концепции Kafka клиентов вписываются в библиотеку Kafka Streams.

Kafka: Партицирование данных


В мире Kafka приложения-продьюсеры отправляют данные в виде пар ключ-значение в определенный топик. Сам топик разделен на один или несколько партиций в Kafka брокерах. Kafka использует ключ сообщения, чтобы указать, в какую партицию следует записывать данные. Следовательно, сообщения с одинаковым ключом всегда оказываются в одной партиции.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments0

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity