Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 51 min ago

Как настроить ETL с json’ами в Apache NiFi

Thu, 04/25/2024 - 16:00

Привет, Хабр! Меня зовут Сергей Евсеев, сегодня я расскажу, как в Apache NiFi настраивается ETL-пайплайн на задаче с JSON’ами. В этом мне помогут инструменты Jolt и Avro. Пост пригодится новичкам и тем, кто выбирает инструмент для решения схожей задачи.

Что делает наша команда

Команда работает с данными по рекрутингу — с любой аналитикой, которая необходима персоналу подбора сотрудников. У нас есть различные внешние или внутренние источники, из которых с помощью NiFi или Apache Spark мы забираем данные и складируем к себе в хранилище (по умолчанию Hive, но есть еще PostgreSQL и ClickHouse). Этими же инструментами мы можем брать данные из хранилищ, создавать витрины и складывать обратно, предоставлять данные внутренним клиентам или делать дашборды и давать визуализацию.

Описание задачи

У нас есть внешний сервис, на котором рекрутеры работают с подбором. Сервис может отдавать данные через свою API, а мы эти данные можем загружать и складировать в хранилище. После загрузки у нас появляется возможность отдавать данные другим командам или работать с ними самим. Итак, пришла задача — нужно загрузить через API наши данные. Дали документацию для загрузки, поехали. Идем в NiFi, создаем пайплайн для запросов к API, их трансформации и складывания в Hive. Пайплайн начинает падать, приходится посидеть, почитать документацию. Чего-то не хватает, JSON-ы идут не те, возникают сложности, которые нужно разобрать и решить.

Ответы приходят в формате JSON. Документации достаточно для начала загрузки, но для полного понимания структуры и содержимого ответа — маловато. 

Мы решили просто загружать все подряд — на месте разберемся, что нам нужно и как мы это будем грузить, потом пойдем к источникам с конкретными вопросами. Так как каждый метод API отдает свой класс данных в виде JSON, в котором содержится массив объектов этого класса, нужно построить много таких пайплайнов с обработкой разного типа JSON’ов. Еще одна сложность — объекты внутри одного и того же класса могут отличаться по набору полей и их содержимому. Это зависит от того, как, например, сотрудники подбора заполнят информацию о вакансии на этом сервисе. Этот API работает без версий, поэтому в случае добавления новых полей информацию о них мы получим только либо из данных, либо в процессе коммуникации.

Читать далее

Lane margining: как оценить качество PCIe-соединения без дополнительной аппаратуры

Thu, 04/25/2024 - 15:51

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

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

Читать далее

Honor Magic 6 Pro: новый флагман известного бренда. На что он способен?

Thu, 04/25/2024 - 15:31

Привет, Хабр! Сегодня мы покажем флагманский смартфон Honor Magic 6 Pro и расскажем о его возможностях. Этот телефон весьма производителен и функционален, несмотря на устоявшееся мнение о том, что продукция Honor — это бюджетные модели с базовым функционалом. Можно сказать, что именно после выхода Honor Magic 6 Pro ситуация изменилась. Давайте разберёмся, какие преимущества и недостатки есть у этого смартфона. Подробности — под катом.

Читать далее

Куда подевались ваши манеры? Коллеги в IT

Thu, 04/25/2024 - 15:28

Привет, Хабр! В данной статье я хочу поделиться своим опытом токсичного общения с коллегами, начиная с первой встречи с HR-менеджером и заканчивая работой внутри команды. Такое поведение, на мой взгляд, серьезно подрывает мотивацию и нормальное взаимодействие в команде при решении возникающих проблем. Оно также заставляет задуматься о целесообразности работы в такой атмосфере. Ведь зачем оставаться на месте, где отношения между коллегами вызывают столько дискомфорта?

Читать далее

Это база: нюансы работы с Redis. Часть 2, репликация

Thu, 04/25/2024 - 15:11

Всем привет, на связи Пётр, инженер компании Nixys. В прошлой статье мы разобрали основные концепции Redis. Теперь рассмотрим базовую репликацию Redis и настроим эту БД на высокий уровень отказоустойчивости.

Читать далее

Как не утонуть в море событий аналитики

Thu, 04/25/2024 - 15:02

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

Меня зовут Мочалин Евгений. Я работаю в технической команде фронтенда медицинской компании СберЗдоровье. В этой статье я хочу поделиться историей, как мы выстроили процессы внутри команды, чтобы работа со всеми продуктами компании была прозрачной, стандартизированной и очевидной для всех сотрудников.

Читать далее

Как мы настроили процесс летних стажировок в DS-команде

Thu, 04/25/2024 - 14:21

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

Мы проводим летние стажировки в Центре ИИ 6 лет. С 2018 года 80% принятых на стажировку остались с нами после ее окончания. А 60% из них – работают до сих пор и обучают новые поколения стажеров.

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

Читать далее

Бойлерплейт как инструмент стандартизации Go-проектов

Thu, 04/25/2024 - 14:02

Трудности в процессе разработки на Go — частая история. Чтобы их преодолеть, нам даже пришлось писать собственный бойлерплейт. Хотя казалось бы — всё уже есть, но нет, нам понадобилось имплементировать собственную хардкорную штуку. Расскажем, почему и зачем.

Читать далее

Секретная китайская плата многоканальной охранной сигнализации

Thu, 04/25/2024 - 14:00


Привет, Хабр! Сегодня мы познакомимся с интересной и полезной микросхемой приоритетного шифратора 8:3 CD4532, способной, в частности, расширить порт микроконтроллера, когда количество его выводов оказывается недостаточным для решения поставленной задачи.

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

И ещё, в чисто аппаратных решениях есть какая-то особенная красота, когда весь принцип работы устройства является прозрачным и понятным при взгляде на принципиальную схему.
Ещё нам придётся заглянуть внутрь 555 таймера.

Intel представила новые процессоры на сокете LGA 1851

Thu, 04/25/2024 - 13:59

Сейчас, когда искусственный интеллект уже стал неотъемлемой частью нашей повседневности, компания Intel представила новаторский модельный ряд процессоров Meteor Lake под сокет LGA 1851. Они обещают не только значительный скачок в производительности и энергоэффективности, но и поддержку самых передовых технологий, таких как Wi-Fi 7 и интегрированный NPU для работы ИИ. С таким набором возможностей Meteor Lake задаёт новые стандарты для современных вычислительных систем, обещая революцию в использовании нейросетей, безопасности данных и непревзойденную работу с медиаконтентом.

Читать далее

Как один опытный разработчик за три дня потерял аккаунт в Телеграме, а второй чуть не перевел «другу» 100 тысяч рублей

Thu, 04/25/2024 - 13:44

Коллеги из ИБ-отдела финансовой организации рассказали нам, как недавно атаковали их ИТ-специалистов — эту статью мы написали вместе с CISO, который активно участвовал в расследовании. 

Кажется, что ИТ-специалисты должны лучше разбираться в интернет-мошенничестве из-за специфики работы, но навыки разработки или управления сетевыми устройствами не дают человеку иммунитет от кибератак. 

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

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

Читать далее

Как передать информацию в ICMP-пакетах и не привлечь внимания санитаров

Thu, 04/25/2024 - 13:43

Источник: polymerh.

На Хабре достаточно статей про передачу данных через протокол ICMP. Чего говорить, шесть лет назад я сам писал про стеганографию в IP-пакетах и «пингах». Но кажется, самое время вернуться к этой теме и предложить неочевидные методы.

Если вам кажется, что тема передачи данных в ICMP уже исчерпана и я не смогу вас удивить, то предлагаю извлечь данные из дампа сетевого трафика до прочтения статьи. То, что будет дальше, может ввести в недоумение. Читать дальше →

Автоматизация планирования трудозатрат на долгосрочные проекты

Thu, 04/25/2024 - 13:14

Да здравствует эпоха массового переезда с западных решений на российский софт! ДРТ (бывший Делойт) заменил SAP в части планирования трудозатрат на проекты.

Вместе с командой мы автоматизировали для них этот процесс. В системе мы настроили:

• процесс букирования времени сотрудника через заявку и согласование,

• планирование занятости более чем 1.5 тыс. штатных специалистов,

• равномерное распределение букирований, при котором система показывает пересечения и перегрузку,

• учёт региональных праздников, сокращённых дней и периодов высокой нагрузки,

• подготовку отчётов по трудовым ресурсам.

В статье подробно расскажу, какое решение получилось.

Читать далее

Что внутри мини-компьютера Maibenben PC09? Разборка неттопа с возможностью установки дискретной видеокарты

Thu, 04/25/2024 - 13:14
Необычная модель мини-компьютера, компоновка которого предполагает установку дискретной видеокарты. В корпусе неттопа Maibenben PC09 предусмотрены два слота и PCIe x16, что потенциально дает возможность собрать мощный игровой ПК в компактном корпусе. Интересно? Смотрим, что внутри и тестируем.


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

От простого ИТ-ландшафта к единой платформе разработки: эволюция ИТ в Тинькофф

Thu, 04/25/2024 - 13:10


Создание внутренней платформы разработки — спасение для больших компаний во многих кейсах: помогает избавиться от «зоопарка технологий», унифицировать стандарты и подходы, обеспечить безопасность и стабильно улучшать ИТ внутри компании. Но создание единой платформы — результат эволюционного пути развития, и часто этот путь занимает десятки лет.
Читать дальше →

[recovery mode] Анализ инцидентов с продакшена: как мы интегрировали этот процесс в тестирование

Thu, 04/25/2024 - 13:04

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

Читать далее

Полигон для творчества за 1500 р. Часть 3. Экран, Малина, OpenOCD и бусики

Thu, 04/25/2024 - 13:01


Приветствую вас, друзья!

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

Сегодня поиграемся с экраном и векторным анализатором цепей ОСА 103, подружим OpenOCD с Малиной и немного покопаемся в прошивке.

Вперёд к экспериментам!
Читать дальше →

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

Thu, 04/25/2024 - 13:00

Всем привет! Немного о себе. Меня зовут Максим, я работаю специалистом по Machine Learning в компании SimbirSoft. Последние два года я углубленно изучал область машинного обучения и компьютерного зрения и сегодня с удовольствием поделюсь с вами опытом разработки личного пет-проекта.

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

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

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

Читать далее

Обзор K8s LAN Party —  сборника задач по поиску уязвимостей в кластере Kubernetes прямо в браузере

Thu, 04/25/2024 - 12:22

Я продолжаю тестировать инструменты, которые помогают научиться защищать кластеры Kubernetes. На этот раз взглянем на продукт от разработчиков из компании Wiz ResearchKubernetes LAN Party, челлендж по выполнению CTF-сценариев. Выход инструмента был приурочен к прошедшей в марте этого года конференции KubeCon EMEA 2024.

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

Читать далее

«А» и «Б» сидели на трубе. «А» упало, «Б» пропало. Что осталось на трубе? (алгоритм получения ответа в частном случае)

Thu, 04/25/2024 - 12:21

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

И в ходе реализации встала передо мной этакая бодренькая микрозадачка – из набора чисел «1, 2, 3, 4» вычеркнули два числа «x, y» (неодинаковых – кто-то придет завтра и задаст эти два числа, а мы сегодня должны приготовиться), требуется объяснить компьютеру, как определить оставшиеся, невычеркнутые числа. И я завис – все идеи, которые приходили мне в голову, казались «неспортивными и чрезмерными» – ну не пузырьковой же сортировкой перебирать четыре числа, должно же быть что-то элегантное. Например, если вычеркнуто не два, а три числа «x, y, z» из четырех «x, y, z, t» (которые «1, 2, 3, 4»), то оставшееся число «t» находится так: t = 10 – (x+y+z). Потому что t+x+y+z = 10 (всегда: 10=1+2+3+4). Вполне элегантно для одного оставшегося числа. А для двух чисел – как быть с элегантностью?!

Решение я нашел – озарило по дороге домой – прям шарахнуло с неба по башке; я даже не поверил сначала, что это оно – показалось мороком усталого мозга. И оно работает не только для четырех чисел – можно решить задачу «из n последовательных чисел вычеркнуто k различных чисел, требуется вернуть остаток» (что осталось на трубе).

Я предложил эту задачку с «n, k»-условием знакомым программистам в качестве застольного анекдота, для развлечения (сам я не программист, честно – мне просто сильно занадобилось объяснить Яваскрипту, как вычислять собственные векторы комплекснозначной матрицы 4х4). Сначала я выслушал их предложения (предлагали «упорядочивание k чисел с последующим перебором n чисел» и «воспользоваться встроенной функцией вычитания множеств»). Потом я рассказал свое решение. Они сказали: «Ну круто, да».

Не думаю, что я совершил великое открытие – скорее всего, этот подход где-нибудь преподается студентам и давно вшит во все языки программирования – но заинтересованные люди, которые эту мелочь не знали (например, я не знал, мои друзья не знали), мне кажется, получат удовольствие – когда ознакомятся.

Читать далее

Who's online

There are currently 0 users and 1 guest online.