DATABASE DESIGN – Telegram
DATABASE DESIGN
1.41K subscribers
2.09K photos
3 videos
5.31K links
Лучшие материалы по работе с хранилищами данных на русском и английском языке

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka. Одним из компонентов Debezium является JDBC Sink Connector, предназначенный для записи данных из Kafka в реляционные базы данных посредством интерфейса Java Database Connectivity (JDBC).

Debezium JDBC Sink Connector может решать множество задач: от репликации данных между БД и синхронизации обновлений между микросервисами до создания резервных копий данных для целей тестирования или разработки. Мы в VK Tech используем Debezium JDBC sink connector, чтобы строить перформанс-интеграции. Но в нагрузочных тестах столкнулись с проблемой производительности, которая не решалась никакими обходными путями. Поэтому нам пришлось детально погрузиться в нюансы обработки событий в Debezium JDBC connector.

Привет, Хабр. Меня зовут Артём Дубинин. Я старший разработчик Backend в команде Tarantool CDC — решения для репликации данных в реальном времени между системами управления базами данных (СУБД). В этой статье я изложу свою интерпретацию создания Debezium, расскажу о том, как работает Debezium JDBC connector, а также о нашем варианте оптимизации перформанса, который попал в Open-source версию.


Читать: https://habr.com/ru/companies/vktech/articles/967558/

#ru

@database_design | Другие наши каналы
Круговорот обновлений СХД TATLIN.UNIFIED

Вы наверняка сталкивались с системами хранения данных семейства TATLIN или серверами VEGMAN, хотя можете об этом даже не подозревать. Например, делая заказ в интернет-магазине или пользуясь другими популярными онлайн-сервисами — в глубине ИТ-инфраструктуры для них можно обнаружить продукты YADRO.

Добрый день, меня зовут Александр Чуриков, я технический эксперт отдела сервисного дизайна YADRO. Мы служим мостиком между сервисом и нашим R&D, который разрабатывает продукты — изучаем все боли сервиса, которые возникают при обслуживании, в том числе при обновлении и замене компонентов, и транслируем их в R&D.


Читать: https://habr.com/ru/companies/yadro/articles/857586/

#ru

@database_design | Другие наши каналы
Excel-лайфхаки, о которых не знают «эксперты»

Я наблюдал, как мой опытный коллега-финансист целый час колупался в Excel. Он гуру экселя, работает с ним 20 лет. Но увидев, как он печатает формулы, я не выдержал и показал пару простых трюков, от которых он пришёл в восторг.

Это была проблема незнания — незнания о функциях, которые лежат в Excel годами, экономят часы работы, но о которых просто никто не рассказывает.

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


Читать: https://habr.com/ru/articles/966594/

#ru

@database_design | Другие наши каналы
Twake Drive. Опенсорсный клон GDrive на своём сервере

Французская компания Linagora продвигает облачный сервис Twake Workplace как опенсорсную и безопасную альтернативу Google Workspace и прочим корпоративным платным облакам. В комплект с чатом и почтой входит Twake Drive — защищённое файлохранилище.

В Twake Workplace код открыт, используются защищённые протоколы JMAP и Matrix, шифрование по умолчанию. В публичном облаке бесплатно дают 5 ГБ на файлы. Но самое главное, что Twake Drive можно установить на собственном сервере, с неограниченным дисковым пространством.


Читать: https://habr.com/ru/companies/ruvds/articles/967670/

#ru

@database_design | Другие наши каналы
Как ускорить массовую вставку данных в PostgreSQL при использовании Spring

Меня зовут Дмитрий Фатов, я разработчик в Газпромбанке — вместе с командой создаю платформу G2, на которой мы разрабатываем свои решения. Одно из решений — SaaS, система, в которой есть внешние интеграции через xml. До какого-то момента к нам приходило максимум 30 тыс. документов в одной выгрузке, но после подключения очень крупного клиента в одной выгрузке начали получать до 2 млн документов. Это около 4 млн записей в базе данных.

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

В этой статье расскажу именно про последнюю часть — как ускорить вставку данных. Покажу, какие настройки стоит применить для Spring и Hibernate, для чего они нужны и какой буст по производительности дают. Здесь же разберем, как можно создать свою собственную прослойку для вставки данных в PostgreSQL. Эта прослойка позволит нам использовать разные подходы к вставке данных, в том числе кастомные методы PostgreSQL, а также распараллелить процесс вставки. Посмотрим, как ее можно подружить со Spring, а также какой профит нам даст каждый из рассмотренных подходов.


Читать: https://habr.com/ru/companies/gazprombank/articles/965634/

#ru

@database_design | Другие наши каналы
Генерируем CRUD для gRPC по схеме БД следуя Google AIP

Как с помощью db-exporter автоматизировать процесс генерации CRUD-операций для gRPC, соблюдая стандарт Google AIP

Читать: «Генерируем CRUD для gRPC по схеме БД следуя Google AIP»

#ru

@database_design | Другие наши каналы
Как фильтры Блума в 16 раз ускорили API

Этот пост станет глубоким разбором того, как мы снизили задержки P95 конечной точки API с 5 до 0,3 секунды при помощи нишевого трюка computer science под названием «фильтр Блума».

Мы расскажем о том, почему конечная точка была медленной, о решениях, которые мы рассматривали для повышения её скорости, и о критериях выбора между ними. Также мы объясним, как всё это устроено внутри.


Читать: https://habr.com/ru/articles/968024/

#ru

@database_design | Другие наши каналы
БД без боли: моя шпаргалка для собесов в Java. Часть 3

Всем привет!
Я Senior Java Developer в банке, и за эти годы мне довелось пройти немало собеседований. Где-то было спокойно, где-то — как в допросной, с каверзными вопросами, странными задачами и вечным «а почему так, а не иначе?». В процессе я собрал целую коллекцию тем, которые всплывают снова и снова, особенно когда дело касается баз данных.

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


Читать: https://habr.com/ru/articles/968532/

#ru

@database_design | Другие наши каналы
Как мы постепенно идём к «умному» центру администрирования СУБД

Что общего у массового применения конфигураций, встроенной поддержки OpenTelemetry и управления HA-кластерами в пару кликов? Всё это — части пазла, который мы собираем, чтобы сделать администрирование PostgreSQL по-настоящему удобным и безопасным. Выход версии Postgres Pro Enterprise Manager (PPEM) 2.3 стал важной вехой в развитии нашего графического интерфейса. Мы добавили поддержку пользовательских пресетов, переработали систему алертинга и усилили RBAC-модель управления доступом. Разбираем ключевые нововведения релиза, которые помогут навести порядок в зоопарке конфигураций и спать спокойно, зная, что система сама предупредит о проблемах.


Читать: https://habr.com/ru/companies/postgrespro/articles/968570/

#ru

@database_design | Другие наши каналы
Cloud Native LVM: как автоматизировать поиск и разметку локальных дисков в Kubernetes

Всем привет, меня зовут Александр Зимин, я руковожу разработкой подсистемы хранения данных в Deckhouse. Сегодня хочу поговорить о хранении данных на локальных дисках в Kubernetes и поделиться тем, как мы автоматизируем их поиск и разметку для администраторов и пользователей.


Читать: https://habr.com/ru/companies/flant/articles/951598/

#ru

@database_design | Другие наши каналы
Создание простой поисковой системы, которая действительно работает

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

Читать: «Создание простой поисковой системы, которая действительно работает»

#ru

@database_design | Другие наши каналы
Создание простой поисковой системы, которая действительно работает

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

Читать: «Создание простой поисковой системы, которая действительно работает»

#ru

@database_design | Другие наши каналы
PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение

Иногда в архиве нашего сервиса анализа планов запросов к PostgreSQL встречаются примеры не очень эффективных, мягко говоря, запросов.

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


Читать: https://habr.com/ru/companies/tensor/articles/968720/

#ru

@database_design | Другие наши каналы
Новые версии MariaDB Connector/C: 3.4.8 и 3.3.18 теперь доступны

MariaDB объявила о выпуске Connector/C 3.4.8 и 3.3.18 с исправлениями и улучшениями. Подробности в примечаниях к релизу и changelogs; скачать можно на mariadb.com/downloads/connectors.

Читать подробнее

#en

@database_design | Другие наши каналы
Создание простой поисковой системы, которая действительно работает

Зачем вообще делать что-то своё?

Я знаю, что вы можете подумать: «Почему бы просто не использовать Elasticsearch?» или «А что насчёт Algolia?» Это вполне рабочие решения, но у них есть нюансы. Нужно разбираться с их API, поддерживать инфраструктуру под них и учитывать все тонкости их работы.

Но иногда хочется чего-то более простого...


Читать: https://habr.com/ru/articles/969312/

#ru

@database_design | Другие наши каналы
Как привязать Telegram-аккаунт к конкретному человеку: от запроса оператору до OSINT-техник

Лид

«Аккаунт не мой, писал не я. Идите доказывайте» — стандартная защита оппонента при представлении Telegram-переписки в суд. Бремя доказывания принадлежности аккаунта лежит на стороне, представляющей цифровое доказательство. Разбираю три уровня установления владельца: от запроса данных у оператора связи через суд до OSINT-техник и процессуальных презумпций. С шаблонами ходатайств, примером из практики и разбором судебной практики.


Читать: https://habr.com/ru/articles/969414/

#ru

@database_design | Другие наши каналы
Практический кейс: от анонимного домена к реальной личности

Задача:
Установить владельца фишингового сайта "*******" через который была совершена атака, с целью кражи аккаунта WhatsApp.


Читать: https://habr.com/ru/articles/969430/

#ru

@database_design | Другие наши каналы
StarVault + Postgres Pro: тестирование связки для безопасного управления секретами

Управление секретами — одна из наиболее критичных задач в корпоративной ИТ-инфраструктуре. От того, насколько надежно и централизованно хранятся ключи API, пароли, токены и сертификаты, зависит не только безопасность сервисов, но и устойчивость всего бизнеса.

С ростом популярности отечественных решений особое внимание уделяется возможности интеграции с российскими СУБД. В этом материале команда «Онланты» делится опытом тестирования StarVault — системы управления секретами — в связке с Postgres Pro в лабораторных условиях.

Цель эксперимента — проверить, насколько Postgres Pro подходит для использования в качестве внешнего хранилища StarVault, оценить производительность и устойчивость конфигурации, а также проработать сценарии аварийного восстановления.


Читать: https://habr.com/ru/companies/lanit/articles/965756/

#ru

@database_design | Другие наши каналы
Обзор Moco — MySQL-оператора для Kubernetes

В Kubernetes короткий жизненный цикл подов — норма. Но когда лидер-узел MySQL внезапно исчезает, рискуешь потерять не только доступность, но и согласованность данных. Оператор Moco предлагает решение: полусинхронная репликация, автоматический failover и восстановление с PITR — всё это без боли миграции на полностью синхронную репликацию.

В статье — детали репликации, бэкапов, PITR, switchover и нюансов работы с пользовательскими образами. А также честно — чем он лучше (и хуже) альтернатив, и стоит ли его рассматривать для продакшена.


Читать: https://habr.com/ru/companies/flant/articles/969520/

#ru

@database_design | Другие наши каналы
Транзакции в InnoDB: разбираемся с уровнями изоляции и блокировками

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

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


Читать: https://habr.com/ru/companies/rusprofile/articles/969954/

#ru

@database_design | Другие наши каналы
Как забытый API-ключ открыл нам мир мошенников

Сегодня история на грани техники, психологии и детектива. Расскажу о том, как мы (я и мой коллега) попали во внутренние чаты мошенников и что из этого вышло.


Читать: https://habr.com/ru/companies/flowwow/articles/969798/

#ru

@database_design | Другие наши каналы