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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Maximizing Database High Availability with MariaDB MaxScale

Read: https://mariadb.com/?p=38727
Поисковый движок в 80 строках Python

В сентябре я устроился на должность поискового дата-саентиста и с тех пор часть моих обязанностей заключается в работе с Solr — опенсорсным поисковым движком на основе Lucene. Я знал основы работы поискового движка, но мне хотелось понять его ещё лучше. Поэтому я закатал рукава и решил создать его с нуля.

Давайте поговорим о целях. Слышали когда-нибудь о «кризисе сложности обнаружения маленьких веб-сайтов»? Проблема в том. что маленькие веб-сайты наподобие моего невозможно найти при помощи Google или любого другого поискового движка. Какова же моя миссия? Сделать эти крошечные веб-сайты снова великими. Я верю в возвращение славы этих малышей вдали от SEO-безумия Google.

В этом посте я подробно расскажу о процессе создания поискового движка с нуля на Python. Как обычно, весь написанный мной код можно найти в моём GitHub (репозиторий microsearch). Эта реализация не будет притворяться готовым к продакшену поисковым движком, это лишь полезный пример, демонстрирующий внутреннюю работу поискового движка.

Кроме того, мне стоит признаться, что в заголовке поста я слегка преувеличил. Да, поисковый движок действительно реализован примерно в 80 строках Python, но я ещё и писал вспомогательный код (краулер данных, API, HTML-шаблоны и так далее), из-за которого весь проект становится немного больше. Однако я считаю, что интересная часть проекта находится в поисковом движке, который состоит из менее чем 80 строк.

P.S. Написав этот пост и microsearch, я осознал, что пару лет назад нечто похожее написал Барт де Гёде. Моя реализация очень похожа на работу Барта, но я считаю что кое-что улучшил, в частности: (1) мой краулер асинхронный, что сильно ускоряет работу, (2) я реализовал пользовательский интерфейс, позволяющий взаимодействовать с поисковым движком.


Читать: https://habr.com/ru/articles/792452/
👍1
Заметка про сохранение структур во flash памяти на STM32

При разработке проекта для микроконтроллера часто возникает необходимость сохранения данных во Flash-память перед выключением устройства. Глобальные структуры содержат информацию о настройках различной периферии, данные с внешних датчиков и прочее. В этом посте я хочу показать простенький механизм записи структуры во FLASH память микроконтроллера STM32, которым я сам часто пользуюсь в своих проектах.


Читать: https://habr.com/ru/articles/791252/
Один из методов мониторинга и анализа ошибок СУБД с помощью Zabbix

Очень неприятная ситуация для DBA: "что-то происходит с СУБД , но что именно - нет информации". Первый и иногда достаточный способ избежать неопределенности - всегда иметь полную информацию о нештатных ситуациях в работе СУБД на текущий период и в истории. Для решения этой в общем то стандартной задачи и нужно мониторить и анализировать лог СУБД. PostgreSQL в данном случае не исключение.

К рассмотрению предлагается один из способов мониторинга ошибок СУБД PostgreSQL и получением итоговой информации , используя Zabbix. Данная статья не tutorial и не roadmap, скорее как эскиз для обмена мнениями с коллегами.

Мониторинг ошибок СУБД

Способ мониторинга СУБД очень простой - постоянный парсинг лога СУБД и оповещение о появлении ошибки .

В основе сервисного скрипта , который выполняется по cron положена очень простая конструкция:

cat $log_file | grep -E 'FATAL|ВАЖНО|PANIC|ПАНИКА|ERROR|ОШИБКА'

Данную конструкцию можно выполнять используя возможности агента Zabbix , но в этом случае есть несколько моментов:

Агент Zabbix должен иметь доступ на чтение к папке лога СУБД

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

Поэтому используется несколько другой способ - агент Zabbix не выполняет парсинг лога СУБД , а всего лишь считывает значение метрики из файлов, которые формируются простым скриптом bash по расписанию cron:

# FATAL | ВАЖНО cat $log_file | grep -E 'FATAL|ВАЖНО' | wc -l > /tmp/fatal.count PANIC | ПАНИКА

cat $log_file | grep -E 'PANIC|ПАНИКА' | wc -l > /tmp/panic.count

PANIC | ПАНИКА

cat $log_file | grep -E 'PANIC|ПАНИКА' | wc -l > /tmp/panic.count

В результате - не нужны никакие дополнительных настроек для работы агента Zabbix, да и накладные расходы на получение данных - минимальны.

Для более углубленного анализа , для некоторых кодов ошибок можно и нужно сформировать отдельные файлы:

#Класс 53 — Нехватка ресурсов #53300| ВАЖНО: извините, уже слишком много клиентов - исключить дублирование метрики Zabbix cat $log_file | grep -E 'FATAL|ВАЖНО|PANIC|ПАНИКА|ERROR|ОШИБКА' | grep -E ' 53000|| 53100|| 53200|| 53400|| 53500|' | wc -l > /tmp/error53.count Класс 58 — Ошибка системы (ошибка, внешняя по отношению к PostgreSQL)

cat $log_file | grep -E 'FATAL|ВАЖНО|PANIC|ПАНИКА|ERROR|ОШИБКА' | grep -E ' 58000|| 58030|| 58P01|| 58P02|' | wc -l > /tmp/error58.count

Класс XX — Внутренняя ошибка

cat $log_file | grep -E 'FATAL|ВАЖНО|PANIC|ПАНИКА|ERROR|ОШИБКА' | grep -E ' XX000|| XX001|| XX002|' | wc -l > /tmp/errorXX.count

Для оперативного реагирования на ошибки - можно настроить стандартное оповещение Zabbix.

Метрики Zabbix

В результате добавления метрик Zabbix получается вполне доступная для оперативного и исторического анализа картина:

Анализ ошибок

Для получения более углублённого анализа и создания сводного отчета по оши
...

Читать: https://habr.com/ru/articles/792890/
Один из методов мониторинга и анализа ошибок СУБД

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

К рассмотрению предлагается один из способов мониторинга ошибок СУБД PostgreSQL и получением итоговой информации, используя Zabbix. Данная статья не tutorial и не roadmap, скорее как эскиз для обмена мнениями с коллегами.



Читать: https://habr.com/ru/articles/792912/
Кратко про NewSQL

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

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

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

В сегодяшней статье рассмотрим в общем виде то, что из себя представляет NewSQL


Читать: https://habr.com/ru/companies/otus/articles/792722/
Maximizing Growth: The Power of AI Unleashed in Payments



Read: https://www.mongodb.com/blog/post/maximizing-growth-power-ai-unleashed-payments
Accelerate your Informed Decision-Making: Enable Path Analytics on Knowledge Graphs

With zero lines of code and just a few clicks you can create a property graph view from an RDF knowledge graph. This enables you to run path analysis on a knowledge graph. Find out why is that interesting.

Read: https://blogs.oracle.com/database/post/accelerate-your-informed-decisionmaking-enable-path-analytics-on-knowledge-graphs
Make better Machine Learning predictions with spatial algorithms

Location is an important factor in the outcomes that machine learning predicts, and Machine Learning in Oracle Autonomous Database will soon be adding features to leverage spatial data. The enhancements apply specifically to Machine Learning for Python. In the first phase of this enhancement, the ability to detect patterns and predict values using point/line/polygon data will be enhanced by the introduction of ML algorithms for clustering, regression, classification, and anomaly detection.

Read: https://blogs.oracle.com/database/post/make-better-machine-learning-predictions-with-spatial-algorithms
Бэкапы исторических масштабов — как человечество сохраняет большие объемы данных?

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

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


Читать: https://habr.com/ru/companies/cloud_mts/articles/793428/
Книга «Kali Linux в действии. Аудит безопасности информационных систем. 2-е издание»

Привет, Хаброжители!

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

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

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

Читать: https://habr.com/ru/companies/piter/articles/793436/
Building AI with MongoDB: Putting Jina AI’s Breakthrough Open Source Embedding Model To Work



Read: https://www.mongodb.com/blog/post/building-ai-mongodb-putting-jina-ais-breakthrough-open-source-embedding-model-to-work
Building AI with MongoDB: Navigating the Path From Predictive to Generative AI



Read: https://www.mongodb.com/blog/post/building-ai-mongodb-navigating-path-from-predictive-to-generative-ai
Conversations are the next generation in natural language queries

Autonomous Database Select AI has introduced an incredibly powerful new capability that lets you have conversations with your data. What’s the difference between a simple natural language query and a conversation? A lot! Conversations provide a natural way to analyze your data. Ask a question, review the result, and then follow up with a clarifying question. It’s so simple because we all have been doing this since we learned to speak.

Read: https://blogs.oracle.com/datawarehousing/post/conversations-are-the-next-generation-in-natural-language-queries
👍1
Autonomous Database brings AI to your data

Continuing to enrich Oracle’s full-stack AI, we are introducing several enhancements to Autonomous Database including cutting-edge innovations for easily integrating AI and advanced machine learning into applications and solutions.

Read: https://blogs.oracle.com/datawarehousing/post/now-is-the-time-to-innovate-with-ai-ml
Leading Industry Analysts Comment on the Latest AI and Machine Learning Innovations to Autonomous Database

Oracle has just announced a number of enhancements to Autonomous Database, introducing cutting-edge innovations that simplify and accelerate the integration of AI and advanced machine learning into your applications and analytics. Read reactions from leading industry analysts.

Read: https://blogs.oracle.com/database/post/leading-industry-analysts-comment-adb-ai-ml-announcement-feb2024
В поисках ПАК: импортозамещаем немецкое «железо» в российском ЦОД

Привет, Хабр! Меня зовут Артем Золотарев, я инженер по виртуализации в Oxygen Data Centres & Clouds. Любой облачный провайдер и оператор ЦОД может столкнуться с задачей проброса USB-портов виртуальным машинам, которым нужен доступ к определенным устройствам. И чем серьезнее требования к безопасности этих флешек – тем сложнее реализовать такое решение на практике. Сегодня я расскажу о нашем пути к выбору ПАК (программно-аппаратного комплекса) для решения задач с флешками и чем нас обрадовало найденное российское решение, когда немцы решили больше не поставлять свою технику.


Читать: https://habr.com/ru/companies/oxygendc/articles/793582/
Как я искал ПДн в 300 базах данных [и сохранил рассудок]

Пришли как-то ко мне парни из службы безопасности и говорят: «Надо обойти все БД и собрать с них персональные данные». Потому что в России изменилось законодательство и теперь их нужно хранить в особо защищённых хранилищах.

Если этого не сделать, то рано или поздно данные могут утечь и ещё можно нарваться на высокие штрафы при утечке. Задача безопасников (и основная выгода от их наличия в компании) — минимизация таких рисков.

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

Скорее всего, вам скоро предстоит такое же, поэтому сейчас покажу артефакты, которые я нашёл в процессе.

Читать: https://habr.com/ru/companies/skyeng/articles/792494/
CPM vs. BI:  о чем не расскажут продавцы

Более восьми лет я специализируюсь на внедрении CPM и BI-систем различных вендоров. Несмотря на то, что во многом их функционал пересекается, мне хорошо понятно, какие задачи решаются лучше, а какие решаются только одним из этих двух классов систем.

Написать данную статью меня сподвигли несколько повторяющихся случаев путаницы при выборе системы для определенного пула задач. В моей практике произошло меньшей мере 4 случая, когда финансовые службы различных компаний на полном серьезе рассматривали внедрение BI-системы в качестве основной системы планирования и прогнозирования. Также, вспоминается случай во время моей работы в Большой четверке, когда партнер попросил меня провести встречу с заказчиком, чтобы объяснить, зачем им нужны наши услуги по внедрению CPM, когда у них уже есть работающая BI-система.

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

Допускаю, моим коллегам, профессионалам в этой области, подобные идеи могут показаться нонсенсом. И во многом я с ними соглашусь. Но, во-первых, мне известен ряд неплохих решений, которые, после применения несколько довольно существенных настроек над BI, позиционируют себя как системы планирования (стесняясь, однако, называть себя как CPM). Во-вторых, я видел работающие (хоть и с ограничениями) решения на базе CPM платформ, собирающих множественные наборы данных из других ИТ-систем компании, и представляющих их далее в виде аналитических BI-отчетов для пользователей.


Читать: https://habr.com/ru/companies/ade_solutions/articles/793920/
Enhanced Atlas Functionality: Introducing Resource Tagging for Projects



Read: https://www.mongodb.com/blog/post/enhanced-atlas-functionality-introducing-resource-tagging-for-projects