WAL-G — простой и эффективный инструмент для резервного копирования PostgreSQL в облака. По своей основной функциональности он является наследником популярного инструмента WAL-E, но переписанным на Go. Но в WAL-G есть одна важная новая особенность — дельта-копии. Дельта-копии WAL-G хранят страницы файлов, изменившиеся с предыдущей версии резервной копии. В WAL-G реализовано довольно много технологий по распараллеливанию бэкапов. WAL-G работает гораздо быстрее чем, WAL-E.
Рубрика «sql» - 20
Знакомство с wal-g системой бекапирования PostgreSQL
2020-01-30 в 7:15, admin, рубрики: backup, postgresql, s3, sql, wal, wal-e, wal-g, Администрирование баз данных, бекапПочему нужна инструментальная поддержка пагинации на ключах
2020-01-22 в 13:35, admin, рубрики: jooq, oracle, performance optimization, postgresql, sql, sql alchemy, Блог компании Tinkoff.ru, Серверная оптимизацияВсем привет! Я бэкэнд-разработчик, пишу микросервисы на Java + Spring. Работаю в одной из команд разработки внутренних продуктов в компании Тинькофф.

У нас в команде часто встает вопрос оптимизации запросов в СУБД. Всегда хочется еще чуть-чуть быстрее, но не всегда можно обойтись продуманно выстроенными индексами — приходится искать какие-то обходные пути. Во время одного из таких скитаний по сети в поисках разумных оптимизаций при работе с БД я нашел бесконечно полезный блог Маркуса Винанда, автора книги SQL Performance Explained. Это тот самый редкий вид блогов, в котором можно читать все статьи подряд.
Хочу перевести для вас небольшую статью Маркуса. Ее можно назвать в какой-то степени манифестом, который стремится привлечь внимание к старой, но до сих пор актуальной проблеме производительности операции offset по стандарту SQL.
PostgreSQL Antipatterns: редкая запись долетит до середины JOIN
2020-01-20 в 12:11, admin, рубрики: case, dba, explain, explain.tensor.ru, lateral, lazy sql, postgresql, sql, sql antipatterns, sql tips and tricks, Администрирование баз данных, Алгоритмы, базы данных, высокая производительностьЕсли писать SQL-запросы без анализа алгоритма, который они должны реализовать, ни к чему хорошему с точки зрения производительности это обычно не приводит.
Такие запросы любят «кушать» процессорное время и активно почитывать данные практически на ровном месте. Причем, это вовсе не обязательно какие-то сложные запросы, наоборот — чем проще он написан, тем больше шансов получить проблемы. А уж если в дело вступает оператор JOIN…

Само по себе соединение таблиц не вредно и не полезно — это просто инструмент, но и пользоваться им надо уметь.
Читать полностью »
Стандарты проектирования баз данных
2020-01-16 в 14:34, admin, рубрики: codestyle, IT-стандарты, sql, Анализ и проектирование систем, Блог компании Mail.Ru Group, никто не читает теги, Проектирование и рефакторинг
Переходя от проекта к проекту, мы сталкиваемся, к сожалению, с отсутствием единообразных стандартов проектирования баз данных, несмотря на то, что SQL существует уже несколько десятилетий. Подозреваю, причина отчасти в том, что большинство разработчиков не понимают архитектуру БД. За годы моей работы по найму разработчиков, я лишь несколько раз встречал тех, кто мог корректно нормализовать базу данных. Честно говоря, это бывает сложной задачей, но многие разработчики, которых я собеседовал, даже прекрасно владеющие SQL, не имели навыков проектирования БД.
Эта статья не про нормализацию БД. Если хотите этому научиться, то здесь я вкратце рассказал основы.
Если у вас есть рабочая БД, то нужно ответить себе на вопрос: «какие стандарты можно применить для облегчения использования этой базы данных?». Если эти стандарты применялись широко, то вам будет легко пользоваться БД, потому что не придётся изучать и запоминать новые наборы стандартов каждый раз, начиная работу с новой БД.
Читать полностью »
Генеалогические исследования — метрические книги, переписи, архивы, открытые базы
2020-01-10 в 22:16, admin, рубрики: data mining, sql, архивы, генеалогическое древо, генеалогия, метрические книги, открытые данныеНе один год я увлекаюсь генеалогией. Практической пользы в этом хобби нет, но интересного очень много. Здесь я хотел поделиться накопленным опытом, частью интересных сведений, не сильно погружаясь в персональные истории. Чтобы текст сильно не распухал, расскажу всего 2 кейса: поиск в военных архивах на основе данных онлайн-баз и продолжительный просмотр и анализ метрических книг одного села периода конца XIX — начала XX вв. вплоть до конца революции и гражданской войны.
Изучение метрических книг, запросы в далекие архивы обычной и электронной почтой, личные походы в архивы, исследование открытых баз в интернете и другие виды поисков дают богатый материал. Иногда поиск и находки похожи на настоящий детектив, только все события были далеко в прошлом.
Осознаю, что некоторым тема публикации может показаться далекой от IT, но в процессе у меня было и программирование, VBA-скриптинг, SQL, и впереди, надеюсь, MLDSAI.

Страница метрической книги, рождения в 1898 г. Еще в книгах записывались браки и смерти — до появления ЗАГСов в начале 1920х
Multiprocessing и реконсиляция данных из различных источников
2020-01-04 в 17:17, admin, рубрики: big data, BigData, multiprocessing, postgresql, python, sql, Алгоритмы, ПрограммированиеПривет!
В условиях многообразия распределенных систем, наличие выверенной информации в целевом хранилище является важным критерием непротиворечивости данных.
На этот счет существует немало подходов и методик, а мы остановимся на реконсиляции, теоретические аспекты которой были затронуты вот в этой статье. Предлагаю рассмотреть практическую реализацию данной системы, масштабируемой и адаптированной под большой объем данных.
Как реализовать этот кейс на старом-добром Python — читаем под катом! Поехали!

Рисуем морозные узоры на SQL
2019-12-30 в 8:43, admin, рубрики: dba, postgresql, sql, sql tips and tricks, Алгоритмы, базы данных, визуализация данных, математика, ненормальное программирование, рекурсия
Немного SQL-магии под катом: математика, рекурсия, псевдографика.
Вспоминаем под Новый год формулу угла между векторами:

Читать полностью »
Когда пасует VACUUM — чистим таблицу вручную
2019-12-25 в 17:15, admin, рубрики: dba, explain, postgresql, sql, sql tips and tricks, truncate, vacuum, Администрирование баз данных, Алгоритмы, базы данных, высокая производительностьVACUUM может «зачистить» из таблицы в PostgreSQL только то, что никто не может увидеть — то есть нет ни одного активного запроса, стартовавшего раньше, чем эти записи были изменены.
А если такой неприятный тип (продолжительная OLAP-нагрузка на OLTP-базе) все же есть? Как почистить активно меняющуюся таблицу в окружении длинных запросов и не наступить на грабли?



