title

text

Дмитрий Долгов
Дмитрий Долгов Zalando SE Senior Software Engineer
: декабря
45 мин

Jsonb в PostgreSQL и NoSQL тренд: сравнение функциональности и производительности

Использование слабоструктурированных данных определенно является трендом современности, и это верно не только для NoSQL, но и для традиционных RDBMS. Многие реляционные базы данные (например, PostgreSQL, Oracle, db2, Mysql) позволяют хранить данные в json формате, и, очевидно, реализуют это по-разному.

Доклад содержит две части:

  • Сравнение поддержки json в PostgreSQL и других реляционных базах данных, а именно Mysql, Oracle, db2, MSSql в контексте реализованных возможностей, функций и т.д.
  • Сравнение производительности для баз с наиболее полной поддержкой json (PostgreSQL и Mysql) а также MongoDB на различных видах нагрузок и конфигураций.

Слайды

Видео

Другие доклады

  • Никита Волков
    Никита Волков Sannsyn AS Senior Developer and Data Scientist
    45 мин

    Декларативное программирование клиентов Postgres в Haskell с помощью Hasql

    Речь пойдёт о "hasql", высокоэффективной библиотеке для интеграции Haskell с PostgreSQL. Вы познакомитесь с удивительным языком программирования Haskell, преимуществами декларативного программирования и техническими решениями библиотеки, среди которых имплементация бинарного протокола для общения с Postgres. Эта библиотека используется проектом PostgREST, популярным универсальным REST API для баз данных Postgres.

  • Kevin  Grittner
    Kevin Grittner EnterpriseDB

    Всё об изоляции транзакций в PostgreSQL для разработчиков приложений

    Когда множество пользователей, процессов или потоков выполнения одновременно модифицируют их общие данные, это может вызывать проблемы, если каким-то образом не урегулировать условия гонки. Эти проблемы особенно остро проявляются в базах данных, реализующих семантику ACID. Набор изменений, объединённых в транзакцию базы данных, должен проявляться атомарно, и для параллельных транзакций, и для процесса восстановления после сбоя. Каждая транзакция должна переводить базу данных из одного согласованного состояния (с точки зрения бизнес-правил) в другое. Для эффективной разработки необходимо иметь возможность запрограммировать каждую транзакцию независимо от других транзакций, которые по стечению обстоятельств могут выполняться в то же самое время. В случае сбоя все изменения, внесённые транзакциями, об успешном завершении которых были уведомлены приложения, а также все изменения, ставшие видимыми для других транзакций, должны оставаться в базе после восстановления. За многие годы были выработаны различные стратегии обеспечения этих гарантий, а иногда гарантии корректировались тем или иным способом. В данном докладе будет рассказано, каким образом обеспечиваются эти гарантии или их компромиссные варианты, с упором на методику сериализуемой изоляции снимков (SSI, Serializable Snapshot Isolation), применяемую в PostgreSQL (и ни в какой другой производственной СУБД на данный момент). Хотя SSI уже работает быстрее и с большей степенью параллельности, чем любая другая методика управления условиями гонки с наиболее типичной нагрузкой, есть много путей для дальнейшего увеличения производительности, некоторые из которых требуют помощи эксперта по различным методам доступа индексов; эти вопросы и будут обсуждены в данном докладе. Кроме того, на докладе будут представлены некоторые общие идеи о том, как можно использовать методики SSI с XTM в распределённой системе. В конце мы оставили время для группового обсуждения оптимизации и возможных применений в распределённой среде.

  • Jean-Paul Argudo
    Jean-Paul Argudo Dalibo CEO

    Миграция на PostgreSQL : причины... и последствия

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

  • Ronan Dunklau
    Ronan Dunklau Dalibo DBA
    45 мин

    Multicorn: разработка Foreign Data Wrapper'ов на языке Python

    Multicorn - это обобщенный Foreign Data Wrapper (FDW, интерфейс для подключения внешних источников данных, устоявшегося русского названия пока нет), предоставляющий возможность разработки конкретных FDW на языке Python, что упрощает их разработку.

    Мы узнаем:

    • Что такое FDW, как работает Multicorn, и какие готовые FDW поставляются вместе с ним.
    • Как написать свой FDW на python, включая новый интерфейс IMPORT FOREIGN SCHEMA, появившийся в версии 9.5.
    • Внутренности Multicorn: что он делает и что не делает внутри.

    После общего рассмотрения FDW и Multicorn, мы детальнее рассмотрим некоторые FDW, поставляемые с ним.

    Затем проведем полный тур по API Multicorn, чтобы научить вас создавать FDW на Python, включая следующие детали:

    • испольование определений таблиц
    • пробрасывание WHERE
    • ограничения колонок
    • как влиять на планировщик
    • как писать во внешнюю таблицу
    • как работать с импортом внешней схемы
    • пробрасывание ORDER BY
    • управление транзакциями

    Все это будет объяснено наглядно, с примерами кода, позволяющими слушателям с нуля создать свой FDW на Python.