Pull to refresh
1
0.3

Пользователь

Send message

Natural Docs + GitHub Pages = online auto-documentation на халяву (почти)

Reading time3 min
Views3.3K
У GitHub есть забавная штука, называется GitHub Pages.

Использоваться может двояко – можно или сайт замутить, или сделать доки к репозитарию, в мануале об этом подробно написано.

Нас сейчас сайт не интересует, а вот доки к репозитарию – тема что надо. Я для примера буду использовать проект на javascript, но это не важно, Natural Docs поддерживает приличную пачку языков, чем и хорош.
Читать дальше →

Концепция Data Mesh. Принципы, идеи, применение на практике

Reading time5 min
Views14K

С чего началась наша компания? В первую очередь, конечно, с людей и с идеи. Как это обычно бывает, правильные люди абсолютно случайно познакомились друг с другом, и вот я здесь, сижу и пишу этот пост =) Была, однако, и ещё одна очень важная составляющая - данные...

Любой ML-проект начинается с анализа ландшафта доступных данных - что мы можем скачать, выгрузить, разметить, купить. За четыре года наша культура работы с данными, инструментарий, подходы, процесс разметки претерпели очень большие изменения. Сейчас у нас накоплено почти 100 терабайт медицинских исследований, но количество данных абсолютно не важно, если они плохого качества, и их неудобно изучать, понимать и использовать. Недавно я делал обзорный доклад про разные аспекты качества медицинских данных, а вот наше выступление про технические аспекты пути к качеству. Сегодня же я хочу поговорить об очень интересной концепции (или даже философии), которая в последнее время на слуху, но, судя по разным постам в интернете, её суть понятна далеко не всем. Это Data Mesh.

Впервые я столкнулся с этим понятием в докладе Леруа Мерлен на митапе LeanDS. Доклад любопытный, но суть дата меш мне из него была понятна не до конца, так что недавно я взялся за чтение книги от авторки этой концепции и термина - Data Mesh: Devlivering Data-Driven Value at Scale.

Книга мне очень понравилась - она концептуальная, почти не затрагивает конкретные инструменты и способы реализации, но раскрывает суть идеи целиком и полностью. Полный конспект я могу скинуть в комментариях, если кого-то заинтересует, а в этом посте я поговорю об основных принципах, моей интерпретации и самых интересных моментах для нашей компании.

Читать далее

Чуть больше о связи Критериев готовности (Definition of done) и Условий удовлетворенности (Conditions of Satisfaction)

Reading time4 min
Views17K

Я хотел бы прояснить взаимосвязь между двумя важными понятиями: командным определением Критериев готовности (Definition of done) и Условий удовлетворенности (Conditions of Satisfaction) для пользовательской истории.

Читать далее

Медицинский детектив: как я разрабатывал матмодель и софт для хирургии по пересборке черепа

Reading time13 min
Views8.7K
image

Изначально моей подзадачей в этом процессе была пересборка человеческих челюстей в анатомически-правильное положение. До нас задачу решал хирург-человек, полагаясь фактически на визуальные ориентиры. Это давало быстрый хороший эффект, но не всегда он сохранялся спустя годы. Чтобы решить задачу правильно, нужно было найти оптимум на стыке трёх специализаций, включая математику. И, увы, до нас почему-то никто такую команду не собирал.

Проблема в том, что хирург фактически не знает точно, куда ровнять лицо. Он выравнивает так, как считает правильным «здесь и сейчас». Это часто ведёт к осложнениям спустя годы, про которые этот самый хирург чаще всего не знает.

Мы разработали новый протокол операции. Через 3 года прошла первая операция.

В старом протоколе хирург бы снял слепки зубов, разместил бы модель фрагментов пациента в артикулятор и подготовил бы набор ручных вмешательств. Наша методика расчёта показала, что то, что мы всегда считали «визуально правильным», таким не является. Мы долго проектировали ту операцию за матмоделями, проверяя, что будет с костями. Во время операции хирург открывал мягкие ткани, ставил навигационный шаблон на костную ткань, перекраивал кости под новыми углами. Углы, под которыми скреплялись кости, выглядели контринтуитивно. Их рассчитывала матмодель на основе КТ и фотограмметрии. Она же дала сверхточную навигацию: ничего не делалось вручную, только по трёхмерной координатной привязке. Хирург быстро разрезал, поставил шаблоны, наложил пластины, скрепил пластины в расчётных точках. Что-то похожее я видел в ролике к игре Deus Ex. Хирург во время самой операции был лишь исполнителем своей заранее созданной программы.

Пациент восстановился за 4 месяца. Старый протокол подразумевал, что общее время лечения будет длиться 30 месяцев, а с этим протоколом мы сократили общее время лечения до 4–12 месяцев.

Сегодня эта операция стала новым стандартом сферы.

Потому что мы поставили под сомнение догму.
Читать дальше →

Нефункциональные требования как пользовательские истории (Non-functional Requirements as User Stories)

Reading time3 min
Views12K

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

Читать далее

Мониторинг как сервис: модульная система для микросервисной архитектуры

Reading time9 min
Views23K
Сегодня на нашем проекте, помимо монолитного кода, функционируют десятки микросервисов. Каждый из них требует того, чтобы его мониторили. Делать это в таких объемах силами DevOps-инженеров проблематично. Мы разработали систему мониторинга, которая работает как сервис для разработчиков. Они могут самостоятельно писать метрики в систему мониторинга, пользоваться ими, строить на их основании дашборды, прикручивать к ним алерты, которые будут срабатывать при достижении пороговых значений. С DevOps-инженеров — только инфраструктура и документация.

Этот пост — расшифровка моего выступления с нашей секции на РИТ++. Многие просили нас сделать текстовые версии докладов оттуда. Если вы были на конференции или смотрели видео, то не найдете ничего нового. А всем остальным — добро пожаловать под кат. Расскажу, как мы пришли к такой системе, как она работает и как мы планируем её обновлять.


Читать дальше →

Grafana как инструмент визуализации потока данных в Kafka

Reading time15 min
Views9K

Сегодня, в эпоху больших данных, когда компании тонут в информации из самых различных локальных и облачных источников, сотрудникам трудно увидеть общую картину. Анализ информации для отделения зерен от плевел требует все больше усилий. Визуализация данных помогает превратить все данные в понятную, визуально привлекательную и полезную информацию. Хорошо продуманная визуализация данных имеет критическое значение для принятия решений на их основе. Визуализация позволяет не только замечать и интерпретировать связи и взаимоотношения, но и выявлять развивающиеся тенденции, которые не привлекли бы внимания в виде необработанных данных. Большинство средств визуализации данных могут подключаться к источникам данных и таким образом использовать их для анализа. Пользователи могут выбрать наиболее подходящий способ представления данных из нескольких вариантов. В результате информация может быть представлена в графической форме, например, в виде круговой диаграммы, графика или визуального представления другого типа.

Большинство средств визуализации предлагает широкий выбор вариантов отображения данных, от обычных линейных графиков и столбчатых диаграмм до временных шкал, карт, зависимостей, гистограмм и настраиваемых представлений. Для решения задачи визуализации принципиальное значение имеет тип источника данных. И хотя современные средства визуализации проделали в этом вопросе большой путь, и предлагают на сегодняшний день весьма большой выбор, задача визуализации не решена в полной мере. Если для баз данных и целого ряда web сервисов задача визуализации не представляет принципиальной проблемы, то понять, что происходит с информационными потоками внутри некоторых программных продуктов из мира больших данных, не так просто.

Инструмент, на котором хотелось бы остановиться более подробно – Kafka.

Читать далее

6 топовых трендов в области данных и аналитики на 2022 год

Reading time6 min
Views5.5K

На протяжении десятилетий управление данными означало, по сути, сбор, хранение и периодический доступ к ним. В последние годы все изменилось, поскольку компании ищут критически важную информацию, которую можно извлечь из огромных объемов данных, генерируемых, доступных и хранящихся в различных местах, от корпоративных центров обработки до облачных и периферийных сред. В связи с этим аналитика данных — благодаря таким современным технологиям, как искусственный интеллект (AI) и машинное обучение (ML) — стала обязательной функцией, а в 2022 году ее значение возрастает еще больше. Предприятиям необходимо быстро анализировать данные — в основном неструктурированные — для поиска информации, которая будет определять бизнес-решения. Для этого им также необходимо создать современную среду данных.

Ниже приведены несколько тенденций в управлении данными, которые выйдут на первый план в 2022 году.

Читать далее

Стратегия инкрементального наполнения витрин: необходимость, реализация, подводные камни

Reading time7 min
Views6.3K

Итак, Вы работаете с Большими Данными:

– Обработка этих данных требует значительного времени (и затрат ?).

– Исторические данные не меняются (или не должны меняться) - как правило, это свершившиеся факты.

– Если Вам удается не делать повторную обработку исторических данных - Вы экономите время и затраты.

Читать далее

ETL-пайплайны на Airflow: Хороший, Плохой, Злой

Reading time8 min
Views18K

Airflow это популярная опенсорсная платформа управления задачами. В частности его используют для построения ETL-пайплайнов. Например, мне доводилось переливать данные между базами данных, хранилищами и озерами данных с его помощью. А также я использовал его для препроцессинга данных для моделей машинного обучения. Но так ли подходит Airflow для ETL на сегодняшний день?

В этой статье мы рассмотрим как с помощью Airflow ETL операторов выгрузить данные из Postgres в BigQuery в парадигмах ETL и ELT. Далее разберем сложности, с которыми вы можете столкнуться при реализации инкрементальной загрузки данных в DAG (DAG - directed acyclic graph, ориентированный ацикличный граф - цепочка связанных задач). Наконец, мы обсудим почему Airflow ETL операторы не смогут покрыть все ваши потребности в интеграциях в дальней перспективе.

Читать далее

SQL для аналитики — рейтинг прикладных задач с решениями

Reading time11 min
Views49K

Привет, Хабр! У кого из вас black belt на sql-ex.ru, признавайтесь? На заре своей карьеры я немало времени провел на этом сайте, практикуясь и оттачивая навыки. Должен отметить, что это было увлекательное и вознаграждающее путешествие. Пришло время воздать должное.

В этой публикации я собрал топ прикладных задач и мои подходы к их решению в терминах SQL. Каждая задача снабжена кусочком данных и кодом, с которым можно интерактивно поиграться на SQL Fiddle.

Читать далее

Real Time API в контексте Apache Kafka

Reading time12 min
Views12K

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

События (Events) предлагают подход в стиле принципа Златовласки, в котором API реального времени (real-time APIs) могут использоваться в качестве основы для приложений, которые являются гибкими, но в то же время высокопроизводительными; слабосвязанными, но эффективными.

События можно рассматривать как строительные блоки для множества других структур данных. Как правило, они фиксируют факт того, что что-то произошло, и момент времени, в который это произошло. Событие может фиксировать эту информацию с различными уровнями детализации: от простого уведомления до подробного события, описывающего полное состояние того, что произошло.

Читать далее

Электронные таблицы как средство разработки бизнес-приложений

Reading time8 min
Views12K
Excel часто используется как универсальное средство для разработки бизнес-приложений. В этой статье я хочу сравнить, существующие без особых изменений уже более 30 лет, электронные таблицы с современной классической императивной парадигмой программирования глазами архитектора ПО. Затем я хочу рассказать о своей работе над новым табличным процессором, который исправляет многие недостатки, выявленные при сравнении, тем самым позволяя создавать более надежные, масштабируемые и легкие для поддержки и дальнейшего развития, бизнес-приложения.


Читать дальше →

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

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

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


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

Создаем OLAP куб. Часть 1

Reading time3 min
Views164K
OLAP

Продолжая тематику Многомерные кубы, OLAP и MDX и olap для маленькой компании, традиционно, предлагаю начать с простенького «Hello World» куба, который будет анализировать процессы и тенденции голосований на Хабре.

Итак, давайте попробуем создать свою первую OLAP систему.
Но, прежде чем, потирая руки, запускать Business Intelligence Studio, предлагаю вначале создать хранилище данных хабра-голосов, так называемый Data Warehouse.
Зачем? Причин в этом несколько:
  • сама суть Data Warehouse-а хранить «очищенные» данные, готовые для анализа, поэтому даже его изначальная структура может сильно отличаться от структуры нашей хабра-OLTP базы данных
  • в HabraDW (так мы его назовем) мы вынесем только ту информацию, которая нам нужна будет для анализа, ничего лишнего
  • к Data Warehouse не накладываются требования нормализации. Даже наоборот, денормализировав некоторые данные можно добиться более понятной схемы для построения куба, а также скорости загрузки данных в куб
Читать дальше →

Современный дата-стек: прошлое, настоящее и будущее

Reading time19 min
Views3.5K

Мои размышления о том, откуда мы пришли и куда можем двигаться.

Недавно я выступал с докладом по этой теме на конференции Sisu Future Data, и, поскольку я мыслю в прозе, а не в Powerpoint, мне пришлось оформить свои измышления на бумаге, прежде чем я смог разбить их слайды. В результате еще некоторого количества усилий на свет появилась эта статья, и я очень надеюсь, что она будет для вас полезной. Если вам интересно посмотреть мой доклад полностью, вы можете найти его запись здесь.

Читать далее

Современный стек данных: прошлое, настоящее и будущее

Reading time19 min
Views8.6K

Недавно с такой темой я выступил на конференции Future Data*, организованной Sisu, и поскольку мыслю я в прозе, а не картинками в PowerPoint, мне пришлось написать пост, прежде чем собрать все слайды вместе. (*Речь о первой ежегодной конференции, которая состоялась осенью 2020 года — прим. переводчика) Немного времени мне потребовалось на то, чтобы всё это отшлифовать и опубликовать, и, надеюсь, для вас материал окажется ценным. Если хотите услышать выступление полностью, вы можете сделать это здесь.

Читать далее

Пять правил эффективной организации хранилища данных

Reading time7 min
Views5.1K

Хаос — естественное состояние Вселенной. В закрытых системах постепенно растет энтропия, и этого не изменить. Хранилище данных по своей природе тоже тяготеет к хаосу, но можно поддерживать в нем порядок.

Хаос — естественное состояние Вселенной. В закрытых системах постепенно растет энтропия, и этого не изменить. Хранилище данных по своей природе тоже тяготеет к хаосу. Если не поддерживать в нем порядок, то в конечном счете вы получите мешанину из объектов, в которых будет сложно ориентироваться и которыми будет невозможно управлять, и не решитесь их удалить. Некогда обслуживанием баз данных занимались специальные администраторы, но теперь в большинстве случаев за порядок в данных не отвечает никто (то есть кто угодно).

Читать далее

Как Discord хранит миллиарды сообщений

Reading time10 min
Views93K


Discord продолжает расти быстрее, чем мы ожидали, как и пользовательский контент. Чем больше пользователей — тем больше сообщений в чате. В июле мы объявили о 40 млн сообщений в день, в декабре объявили о 100 млн, а в середине января преодолели 120 млн. Мы сразу решили хранить историю чатов вечно, так что пользователи могут вернуться в любой момент и получить доступ к своим данным с любого устройства. Это много данных, поток и объём которых нарастает, и все они должны быть доступными. Как мы это делаем? Cassandra!
Читать дальше →

Инфраструктура Twitter: масштаб

Reading time15 min
Views17K

Обзор парка Twitter


Twitter пришёл из эпохи, когда в дата-центрах было принято устанавливать оборудование от специализированных производителей. С тех пор мы непрерывно разрабатывали и обновляли серверный парк, стремясь извлечь пользу из последних открытых технологических стандартов, а также повысить эффективность работы оборудования, чтобы обеспечить наилучший опыт для пользователей.

Наше текущее распределение оборудования показано ниже:


Читать дальше →

Information

Rating
6,366-th
Location
Израиль
Date of birth
Registered
Activity