Рубрика «postgres» - 8

Interface

In the first article, we've mentioned that an access method must provide information about itself. Let's look into the structure of the access method interface.

Properties

All properties of access methods are stored in the «pg_am» table («am» stands for access method). We can also get a list of available methods from this same table:

postgres=# select amname from pg_am;
 amname
--------
 btree
 hash
 gist
 gin
 spgist
 brin
(6 rows)

Although sequential scan can rightfully be referred to access methods, it is not on this list for historical reasons.

In PostgreSQL versions 9.5 and lower, each property was represented with a separate field of the «pg_am» table. Starting with version 9.6, properties are queried with special functions and are separated into several layers:

  • Access method properties — «pg_indexam_has_property»
  • Properties of a specific index — «pg_index_has_property»
  • Properties of individual columns of the index — «pg_index_column_has_property»

The access method layer and index layer are separated with an eye towards the future: as of now, all indexes based on one access method will always have the same properties.
Читать полностью »

Есть мнение, что будущее за DB as Service. Стоит ли всем подряд увольнять DBA и переходить в публичное облако или стремиться создать приватное облако на Docker с Kubernetes? Трое экспертов из Data Egret — Алексей Лесовский, Виктор Егоров и Андрей Сальников — на канале #RuPostgres в прямом эфире поделились мнением, для каких именно проектов подойдут облачные модели.

Модератором и ведущим беседы выступил Николай Самохвалов, основатель Postgres.ai и сооснователь сообщества RuPostgres.org.

БД в облаках: кому и зачем — мнение специалистов Data Egret - 1

Под катом — расшифровка беседы.
Читать полностью »

Дайджест новостей из мира PostgreSQL. Выпуск №14 - 1

Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL.

Новости

Microsoft приобрела Citus Data

Безусловно, главная новость в мире PostgreSQL. Об этом есть сообщение на сайте Citus, равно как и на сайте MS.

Postgres Pro Enterprise Certified

СУБД Postgres Pro Enterprise получила сертификат ФСТЭК, и теперь в наборе Postgres Pro есть и «Сертифицированная версия Postgres Pro Enterprise». До этого сертификат, необходимый для работы с персональными данными, имела только Postgres Pro Standard («Сертифицированная версия Postgres Pro»). Подробности на сайте.

credativ: PostgreSQL Competence Center

Германская фирма credativ, до того известная в Европе и Азии, приобрела фирму OmniTI, чтобы выйти на американский рынок. credativ специализируется на развертывании и поддержке проектов open source. Теперь в США откроется PostgreSQL Competence Center, который будет заниматься высококритичными проектами и поддерживать БД в течение всего их жизненного цикла.
Читать полностью »

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

Как мы мигрировали базу данных из Redis и Riak KV в PostgreSQL. Часть 1: процесс - 1

Долгое время основной базой данных в RealtimeBoard был Redis. Мы хранили в нём всю основную информацию: данные о пользователях, аккаунтах, досках и т.д. Всё работало быстро, но мы столкнулись с рядом проблем.

Проблемы с Redis

  1. Зависимость от сетевой задержки. Сейчас в нашем облаке она составляет порядка 20 мск, но при её увеличении приложение начнёт работать очень медленно.
  2. Отсутствие индексов, которые нужны нам на уровне бизнес-логики. Их самостоятельная реализация может усложнить бизнес-логику и привести к неконсистентности данных.
  3. Сложность кода также усложняет обеспечение консистентности данных.
  4. Ресурсоёмкость запросов с выборками.

Эти проблемы вместе с ростом количества данных на серверах послужили причиной для миграции БД.
Читать полностью »

Дайджест новостей из мира PostgreSQL. Предновогодний (укороченный) выпуск №13 - 1

Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL. В этом предновогоднем выпуске не будем утомлять вас длинным перечнем новостей. С Наступающим Новым Годом!

Релизы

pgAdmin4 3.6

В этой версии добавлены:

  • из панели Properties можно дропать несколько объектов одновременно;
  • можно импортировать из и экспортировать в определения серверов из базы и в базу данных конфигураций.

pgpoolAdmin 4.0.2

Можно скачать здесь, как и многочисленные предыдущие версии.

dbForge Studio for PostgreSQL v2.0

На этот раз devart выпустила Studio со Standard edition, в которой есть функциональность, не включенная в бесплатную версию Express. 30 дней можно пользоваться Standard edition бесплатно. О различиях Standard и Express можно почитать здесь.

VOPS-2.0

Вышла новая версия расширения PostgreSQL от Postgres Professional для эффективного исполнения векторных операций.

pg_probackup 2.0.25

Новая версия утилиты для бэкапа и восстановления, тоже от Postgres Professional

pgCluu 2.9

Новую версию этой программы на Perl для аудита производительности кластеров с PostgreSQL можно скачать здесь. pgCluu собирает статистику работы не только СУБД, но и системные ресурсы кластера.

postgres_dba 4.0

Вышла новая версия утилиты Николая Самохвалова для администрирования PostgreSQL. В ней появились три новых отчета: список расширений, настройка параметров PostgreSQL и Вакуум: что происходит прямо сейчас. И, конечно, доработки и исправления.
Читать полностью »

Вас когда-либо просили посчитать количество чего-то на основании данных в бд за последний месяц, сгруппировав результат по каким-то значениям и разбив всё это ещё по дням/часам?
Если да — то вы уже представляете, что вам придётся написать что-то вроде такого, только хуже

SELECT hour(datetime), somename, count(*), sum(somemetric)
from table
where datetime > :monthAgo
group by 1, 2
order by 1 desc, 2

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

А что если я скажу, что прямо в PostgreSQL можно создать вьюху, которая на лету будет учитывать только новые поступающие данные в прямо подобном запросе, как выше?
Так вот — это умеет делать расширение PipelineDB

Демо с их сайта, как это работает

PostgreSQL: PipelineDB — агрегирующие запросы в режиме реального времени - 1

Читать полностью »

Спешу поделиться хорошей новостью: жизнь авторов статей про PostgreSQL и их читателей стала немного лучше.

Как знают все хаброписатели, для оформления исходного кода используется специальный тег <source>, который подсвечивает синтаксис. Не секрет также, что подсветка не всегда получается идеальной, и тогда авторы (которым не все равно, как выглядят их статьи) вынуждены заниматься самодеятельностью — расцвечивать свой код с помощью <font color=...>.

Особенно печально все было с PostgreSQL, поскольку подсветка охватывала более или менее стандартный SQL и категорически не понимала специфики нашей СУБД. Шло время, Алексей boomburum старательно исправлял мои font-ы на source (а я — обратно), пока не стало очевидно, что подсветку надо чинить. Наконец Далер daleraliyorov подсказал выход: добавить поддержку PostgreSQL в библиотеку highlightjs, которой пользуется Хабр. И вот — готово, встречайте.
Читать полностью »

Часть I. R извлекает и рисует

Конечно, PostgreSQL с самого начала создавалась как универсальная СУБД, а не как специализированная OLAP-система. Но один из больших плюсов Постгреса — в поддержке языков программирования, с помощью которых из него можно сделать что угодно. По изобилию встроенных процедурных языков ему просто нет равных. PL/R — серверная реализация R — любимого языка аналитиков — один из них. Но об этом позже.

R – удивительный язык со своеобразными типами данных — list, например, может включать в себя не только данные разных типов, но и функции (вообще, язык эклектичный, и говорить о принадлежности его к определенному семейству не будем, чтобы не порождать отвлекающие дискуссии). В нем есть симпатичный тип данных data.frame, который подражает таблице РСУБД — это матрица, у которой столбцы содержат разные типы данных, общие на уровне столбца. Поэтому (и по другим причинам) работать в R с базами данных довольно удобно.

Мы будем работать в командной строке в среде RStudio и соединяться с PostgreSQL через драйвер ODBC RpostgreSQL. Их несложно установить.

Поскольку R создавался как этакий вариант языка S для тех, кто занимается статистикой, то и мы приведем примеры из простенькой статистики с простенькой графикой. У нас нет цели знакомить с языком, но есть цель показать взаимодействие R и PostgreSQL.

Обрабатывать данные, хранящиеся в PostgreSQL, можно тремя путями.
Читать полностью »

Генерал Авайлабилити PostgreSQL 11 - 1

Специальный выпуск POSTGRESSO, посвященный выходу официального релиза версии 11.


На улице PostgreSQL праздник. После четырех beta вышла PostgreSQL 11 General Availability, то есть официальная версия. В анонсе есть даже приветственное слово Брюса Момжана: «готовя этот релиз, сообщество особенно заботилось о добавлении функциональности, необходимой для работы с очень большими базами данных. Доказано, что PostgreSQL хорошо работает с транзакционными нагрузками, а теперь новая версия — PostgreSQL 11 — облегчит разработчикам еще и создание приложений для Big Data».

В release notes выделяют

  • секционирование:
    • добавлено секционирование по хешу;
    • PRIMARY KEY, FOREIGN KEY, индексы (см. ниже на эту тему) и триггеры;
    • секция по умолчанию для записей, вышедших за границы созданных секций;
    • UPDATE по ключу секционирования теперь может автоматически перемещать запись в соответствующую секцию;
    • PostgreSQL научился исключать ненужные секции (partition pruning) во время исполнения запросов SELECT;
  • распараллеливание:
    • теперь можно параллельно создавать индекс в случае B-tree;
    • при CREATE TABLE… AS, CREATE MATERIALIZED VIEW и в некоторых случаях запросов с UNION;
    • улучшена производительность в параллельных HASH JOIN и SEQUENTIAL SCAN;
  • появились хранимые процедуры, и в них возможно управление транзакциями;
  • JIT-компиляция некоторых запросов, выигрыш на вычислении выражений;
  • оконные функции теперь поддерживают все фреймовые опции SQL:2011 стандарта, в том числе расстояния по RANGE у PRECEDING/FOLLOWING, режим GROUPS, возможность исключения строк из фрейма;
  • появились покрывающие индексы [не покрывающие, а инклюзивные, строго говоря — прим. POSTGRESSO], использующие выражение INCLUDE при CREATE INDEX;
  • из раздела «разное»: ALTER TABLE… ADD COLUMN c значениями NOT NULL по умолчанию: этот вариант команды теперь не перезаписывает все строки таблицы и, следовательно, работает быстро.

Читать полностью »

Вышел PostgreSQL 11 - 1

Специальный выпуск POSTGRESSO, посвященный выходу официального релиза версии 11.


На улице PostgreSQL праздник. После четырех beta вышла PostgreSQL 11 General Availability, то есть официальная версия. В анонсе есть даже приветственное слово Брюса Момджана: «готовя этот релиз, сообщество особенно заботилось о добавлении функциональности, необходимой для работы с очень большими базами данных. Доказано, что PostgreSQL хорошо работает с транзакционными нагрузками, а теперь новая версия — PostgreSQL 11 — облегчит разработчикам еще и создание приложений для Big Data».

В release notes выделяют

  • секционирование:
    • добавлено секционирование по хешу;
    • PRIMARY KEY, FOREIGN KEY, индексы (см. ниже на эту тему) и триггеры;
    • секция по умолчанию для записей, вышедших за границы созданных секций;
    • UPDATE по ключу секционирования теперь может автоматически перемещать запись в соответствующую секцию;
    • PostgreSQL научился исключать ненужные секции (partition pruning) во время исполнения запросов SELECT;
  • распараллеливание:
    • теперь можно параллельно создавать индекс в случае B-tree;
    • при CREATE TABLE… AS, CREATE MATERIALIZED VIEW и в некоторых случаях запросов с UNION;
    • улучшена производительность в параллельных HASH JOIN и SEQUENTIAL SCAN;
  • появились хранимые процедуры, и в них возможно управление транзакциями;
  • JIT-компиляция некоторых запросов, выигрыш на вычислении выражений;
  • оконные функции теперь поддерживают все фреймовые опции SQL:2011 стандарта, в том числе расстояния по RANGE у PRECEDING/FOLLOWING, режим GROUPS, возможность исключения строк из фрейма;
  • появились покрывающие индексы [не покрывающие, а инклюзивные, строго говоря — прим. POSTGRESSO], использующие выражение INCLUDE при CREATE INDEX;
  • из раздела «разное»: ALTER TABLE… ADD COLUMN c значениями NOT NULL по умолчанию: этот вариант команды теперь не перезаписывает все строки таблицы и, следовательно, работает быстро.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js