title

text

Ronan Dunklau
Ronan Dunklau Dalibo DBA
09:00 05 февраля
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.

Слайды

Видео

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

  • Д
    Денис Иванов 2ГИС Ведущий разработчик
    22 мин

    Эволюция использования PostgreSQL в справочном API 2GIS

    • Первое появление постгреса в команде
    • Борьба с репликацией
    • Партицирование и миграции
    • Кросс-датацентровое использование
    • v8, json, jsonb, jsquery
    • Апгрейд версии postgresql

    На данный момент на продакшене бекенда справочного API 2GIS мы имеем с десяток различных баз в postgresql, около 120 шардов, миллионы записей в таблицах. При этом практически все данные хранятся в структурах jsonb

    Я расскажу об эволюции продукта с точки зрения взаимодействия с СУБД.

  • Магнус  Хагандер
    Магнус Хагандер PostgreSQL Global Development Group Разработчик и коммиттер

    О структуре и эволюции сообщества PostgreSQL

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

  • Alvaro Hernandez
    Alvaro Hernandez 8Kdata CTO
    45 мин

    PostgreSQL и Java: прошлое, настоящее и будущее

    Java - наиболее часто используемый язык программирования в мире. Как же он поддерживается в PostgreSQL? Какие в нем есть подводные камни и каковы лучшие практики? Java продолжает развиваться, как это сказывается на ее использовании в PostgreSQL?

    Несмотря на солидный возраст языка Java, он силен как никогда. Фактически, это язык программирования мира enterprise. И с выхода Java 8, он вернулся в мир стартапов и open source. И сейчас Java становится наиболее распространенным языком для обращения к PostgreSQL.

    В этом докладе будет разобрано, как была в прошлом, и, что важнее, как в настоящем, организована работа с PostgreSQL из Java: JDBC, PL/Java и другие, реже используемые средства.

    Затем мы заглянем в будущее, чтобы понять, что сейчас ещё разрабатывается, как например новый реактивный драйвер Phoebe для доступа из Java в PostgreSQL, ориентированный на кластеры, конвейерные запросы и полностью асинхронный не JDBC интерфейс. Рассмотрим также, что должно быть сделано на серверной стороне, чтобы Java могла стать основным языком серверного программирования для PostgreSQL.

  • Юрий Соболев
    Юрий Соболев ООО "МедиаТех" Генеральный Директор

    PostgreSQL как ядро биржи интернет-рекламы Adsterra.com

    Общая информация об adsterra.com

    • adsterra.com - биржа интернет рекламы
    • В данный момент имеет порядка 150 млн показов баннеров в сутки.120 положение в alexa.com на 30.11.2015. Записывает в postgresql до 10000(и больше) событий в секунду. Читает до 5000
    • 20 отдельных серверов под БД с различными ролями
    • Активно использует логику внутри БД. Много PL/pgsql и SQL функций.

    Причины выбора Postgresql

    • История создания adsterra.com.
    • Сжатые сроки отведенные на разработку определили выбор в пользу готовых систем хранения данных.
    • Postgresql привлек своей бесплатностью и рядом фишек, которых не было у конкурентов. Некоторые в итоге оказались полезными, некоторые не очень.

    Описание архитектуры проекта

    • Общая схема взаимодействия
    • Роли групп серверов
    • Использование различных методов для взаимодействия серверов: Потоковая репликация, Londiste, postgres_fdw. Плюсы и минусы каждого.
    • Шардинг
    • Использование SQL под OLTP

    Проблемы возникшие в ходе разработки/использования и варианты решения:

    • Материализованные представления. Проблемы с обновлением и поддержкой. Что сделали в итоге.
    • Londiste. Какие проблемы были решены в ходе разработки, а какие так и не были.
    • Проблемы потоковой репликации.
    • Автовакум и вакум.
    • Странности планировщика.
    • Конкурентный доступ.

    Крутые штуки Postgresql, которые сильно помогли

    • Массивы, intarray и GIN индексы. Но не все гладко.
    • Партиционирование. Но не все есть, что хочется.
    • PL/pgsql. Но не всегда следует его использовать.
    • unlogged таблицы. Но с умом.

    Текущие разработки и нерешенные проблемы

    • Реализация колоночной аналитики штатными средствами.
    • Проблемы странных планов запросов.
    • Логическая репликация мечты
    • Мультимастер...