Битемпоральность: отслеживание воспроизводимых изменений в PostgreSQL с помощью типа данных RANGE
Итак, вы наконец создали модель базы данных для вашего приложения и наполнили ее текущими данными. Каким образом обеспечить их актуальность? Хотя команда INSERT может быть все еще прозрачной, команды UPDATE и DELETE перезапишут ваши предыдущие данные, так что вы не сможете их воспроизвести. Клонирование целиком огромного контента при каждом небольшом обновлении - не вариант. Для богатых и сложных данных о сотнях тысяч электрогенераторов в Германии и по всему миру я построил базу данных, используя тип данных range, недавно появившийся в PostgreSQL. Это позволило мне добавлять, обновлять и удалять данные, при том обладая полным доступом к состоянию базы данных в любой исторический момент. Во время выступления я представлю очень упрощенную версию базы данных, чтобы аудитория смогла тут же применить знания на практике. Также я покожу несколько хитрых приемов в работе с Python и Psycopg2, которые позволят всей команде подготавливать, просматривать и развертывать все изменения в базе данных без конфликтов слияния. И подкину несколько идей о том, как можно эти данные эффективно извлекать.
Слайды
Видео
Другие доклады
-
Сергей Андреев ООО "Ортикон-Групп" Архитектор
Что останавливает переход на PostgreSQL и как это побороть
Несколько реальных кейсов от тех кто остановил переход на PostgreSQL.
-
Максим Вихарев Alytics Технический директор
GreenHouseSQL - масштабируемая система аналитики на postgresql, greenplum и clickhouse
На pgconf’17 я рассказывал про нашу велосипедную систему аналитики на основе PostgreSQL. После этого мы посматривали в сторону хадупов, s3, престо, друидов, вертики, пентахо и прочих страшил. А потом перестали cтрадать и сомневаться и просто добавили к постгресу готовые Greenplum и Clickhouse. Получив в итоге потрясающую скорость, простую миграцию, простое обслуживание, надежность и горизонтальное масштабирование, восстановление после сбоев в две команды, уменьшение костов на инфрастуктуру и широкие функциональные возможности за счет сочетания ANSI SQL, MPP и In-memory. Оставаясь в парадигме Open-source и полноценного SQL. В итоге у нас получилось то, что мы назвали GreenHouseSQL - наша внутренняя платформа данных полного цикла. В докладе вскроем простоту внутренностей решения и рассмотрим компоненты стека под микроскопом, расскажем об их достоинствах и недостатках, фишках начала работы с Greenplum, зачем нам Clickhouse, что осталось PostgreSQL'у и как вообще все это работает.
-
Julien Rouhaud Разработчик
HypoPG 2: поддержка гипотетического секционирования в PostgreSQL
Декларативное секционирование было долгожданной фичей, которая претерпела улучшение с момента ее появления в релизе PostgreSQL 10. Однако для многих пользователей нахождение оптимальных схем секционирования, дающих наибольший эффект, все еще является нелегкой задачей. По этой причине мы добавили в HypoPG новую фичу гипотетического секционирования, которая помогает пользователям проектировать схему секционирования. В ходе презентации я сделаю небольшое введение в HypoPG и декларативное секционирование, а затем покажу применение гипотетического секционирования и объясню, как работает расширение.
-
Александр Федоров dbeaver.com Директор по развитиюАндрей Хитрин RedSys Системный архитектор
Самый важный инструмент: Xobot IDE
В мире программирования особняком стоит создание исходного кода для "процедурных расширений" баз данных. Большинство СУБД предлагает процедурные языки и "хранимые процедуры" для создания процедурных расширений. В Postgres количество поддерживаемых официально и не очень процедурных языков уже перевалило за десяток.
Традиционно на хранимые процедуры возлагают множество задач: трудно устоять перед соблазном исполнить операцию над данными непосредственно в хранилище, особенно в Enterprise разработке. Такой подход довольно быстро приводит к размазыванию бизнес-логики по телу хранимых процедур и резко повышает стоимость поддержки и развития системы в целом.
Особенности жизненного цикла хранимых процедур затрудняют применение стандартных инструментов и практик по контролю изменений. Необходимо адаптировать работу с хранимыми процедурами к стандартам Change Management, оставаясь в рамках привычных для разработчика действий.
Мы рассмотрим проблемы разработки процедурных расширений и обсудим решения, которые мы реализуем в IDE XOBOT.