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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Obsidian + Dataview: Таблицы

На статью меня вдохновил этот комментарий .

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

Это такой своеобразный аналог Notion-таблиц, где можно создать таблицу с бесконечной вложенностью (таблица, внутри одной ячейки, а внутри еще таблица и еще и еще).

На КДПВ как раз собраны четыре кейса реализации функционала плагина Dataview.

Как всё это работает

1. Dataview работает на встроенном языке запросов

2. Все запросы должны писаться внутри подобного блока кода:
А разбирать каждый кейс будем под катом.

Читать: https://habr.com/ru/post/710356/
Telegram-бот счётчик сообщений на Java и Spring Boot

Пишем простой Телеграм-бот на Java, который будет подсчитывать сообщения от пользователей чата и записывать их в БД через PostgreSQL.

Читать: «Telegram-бот счётчик сообщений на Java и Spring Boot»
👍1
What is a Converged Database?

A converged database is a database that has native support for all modern data types and the latest development paradigms built into one product. A converged database does not mean data must be in one monolithic database. A converged database enables you to choose your data architecture for each application. You decide when to consolidate data into fewer databases and when a fully distributed design is best.

Read: https://blogs.oracle.com/database/post/what-is-a-converged-database
PostgreSQL Antipatterns: Индиана Джонс и максимальное значение ключа, или В поисках «последних» записей

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

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


Читать: https://habr.com/ru/post/710400/
👍1
Autonomous Database on Dedicated Exadata Infrastructure 2022 End of Year Roundup

In this blog post we take a look at 2022 in retrospective and report on the progress we made on key Autonomous Database features for our customers.

Read: https://blogs.oracle.com/database/post/adb-d-2022-end-of-year-roundup
Зелёным вайтишникам: можно ли обойтись единственной таблицей?

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

Но если тема одной сверх-таблицы всё-таки всплывает в обсуждениях, может это всё-таки где-то применимо? Принцип одной таблицы чаще предлагается, когда пишут про такие штуки, как Activity Scheme и Event Sourcing.

Статьи чаще содержат только теоретические рассуждения этих концепций, иногда пишутся с позиции системного аналитика. Сейчас рассмотрим примеры с позиции программиста. Я не люблю абстрактные вузовские примеры, поэтому будут два сценария использования с моих мест работы: обработка маркированного товара (привет, «Честный знак»!) и телеметрия сети вендинговых устройств.

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

Читать: https://habr.com/ru/post/710662/
Как изучить SQL за 2 месяца. План обучения

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

Основным инструментом для взаимодействия с реляционными БД является структурированный язык запросов или же SQL.


Читать: https://habr.com/ru/post/709116/
Лучший формат данных, для хранения pandas.DataFrame

Привет, Хабр!

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

На сегодняшний день существует огромное количество форматов для хранения данных, и, используя библиотеку Pandas при обработке большого объёма данных, возникает вопрос – а какой формат, с которыми Pandas работает «из коробки», даст наибольшую производительность, при дальнейшем использовании, обработанного DataFrame?

Ремарка: поиск информации по этой теме, привёл меня к репозиторию, за авторством Devforfu (ссылка), но так как информация в нём датируется 2019 годом, а за этот период вышло множество обновлений, я решил написать «свежий» бенчмарк, основываясь на принципах автора – ссылка на обновленный бенчмарк. Отмечу, что из-за слишком большой разницы в полученных результатах, я склоняюсь к тому, что мог совершить ошибку, поэтому далее в статье будет указана информация по оригиналу.

В качестве тестируемых форматов использовались следующие варианты: CSV (как самый популярный текстовый формат), Pickle, Feather, Parquet, Msgpack, HDF. Для сравнения будем использовать следующие метрики: размер сериализованного файла, время загрузки DataFrame из файла, время сохранения DataFrame в файл, потребление оперативной памяти при сохранении и загрузке DataFrame.

Тестовые данные – сгенерированный DataFrame с 1 миллионом строк, 15 столбцами цифр и 15 столбцами строковых значений. Генерация численных данных проводилась с помощью numpy. random.normal, в качестве строчных данных использовались UUID. С появлением в Pandas, категориального типа данных (Categorical data), который использует гораздо меньше памяти и более производительней в обработке (обширный материал для другой статьи), интересно также сравнить насколько изменится производительность форматов, поэтому ещё одним этапом сравнения в тестовых данных стал перевод формата «object» к формату «category».


Читать: https://habr.com/ru/post/710798/
Глобальный кризис хранения данных. Почему места в хранилищах на всех не хватит

Ученые предупреждают, что мир движется к глобальному кризису хранения данных. Ожидается, что к 2025 году объем данных в мире увеличится на 300 процентов, и для всей этой информации уже начнет не хватать места. Несмотря на быстрое расширение AWS, GCP и Azure, облака не смогут разместить весь этот «умопомрачительный объем». Кому-то придется ужаться.


Читать: https://habr.com/ru/post/710838/
🤡1
Особенности VACUUM в MPP-форках PostgreSQL

Один из важнейших аспектов, за которым должен следить каждый администратор баз данных PostgreSQL — процесс поддержания «здоровья» базы данных vacuum / autovacuum, удаляющий из памяти неактуальные версии табличных строк и сбрасывающий счётчик транзакций.

В этой статье я систематизировал особенности vacuum / autovacuum, с которыми сталкиваются администраторы MPP-РСУБД.


Читать: https://habr.com/ru/post/710806/
Упрощаем себе жизнь при разработке интерфейса взаимодействия приложения и БД

Привет, %username%! Меня зовут Антон Жеронкин, я Data Scientist в Сбере, участник профессионального сообщества NTA. Сегодня поговорим о том, как можно сделать лучше жизнь разработчиков, которые часто сталкиваются с базами данных. Дело в том, что, когда разработчики вручную пишут функциональные модули, ответственные за связь с БД, они проделывают следующую работу:

● описывают таблицы в виде классов;

● описывают отдельные атрибуты таблиц в виде атрибутов классов. При этом требуется следить за тем, чтобы типы и форматы данных совпадали;

● на CRUD-операции пишут много SQL-кода, который зашивается в методы языка программирования и помогает остальным модулям при необходимости использовать связь с БД.

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


Читать: https://habr.com/ru/post/711100/
Predictions 2023: Modernization Efforts in the Financial Services Industry

Read: https://www.mongodb.com/blog/post/predictions-2023-modernization-efforts-financial-services-industry
How MariaDB Xpand Accelerates SaaSification

Read: https://mariadb.com/?p=34503
Статистика базы данных с помощью pg_profile

Нередко проблемы в СУБД возникают из-за медленных запросов. Запросы такого типа дают нагрузку на базу данных и не позволяют вашему приложению работать корректно. К счастью, есть много доступных инструментов, которые помогают решить эту проблему.

Например, чтобы эффективно реализовать статистику и найти места с наибольшей нагрузкой в PostgreSQL, можно воспользоваться инструментом pg_profile. Как с ним работать, рассказал Александр Булгаков, инженер разработки Газпромбанка — в статье:

Читать: https://tprg.ru/IKFA
Neo4j. Вместо тысячи join-ов…

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


Читать: https://habr.com/ru/post/711646/
Миграция Postgrespro с Centos7 на AlmaLinux8. Как бонус — пара седых волос

В статье описывается один из способов обновления дистибутива операционной системы с работающим кластером баз данных Postgres Pro Standard версии 11. В дальнейшем, для краткости кластер баз данных Postgres Pro Standard 11 будем называть Postgrespro, Centos7 - Centos, а AlmaLinux8 - Almalinux. Способ заключается в том чтобы настроить физическую репликацию Postgrespro между разными дистрибутивами операционной системы с последующим переводом слейва в режим мастера. При чтении множества статей о настройке физической репликации я нигде не встречал упоминание о том, что так делать нельзя. Естественно, что архитектура Centos и Almalinux должны совпадать, а так же должны совпадать мажорные версии Postgrespro.


Читать: https://habr.com/ru/post/711664/
👍1
Как я участвовал в создании информационных систем для медицины

В 1987-м году я окончил с красным дипломом приборостроительный факультет челябинского политехнического института по специальности "Автоматика и телемеханика", хотя планировал стать физиком-теоретиком и школу заканчивал в специализированной школе-интернате №18 при МГУ. По распределению попал в специализированное конструкторское бюро и до 1991-го года разрабатывал электронные блоки для бронетанковой техники. До сих пор считаю что полученная при этом инженерная школа является чем-то недостижимым в современных реалиях. В частности, мы с коллегами создали комбинированный аналого-цифровой программируемый комплекс, который в реальном времени проводил расчеты по математической модели объекта, описываемой системой дифференциальных уравнений 4-го порядка с 14-ью нелинейными элементами и принимал решения более 10 тысяч раз в секунду. На современных вычислителях это наверное и можно было бы сделать, но в то время мы решали задачу имея в распоряжении только набор интегральных микросхем, самой крутой из которых была ПЗУ на 2 килобайта и всё наше творчество должно было уместиться в 9 литров объёма и работать в диапазоне температур от -40 до +85.

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


Читать: https://habr.com/ru/post/711682/
Сколько нужно времени, чтобы перенести дашборд из PowerBI на Visiology 3.0?

Привет, друзья! После нового года на нас обрушилась очередная лавина запросов о возможности миграции на Visiology 3 c Microsoft PowerBI. Конечно, это связано с тем что уже закупленные лицензии на PBI подходят к концу, а приобретение новых не стало со временем проще. Поэтому сегодня я хочу наглядно показать, как будет происходить перенос несложного дашборда из Power BI в Visiology 3.0.
Почему так быстро?

Читать: https://habr.com/ru/post/711670/