Как стать автором
Поиск
Написать публикацию
Обновить
31.91
Тензор
Разработчик системы Saby
Сначала показывать

PostgreSQL Antipatterns: передача наборов и выборок в SQL

Время на прочтение5 мин
Количество просмотров18K
Периодически у разработчика возникает необходимость передать в запрос набор параметров или даже целую выборку «на вход». Иногда попадаются очень странные решения этой задачи.

Пойдем «от обратного» и посмотрим, как делать не стоит, почему, и как можно сделать лучше.
Читать дальше →

PostgreSQL Antipatterns: CTE x CTE

Время на прочтение2 мин
Количество просмотров11K
По роду деятельности приходится сталкиваться с ситуациями, когда разработчик пишет запрос и думает "база умная, сама со всем справится!"

В некоторых случаях (частично от незнания возможностей БД, частично от преждевременных оптимизаций) такой подход приводит к появлению «франкенштейнов».
Читать дальше →

Meine Überwachung-2: техника и технология

Время на прочтение8 мин
Количество просмотров5K
В первой части статьи про нашу систему мониторинга мы рассказали, какие организационные и технические проблемы заставили нас заняться расширением функционала Zabbix. В этой — покажем, как именно нам удается «переваривать» миллионы ежесекундно снимаемых отсчетов и превращать их в 40K+ values-per-second без потери ключевой информации.


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

PostgreSQL в «Тензоре» — публикации за год (#5)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.8K

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

Если не видели дайджест за прошлый год — время наверстать упущенное!

Читать далее

SQL HowTo: работа с массивами (Advent of Code 2024, Day 4: Ceres Search)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.2K

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

В этой части немного поработаем с массивами.

Читать далее

КЛАДРируем адреса произвольной формы (ч.2 — подстрочный поиск)

Время на прочтение12 мин
Количество просмотров3.8K

В первой части серии статей про работу с адресами по КЛАДР мы научились импортировать данные этого справочника к себе в базу и превращать их во что-то более удобное для дальнейшей работы.

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

Читать далее

Анализируем «слона» вместе с коллегами

Время на прочтение2 мин
Количество просмотров4.9K

Если ваша жизнь DBA, сопровождающего PostgreSQL, наполнена вопросами "а почему так медленно?" и "как сделать, чтобы запрос не тормозил?", наш сервис анализа и визуализации планов запросов explain.tensor.ru сделает ее немного легче за счет привлечения коллег и обновленных подсказок.

Читать далее

Как мы в СБИС автоматический расчет себестоимости делали

Время на прочтение17 мин
Количество просмотров7.7K
Несколько лет назад при переходе от разработки десктоп-приложения с локальной базой у каждого клиента к SaaS-модели с сотнями тысяч клиентов онлайн, нам пришлось сильно пересмотреть некоторые алгоритмы работы с БД при реализации функционала складского учета в СБИС. Этот внутренний доклад посвящен алгоритмическим причинам возникших сложностей и способам их решения.

Очередной семинар про работу с СУБД PostgreSQL. Сегодня расскажу, как суровую прагматику требований бизнеса перенести на разработку высоконагруженных сервисов, как бороться с конкурентным доступом к данным, как это все аккуратно обходить и при этом не «отстрелить себе ногу».

Сегодня мы поговорим про расчет себестоимости в СБИС:

  • наша методика расчета
    что такое «себестоимость» вообще, зачем она нужна, и как ее считаем именно мы
  • алгоритмические задачи
    концептуальные приемы при построении архитектуры решения «под алгоритм»
  • технические приемы
    зачем и как применять упорядочение операций, делать транзакции короткими и быстрыми, организовать высококонкурентную очередь в БД и другие подходы к оптимизации нагрузки


Хеш+кэш: оптимизация «потоковой» обработки

Время на прочтение6 мин
Количество просмотров5.2K
Что делать, если в базу хочется записать массу «фактов» много большего объема, чем она способна выдержать? Сначала, конечно, приводим данные к более экономичной нормальной форме и получаем «словари», в которые будем писать однократно. Но как это делать наиболее эффективно?

Именно с таким вопросом мы столкнулись при разработке мониторинга и анализа логов серверов PostgreSQL, когда остальные способы оптимизации записи в БД оказались исчерпаны.

Сразу оговоримся, что наши коллекторы работают под управлением Node.js, поэтому с процессорными регистрами и кэшами мы никак не взаимодействуем. А вариант использования «стораджей» или внешних кэширующих сервисов/БД дает слишком большие задержки при входящих потоках в несколько сотен Mbps.

Поэтому мы стараемся кэшировать все в RAM, конкретно — в памяти JavaScript-процесса. Про то, как эффективнее это организовать, и пойдет речь дальше.
Читать дальше →

PostgreSQL в «Тензоре» — публикации за год (#3)

Время на прочтение3 мин
Количество просмотров3.7K

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

Если не видели дайджест за прошлый год — время наверстать упущенное!

Читать далее

Как приручить нетворкинг

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.6K

Митапы и конференции — это не только про знания, но и про новые интересные знакомства. Иногда тяжко вылезти из своего «домика» и начать разговор с незнакомым человеком. Но в девяти случаев из десяти смелость окупается, ведь люди — главный ресурс, опора и импульс к развитию.

13 марта в Уфе пройдёт IT-митап Тензора для опытных разработчиков и менеджеров проектов. Чем не возможность обменяться опытом с крутыми спецами и пополнить базу контактов?

Привет! Меня зовут Юля. В Тензоре создаю контент для HR-бренда. Общение с новыми людьми — часть моей работы.

В этой статье поговорим о нетворкинге — поделюсь парочкой наблюдений, как сделать этот процесс комфортным.

Читать далее

PostgreSQL в «Тензоре» — публикации за год (#4)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.2K

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

Если не видели дайджест за прошлый год — время наверстать упущенное!

Читать далее

Как мы обучали тестировщиков автоматизации и что из этого вышло

Время на прочтение6 мин
Количество просмотров7.6K

В статье расскажем, как обучали автоматизации наших мануальных тестировщиков: что было сделано, какие подводные камни всплыли и как мы теперь живем. Статья будет интересна тем, кто занимается управлением QA, надеется быстро переквалифицироваться с manual на automation и кто, как и мы, хочет нести развитие в свой рабочий коллектив. 

Читать далее

БД мессенджера (ч.2): секционируем «наживую»

Время на прочтение4 мин
Количество просмотров11K
Мы удачно спроектировали структуру нашей PostgreSQL-базы для хранения переписки, прошел год, пользователи активно ее наполняют, вот в ней уже миллионы записей, и… что-то все начало подтормаживать.



Дело в том, что с ростом объема таблицы растет и «глубина» индексов — хоть и логарифмически. Но со временем это заставляет сервер для выполнения тех же задач чтения/записи обрабатывать в разы больше страниц данных, чем в начале.

Вот тут на помощь и приходит секционирование.
Читать дальше →

Ближайшие события

БД мессенджера (ч.1): проектируем каркас базы

Время на прочтение5 мин
Количество просмотров21K
Как можно перевести бизнес-требования в конкретные структуры данных на примере проектирования «с нуля» базы для мессенджера.



Наша база будет не такой масштабной и распределенной, как у ВКонтакте или Badoo, а «чтобы было», но было хорошо — функционально, быстро и умещалось на одном сервере PostgreSQL — чтобы можно было развернуть отдельный экземпляр сервиса где-то на стороне, например.

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

Багатлон — хакатон для тестировщиков

Время на прочтение4 мин
Количество просмотров2.6K

Я работаю уже 10 лет в компании Тензор, за это время число тестировщиков приблизилось к четырём сотням. И все эти 10 лет у нас в компании проводились различные хакатоны для студентов, соревнования для разработчиков, наши безопасники участвовали в CTF, проводились конкурсы на лучшее фото из отпуска, турниры по настольному теннису, шахматам, волейболу, пауэрлифтингу... Ну вы поняли. Всё что угодно, но не соревнования, в которых можно померяться своим навыком в нахождении ошибок. Причём не геймификацию процесса, не дружеские посиделки с ноутбуками, а по-хорошему злые забеги. Собственно такие соревнования мы и организовали и успешно проводим второй год подряд (2020 не считается за год :)). О нашем опыте, сложностях, удачах и выводах  как раз и хочу рассказать.

Читать далее
12 ...
12

Информация

Сайт
saby.ru
Дата регистрации
Дата основания
Численность
5 001–10 000 человек
Местоположение
Россия