Pull to refresh
30
0
Aleks Spevak @alekskram

User

Send message

Принципы построения систем потоковой аналитики

Reading time9 min
Views16K
image

Проектирование систем потоковой аналитики и потоковой обработки данных имеет свои нюансы, свои проблемы и свой технологический стек. Об этом мы поговорили в очередном открытом уроке, прошедшим накануне запуска курса «Data Engineer».

На вебинаре обсудили:

  • когда нужна потоковая обработка;
  • какие элементы есть в СПОД, какие инструменты мы можем использовать для реализации этих элементов;
  • как построить свою систему анализа кликстримов.

Преподаватель — Егор Матешук, Senior Data Engineer в MaximaTelecom.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments2

5 лайфхаков оптимизации SQL-запросов в Greenplum

Reading time5 min
Views34K


Любые процессы, связанные с базой, рано или поздно сталкиваются с проблемами производительности запросов к этой базе.

Хранилище данных Ростелекома построено на Greenplum, большая часть вычислений (transform) производится sql-запросами, которые запускает (либо генерирует и запускает) ETL-механизм. СУБД имеет свои нюансы, существенно влияющие на производительность. Данная статья — попытка выделить наиболее критичные, с точки зрения производительности, аспекты работы с Greenplum и поделиться опытом.

В двух словах о Greenplum
Greenplum — MPP сервер БД, ядро которого построено на PostgreSql.

Представляет собой несколько разных экземпляров процесса PostgreSql (инстансы). Один из них является точкой входа для клиента и называется master instance (master), все остальные — Segment instanсe (segment, Независимые инстансы, на каждом из которых хранится своя порция данных). На каждом сервере (segment host) может быть запущено от одного до нескольких сервисов (segment). Делается это для того, чтобы лучше утилизировать ресурсы серверов и в первую очередь процессоры. Мастер хранит метаданные, отвечает за связь клиентов с данными, а также распределяет работу между сегментами.



Подробнее можно почитать в официальной документации.

Далее в статье будет много отсылок к плану запроса. Информацию для Greenplum можно получить тут.

Как писать хорошие запросы на Greenplum (ну или хотя бы не совсем печальные)

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments6

А не синьор ли ты часом? О чем спрашивают на собеседованиях для синьоров

Reading time8 min
Views16K

Десять лет назад Евгений Афонасьев, совсем еще зеленый джун, попал на первый в своей жизни PyCon, который проходил на турбазе под Екатеринбургом. С тех пор многое изменилось, PyCon вырос и перебрался в Москву, а Евгений превратился в опытного python-разработчика, который уже сам выступает на конференциях и проводит собеседования. Именно о том, как проводятся собеседования на позицию синьора, он рассказал на PyCon Russia 2022. Доклад признали лучшим докладом конференции, поэтому мы решили с вами поделиться его текстовой версией. Далее — от лица Евгения. 

Читать далее
Total votes 8: ↑5 and ↓3+2
Comments11

СoverLetterEnchancer: упрощаем поиск работы с FastAPI и YandexGPT

Level of difficultyEasy
Reading time15 min
Views3.4K

Салют! Меня зовут Григорий, я главный по спецпроектам в AllSee. Если вы когда‑нибудь серьёзно подходили к вопросу поиска работы, то вам определённо приходилось муторно писать сопроводительные письма под каждую вакансию. В данной статье я расскажу, как автоматизировать составление максимально релевантного для вакансии сопроводительного письма с учётом вашего резюме.

Читать далее
Total votes 6: ↑3 and ↓30
Comments2

Дайте крудошлепа

Level of difficultyMedium
Reading time7 min
Views113K

Я устроился в небольшую компанию, которая сделал круд‑приложуху на 20 таблиц типа «заметки» и активно ее продавала госорганам за невменяемый бабос.

У нас был 3(три) Т‑Р-И статуса юзера. Anonym → Logined → Phone_Confirmed. Молодой талант до меня увидел в этом граф, и написал класс на 200+ строк, реализующий алгоритм Флойда‑Уоршелла, прикрутил стейт‑машину и не найдя интересных задач, c блеском прошел собес в Яндекс и свалил.

Меня наняли сеньором, и я каюсь ничерта не понял, алгоритм прекрасно работал на первой ступени, на второй давал сбои, тоскливо погуглил этот алгоритм, стер все к черту и написал: if(status==Logined & phone!=null){status=Phone_Confirmed}.

Один коллега посмотрел на меня с немой благодарностью, а начальник офигел и сказал, что код нерасширяем и захардкожен, а тот алгоритм мог пройти за время логN через тысячу вершин и по истечению испытательного урока меня уволили нах, так как мой технический уровень не соответствовал их высоким требованиям, впрочем выдали три зарплаты и я благодарен этим людям. Мой код оставили, тот так и не смогли починить.

Это было вступление.

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

Потому что, только я могу решить задачку, которую вы уже 10 лет решить не можете, когда прилетает пуш‑уведомление или смс и в твоем всплывающем окне написано:

«Ваш шестизначный пароль доступа в наше приложение: 123...»

Не согласен! ...
Total votes 395: ↑332 and ↓63+339
Comments728

Введение в Astro

Level of difficultyMedium
Reading time20 min
Views13K

Astro — статический генератор сайтов, ориентированный на производительность. Фреймворк стремительно набирает популярность и конкурирует с популярным NextJS.

Чем же так хорош Astro? Рассказываем об основных концепциях фреймворка, его архитектурных паттернах, подходах и фишках, которые позволяют достигать высокого уровня оптимизации.

Погружаться в тему будем в процессе сборки блога по фронтенд-разработке. Кстати, весь контент для сайта от имени разработчика для нас сгенерирует ChatGPT.

Содержание статьи:

Немного теории

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments7

Изи freestyle android приложения на Kivy (Python), Google collab и ваш не любимый ChatGPT

Level of difficultyEasy
Reading time6 min
Views3.3K

Всё началось с того, что я искал обучающие приложения по программированию. Как ни странно, в русскоязычном сегменте почти отсутствуют подходящие приложения, а многие из них представляют справочники в виде книг...

Читать далее
Total votes 12: ↑11 and ↓1+13
Comments2

Мультиплатформенное управление контентом с помощью Directus

Level of difficultyEasy
Reading time14 min
Views4.1K

Задача публикации нового контента вызывает у вас боль и неприятные ощущения? Вы чувствуете мозоли на пальцах от бесконечного перепечатывания материала для его размещения на разных платформах?

Решение есть...
Total votes 4: ↑4 and ↓0+4
Comments2

Мама

Level of difficultyEasy
Reading time9 min
Views29K

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

Сегодня я это все же сделаю!

Читать далее
Total votes 86: ↑59 and ↓27+47
Comments44

Деревья ltree в PostgreSQL – простым языком

Level of difficultyMedium
Reading time5 min
Views9.5K

Привет, Habr! Меня зовут Оля Плюта, я продуктовый аналитик маркетплейса Uzum Market. В этой статье я расскажу об иерархических деревьях ltree в PostgreSQL. Статья вводная, поэтому я постаралась сделать её максимально понятной и наглядной.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments4

Чёрный рынок звёздочек на GitHub, который помогает читерить с популярностью

Reading time7 min
Views6.2K

Популярность на GitHub помогает открывать ценные возможности для разработчиков и стартапов. Подпольные магазины продают «звезды» платформы, предлагая программистам способ буквально следовать популяному слогану «Fake it till you make it».

Читать далее
Total votes 7: ↑6 and ↓1+9
Comments9

Кластеризация текста в PySpark

Level of difficultyMedium
Reading time9 min
Views7K

Привет, Хабр!

На связи участники профессионального сообщества NTA Кухтенко Андрей, Кравец Максим и Сиянов Артем.

Любой текст – это не просто коллекция слов, он содержит мысли и намерения его автора. Но вручную невозможно обработать огромное количество текстовой информации и понять какие данные они могут содержать. В таком случае нам поможет кластеризация текста, которая позволит получить представление о данных.

Узнать больше о кластеризации текста
Total votes 6: ↑5 and ↓1+8
Comments5

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 2

Reading time6 min
Views8.9K

В предыдущей части мы частично разобрали шаблон для нашего блога, выбрали виртуальную машину и запустили на ней нативный веб-сервер Django. Однако он предназначен только для тестирования и запуска приложений во время разработки. Для обработки запросов в продакшене нужно настроить Nginx и WSGI Gunicorn. В этой статье показываем, как это сделать.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments6

Вжух и денег нет: как Binance обнулил мой счет

Level of difficultyEasy
Reading time6 min
Views77K

Кратко: баланс на Binance около 3000 USDT  – > технический сбой 24 марта 2023 г. – > вжух, денег нет. В статье, расскажу о работе поддержки Binance и как вернуть деньги. Вдруг я не один, кто столкнулся с этой проблемой и мой опыт будет полезен.

Читать далее
Total votes 77: ↑66 and ↓11+75
Comments337

Умная баня – пар, свет и вентиляция

Reading time5 min
Views6.2K

Кому не нравится провести время в бане, чтобы хорошенько пропотеть, помассировать себя веником, выпить горячего чая, а может и пива в самом конце процесса?

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

Мы решили отправиться в Ижевск и рассказать о проекте умной бани от местных умельцев.

Интересно? Ныряйте под кат

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments23

Пишем приложение на Python для интерактивной визуализации графов с NetworkX, Plotly и Dash

Level of difficultyMedium
Reading time8 min
Views10K

Промпт: интерактивная визуализация сети транзакций, абстракция на белом фоне

Говорят, хорошая визуализация данных лучше тысячи слов о них, и с этим трудно спорить.

Эта статья посвящена написанию приложения на Python для интерактивной визуализации графов. В первой части представлен краткий обзор использованных средств и библиотек, а также свойства приложения. Во второй половине — технические детали, касающиеся использования NetworkX, Plotly и Dash, и собственно код.

В результате всего за 300 строк на Python получится веб-приложение с пользовательским интерфейсом, отображающим ориентированный граф с несколькими селекторами для настройки используемых данных.

Погнали!
Total votes 12: ↑12 and ↓0+12
Comments4

Как навсегда запомнить выученное — 2 самые эффективные техники запоминания

Reading time17 min
Views61K

Интервальное повторение, эффект припоминания, метод Фейнмана, гипотеза желательной сложности, эффект генерации и другие свойства памяти, не позволяющие информации затеряться в синапсах мозга. Существуют ли техники обучения (запоминания) более эффективные, чем последовательное чтение учебного материала, пусть даже и с заметками?

Читать далее
Total votes 29: ↑28 and ↓1+33
Comments23

Математика самонаводящихся ракет из аниме

Reading time4 min
Views18K

Я создал прототип ракетной атаки! Для этого понадобилась хитрая математика, о которой будет рассказано в этой статье.

Мы поговорим о кубических кривых Безье, шуме Перлина и rotation minimizing frames.
Читать дальше →
Total votes 66: ↑65 and ↓1+75
Comments11

Сколько стоит содержать виртуальную девушку? Создаем подругу, записывающую кружочки в Telegram, с помощью 4 нейросетей

Level of difficultyMedium
Reading time18 min
Views50K

Не так давно в интернете появилась душещипательная история, как пользователь hackdaddy8000 сперва создал виртуальную девушку, а затем усыпил ее. Моральный и мемный аспект этого события обсуждали в комментариях под новостями.

Поговорим о технической стороне. Как повторить этот шедевр и можно ли обойтись без сервисов OpenAI, которые сложно оплатить в России? И главное — сколько придется инвестировать в виртуальную подругу.
Читать дальше →
Total votes 96: ↑91 and ↓5+111
Comments65

Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)

Level of difficultyHard
Reading time27 min
Views8.9K

Шаблон backend сервера на Golang — часть 3 (Docker, Docker Compose, Kubernetes (kustomize)


Схема развертывания в Kubernetes


Первая часть шаблона посвящена HTTP серверу.


Вторая часть шаблона посвящена прототипированию REST API.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Четвертая часть будет посвящена развертыванию в Kubernetes с Helm chart и настройке Horizontal Autoscaler.


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Для корректного развертывания в Kubernetes, в шаблон пришлось внести изменения:


  • способа конфигурирования — YAML, ENV, Kustomize
  • подхода к логированию — переход на zap
  • способа развертывания схемы БД — переход на liquibase
  • добавление метрик prometheus

Ссылка на новый репозиторий.


Шаблон goapp в репозитории полностью готов к развертыванию в Docker, Docker Compose, Kubernetes (kustomize), Kubernetes (helm).


Настоящая статья не содержит детального описание используемых технологий


Содержание


  1. Изменение подхода к конфигурированию
  2. Добавление метрик prometheus
  3. Изменение подхода к логированию
  4. Развертывание схемы БД
  5. Сборка Docker image
  6. Сборка Docker-Compose
  7. Схема развертывания в Kubernetes
  8. Подготовка YAML для Kubernetes
  9. Kustomization YAML для Kubernetes
  10. Тестирование Kubernetes с kustomize
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments0

Information

Rating
Does not participate
Registered
Activity