Search
Write a publication
Pull to refresh
0
@nowhereboyread⁠-⁠only

User

Send message

Важные изменения в работе CTE в PostgreSQL 12

Reading time2 min
Views28K
WITH w AS  NOT MATERIALIZED (
    SELECT * 
    FROM very_very_big_table
)
SELECT * 
FROM w AS w1 
    JOIN w AS w2 
        ON w1.key = w2.ref
WHERE w2.key = 123;

Сегодня в репозиторий PostgreSQL упал комит, позволяющий управлять поведением обработки подзапросов CTE, а именно: теперь можно явно указывать, будет ли подзапрос материализовываться отдельно или же выполняться как часть одного большого запроса.


Это войдет в PostgreSQL 12, и это big deal. Давайте рассмотрим, почему

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

Понимание джойнов сломано. Это точно не пересечение кругов, честно

Reading time4 min
Views380K

Так получилось, что я провожу довольно много собеседований на должность веб-программиста. Один из обязательных вопросов, который я задаю — это чем отличается INNER JOIN от LEFT JOIN.


Чаще всего ответ примерно такой: "inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах, а left join — это когда левая таблица остается без изменений, а от правой добавляется пересечение множеств. Для всех остальных строк добавляется null". Еще, бывает, рисуют пересекающиеся круги.


Я так устал от этих ответов с пересечениями множеств и кругов, что даже перестал поправлять людей.


Дело в том, что этот ответ в общем случае неверен. Ну или, как минимум, не точен.

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

Понимание джойнов сломано. Продолжение. Попытка альтернативной визуализации

Reading time2 min
Views94K
Многие из вас читали предыдущую статью про то, как неправильная визуализация для объяснения работы JOIN-ов в некоторых случаях может запутать. Круги Венна не могут полноценно проиллюстрировать некоторые моменты, например, если значения в таблице повторяются.

При подготовке к записи шестого выпуска подкаста "Цинковый прод" (где мы договорились обсудить статью) кажется удалось нащупать один интересный вариант визуализации. Кроме того, в комментариях к изначальной статье тоже предлагали похожий вариант.


Все желающие приглашаются под кат

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

Теорема Байеса: просто о сложном

Reading time8 min
Views66K

В этой статье мы рассказываем об основах и применении одного из самых мощных законов статистики - теоремы Байеса. 

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

Мы также покажем истинную силу байесовских рассуждений и как несколько байесовских вычислений можно объединить в цепочку, чтобы вычислить общую апостериорную вероятность.

Читать далее

Все, что вам нужно знать об Airflow DAGs, ч.1 — Основы и расписания

Reading time20 min
Views111K

Полное руководство по созданию DAG в Apache Airflow DAG, позволяющих создать конвейер данных из разных источников, запускаемый в определенные периоды времени с заданной логикой. Первая часть. Источник: DAGs: The Definitive Guide от astronomer.io

Добро пожаловать в полное руководство по Apache Airflow DAG, представленное командой Astronomer. Эта электронная книга охватывает все, что вам нужно знать для работы с DAG, от строительных блоков, из которых они состоят, до рекомендаций по их написанию, динамической генерации, тестированию, отладке и многому другому. Это руководство, написанное практикующими для практикующих.

Читать далее

Домены: история длиной в Интернет

Reading time10 min
Views38K
В самом начале существования Интернета информация обо всех, тогда ещё совсем немногочисленных, компьютерах, подключённых к Сети, хранилась в файлах etc/hosts. Эти текстовые файлы использовались (и поныне используются) при трансляции доменных имён в сетевые адреса узлов. Однако буквально за два года хостов стало больше тысячи, начались проблемы с трафиком. С развитием инфраструктуры Интернета понадобилась система, которая бы упорядочила постоянно растущую в объёмах информацию. Так возникли домены различных уровней иерархии. Постепенно к процессу именования добавился фан — в названия сайтов и в домены верхнего уровня стали вкладывать различный смысл, придумывать интересные варианты и комбинации. Домены стали особыми миром. REG.RU, как регистратор, является частью этого мира. И нам есть что рассказать.


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

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть первая

Reading time29 min
Views862K

О чем данный учебник


Данный учебник представляет собой что-то типа «штампа моей памяти» по языку SQL (DDL, DML), т.е. это информация, которая накопилась по ходу профессиональной деятельности и постоянно хранится в моей голове. Это для меня достаточный минимум, который применяется при работе с базами данных наиболее часто. Если встает необходимость применять более полные конструкции SQL, то я обычно обращаюсь за помощью в библиотеку MSDN расположенную в интернет. На мой взгляд, удержать все в голове очень сложно, да и нет особой необходимости в этом. Но знать основные конструкции очень полезно, т.к. они применимы практически в таком же виде во многих реляционных базах данных, таких как Oracle, MySQL, Firebird. Отличия в основном состоят в типах данных, которые могут отличаться в деталях. Основных конструкций языка SQL не так много, и при постоянной практике они быстро запоминаются. Например, для создания объектов (таблиц, ограничений, индексов и т.п.) достаточно иметь под рукой текстовый редактор среды (IDE) для работы с базой данных, и нет надобности изучать визуальный инструментарий заточенный для работы с конкретным типом баз данных (MS SQL, Oracle, MySQL, Firebird, …). Это удобно и тем, что весь текст находится перед глазами, и не нужно бегать по многочисленным вкладкам для того чтобы создать, например, индекс или ограничение. При постоянной работе с базой данных, создать, изменить, а особенно пересоздать объект при помощи скриптов получается в разы быстрее, чем если это делать в визуальном режиме. Так же в скриптовом режиме (соответственно, при должной аккуратности), проще задавать и контролировать правила наименования объектов (мое субъективное мнение). К тому же скрипты удобно использовать в случае, когда изменения, делаемые в одной базе данных (например, тестовой), необходимо перенести в таком же виде в другую базу (продуктивную).
Читать дальше →

Лучшие книги, статьи и ресурсы для начинающих продактов: советуют авторы продуктовых Telegram-каналов

Reading time4 min
Views16K
Камилла Салиева, автор Телеграм-канала для IT-специалистов Analysis Paradisis, рассказала блогу Нетологии, что рекомендуют читать практикующие продакты и авторы известных продуктовых Telegram-каналов начинающим продакт-менеджерам.

Владимир Миролюбов


CEO Epicstars, автор канала Product Management и бота The Unicorn Bot


Настоятельно рекомендую к прочтению книги от ребят из Intercom, которые подойдут для продактов любого уровня: Intercom On Starting Up и Intercom on Оnboarding. Книги хорошо описывают как процесс разработки онлайн-продуктов, так и дальнейший процесс работы с его пользователями и трафиком. Ну и не могу не посоветовать своё собственное пособие для всех начинающих продактов «Продукт-менеджемент: от идеи до продукта».

Добавляем в Jupyter Notebooks красоту и интерактивность

Reading time7 min
Views84K
Многие используют в своей работе Jupyter Notebooks. Но с ростом сложности проекта появляются проблемы. В блокноте появляются ячейки с красными пометками для самого себя «перед запуском укажи число...» или «задай количество итераций исходя из...». Какой-то откат к командной строке получается.

Да и вывод данных на экран не всегда воспринимается без пояснений сторонним человеком, который привык к красивым таблицам, картинкам и прочим современным элементам интерфейса.
Читать дальше →

Шпаргалка по визуализации данных в Python с помощью Plotly

Reading time62 min
Views344K
Plotly — библиотека для визуализации данных, состоящая из нескольких частей:

  • Front-End на JS
  • Back-End на Python (за основу взята библиотека Seaborn)
  • Back-End на R

В этой простыне все примеры разобраны от совсем простых к более сложным, так что разработчикам с опытом будет скучно. Так же эта «шпаргалка» не заменит на 100% примеры из документации.



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

Продвинутый уровень визуализации данных для Data Science на Python

Reading time7 min
Views55K
Как сделать крутые, полностью интерактивные графики с помощью одной строки Python

image

Когнитивное искажение о невозвратных затратах (sunk cost fallacy) является одним из многих вредных когнитивных предубеждений, жертвой которых становятся люди. Это относится к нашей тенденции продолжать посвящать время и ресурсы проигранному делу, потому что мы уже потратили — утонули — так много времени в погоне. Заблуждение о заниженной стоимости применимо к тому, чтобы оставаться на плохой работе дольше, чем мы должны, рабски работать над проектом, даже когда ясно, что он не будет работать, и да, продолжать использовать утомительную, устаревшую библиотеку построения графиков — matplotlib — когда существуют более эффективные, интерактивные и более привлекательные альтернативы.

За последние несколько месяцев я понял, что единственная причина, по которой я использую matplotlib, — это сотни часов, которые я потратил на изучение сложного синтаксиса. Эти сложности приводят к часам разочарования, выясняя на StackOverflow, как форматировать даты или добавить вторую ось Y. К счастью, это прекрасное время для построения графиков в Python, и после изучения вариантов, явным победителем — с точки зрения простоты использования, документации и функциональности — является библиотека plotly. В этой статье мы погрузимся прямо в plotly, изучая, как создавать лучшие графики за меньшее время — часто с помощью одной строки кода.
Читать дальше →

Автоматический подбор параметров для Spark-приложений

Reading time8 min
Views4.7K

Всем привет! Меня зовут Валерия Дымбицкая, я технический руководитель команды дата-инженеров в OneFactor. В этой статье я расскажу о том, как мы научились автоматически подбирать параметры для Spark-приложений на основе логов.

Проблема, которую мы решали, может встретиться при регулярном, предсказуемом, интенсивном использовании Hadoop-кластера. Я расскажу, как мы простыми средствами сделали рабочую автономную систему тюнинга, сэкономив в итоге 15-16% ресурсов кластера. Вас ждут детали с примерами кода.

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

Зачем нам вообще понадобился автоматический тюнинг?

Начнём с инфраструктуры. Сетап у нас "классический": ограниченный Hadoop-кластер из купленных серверов. В нём на тот момент, когда мы начали всё это делать, было около 30Тб RAM и 5к CPU. В этом кластере запускается множество разноплановых приложений на Apache Spark и в какой-то момент им стало тесновато. Всё больше приложений висели в PENDING значительное время, потребление памяти утроилось за последние 4 месяца. Сохранять такую тенденцию не хотелось.

Довольно много приложений были от продукта Лидогенерация. Базово он устроен так: есть список номеров телефонов (база) и есть Spark ML Pipeline, который каким-то образом отбирает из этой базы лидов абонентов для некоего целевого действия – например, для предложения продукта клиенту. База может меняться от раза к разу. Вот такую пару из

Читать далее

DIY. Книги для всех, даром

Reading time7 min
Views36K

Lingtrain cover


⚡ Градиент обреченный


Upd. 11.06.2022 Многие заинтересовались генерацией изображений нейросетями. Вот Colab (интерактивная среда для запуска кода) для рисования картинок в стиле pixel art по текстовому описанию. Просто запускайте, ближе к концу увидете ячейку для ввода текста. Примеры картинок из Colab'а в комментариях.


Два года назад я начал делать небольшой проект, связанный с обработкой текстов на иностранных языках. Он постепенно развивался и стал использоваться лингвистами в НКРЯ, а энтузиасты сохранения малых языков используют его для расширения своих параллельных корпусов.


Сегодня же я расскажу как при помощи него создать полноценную параллельную книгу на разных языках. Книга будет красиво сверстана в PDF, иметь содержание, обложку и две выровненные по смыслу колонки текста. Такие книги служат отличным подспорьем при изучении иностранного языка. Найти их, однако, не так просто, и скорее всего это будут книги для детей или избранная классика. Полный пример готовой книги можно посмотреть здесь. Под капотом у приложения NLP модели, поддерживаемых языков более ста.


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

Сделать книжку

Data Science Pet Projects. FAQ

Reading time13 min
Views62K

Привет! Меня зовут Клоков Алексей, сегодня поговорим о пет-проектах по анализу данных. Идея написать эту статью родилась после многочисленных вопросов о личных проектах в сообществе Open Data Science (ODS). Это третья статья на Хабре, до этого был разбор алгоритма SVM и анонс крутого NLP курса от ребят из DeepPavlov. В этой статье вы найдете идеи для новых петов и другие полезности. Итак, разберем частые вопросы и дадим определение пет-проекта:


  1. Зачем делать пет-проекты?
  2. Из каких этапов может состоять разработка пет-проекта?
  3. Как выбрать тему и найти данные?
  4. Где найти вычислительные ресурсы?
  5. Как завернуть работающие алгоритмы в минимальный прод?
  6. Как оформить презентабельный вид проекта?
  7. Как и зачем искать коллабораторов?
  8. Когда проходит ODS pet project хакатон?
  9. Где посмотреть примеры пет-проектов и истории участников ODS?

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

Конфигурирование Spark на YARN

Reading time5 min
Views20K
Хабр, привет! Вчера на митапе, посвященном Apache Spark, от ребят из Rambler&Co, было довольно много вопросов от участников, связанных с конфигурированием этого инструмента. Решили по его следам поделиться своим опытом. Тема непростая — поэтому предлагаем делиться опытом тоже в комментариях, может быть, мы тоже что-то не так понимаем и используем.
Читать дальше →

Система увлажнения воздуха для дома или квартиры

Reading time5 min
Views46K

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

Читать далее

Подкасты, книги, курс: подборка интересного по Data Science

Level of difficultyEasy
Reading time5 min
Views6.8K

Большая книга по теории, большая книга не только по теории, подкасты и Стэнфордский курс — под катом 6 рекомендаций для изучения от наших Data Scientist'ов Лаборатории машинного обучения. 

К рекомендациям

Я провёл 400 собеседований за год. Мне есть что сказать

Reading time10 min
Views99K

Я немного преувеличил с количеством — часто я был «вторым пилотом» на собеседованиях. Но какой-то опыт проведения собеседований у меня всё- таки есть, ведь только за 3 месяца весны я провел 150 собесов. В статье я выделил некоторые важные моменты от которых зависит — скажу я кандидату «Да» или «Нет», и собрал очень субъективные рекомендации как проходить собесы. Но учитывая то, какое количество людей через меня прошло, статья будет полезна тем, кто только начал проводить собеседования, кому это только предстоит, и тем, у кого впереди поиск работы. 

Читать далее

Что ждёт дата-инжиниринг в 2023 году? Семь прогнозов

Reading time7 min
Views5.4K
Количество поисковых запросов по профессиям

Что таит в себе будущее дата-инжиниринга? В этой статье я поделюсь своими прогнозами на 2023 и последующие годы.

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

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

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

Information

Rating
Does not participate
Registered
Activity