title

text

Татьяна Крупеня
Татьяна Крупеня DBeaver Corp CEO
Сергей Ридер
Сергей Ридер DBeaver Corp Технический директор
13:00 26 октября
22 мин

Как ускорить загрузку данных в 10 000 раз?

Что может быть важнее скорости в вопросе загрузки данных в базу? Миграция данных одна из самых востребованных функций в DBeaver, поэтому вопрос производительности стоял для нас очень остро, причем не только в применении для PostgreSQL, но и для Greenplum, Redshift и других баз, основанных на Postgres. Мы готовы поделиться маленькими секретами, как ускорить загрузку данных в 10, 100, 1000 и даже 10 000 раз без всякой магии.

слайды

Видео

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

  • Федор Сигаев
    Федор Сигаев Postgres Professional технический директор, ведущий разработчик PostgreSQL
    22 мин

    Зачем еще 64-битные значения?

    Когда PostgreSQL только появлялся, значения идентификатора транзакции были выбраны 32х-битными. В то время это казалось запредельным числом - кто в здравом уме будет проводить 4 миллиарда транзакций? Но развитие техники привело к тому, что появились инстансы, где транзакции подбирались к этому пределу. Сообщество разработчиков ответило на это возможностью "оборота" счетчика транзакций (известный как wraparound). Но технический прогресс и рост количества данных поставили PostgreSQL перед новыми вызовами. В докладе я попытаюсь рассказать об этих вызовах, о том, как их можно преодолеть с помощью повышения разрядности счетчика, к каким следствиям это приведет и почему это надо делать сейчас, и почему это не было сделано раньше.

  • Алексей Фирсов
    Алексей Фирсов S7 techlab руководитель разработки
    45 мин

    Что такое PostgreSQL для Python-разработчика?

    Я не буду вас учить, как строить БД, как писать запросы и т.д. В этом докладе мы с вами поговорим про драйвера Python, как вообще можно использовать PostgreSQL в Python, какие инструменты для этого есть в синхронном и асинхронном мире, и почему так сложилось. Будем разговаривать про такие библиотеки Python, как: aiopg, psycopg2, asyncpg, pgbouncer, ну и, конечно же, как это все дружит с Postgres.

  • Алексей Фадеев
    Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
    90 мин

    Plv8 Framework: разработка на plv8 в IDE, с ES6, отладкой, автотестами и деплоем

    Многие разработчики прикладного ПО не любят выносить логику на сторону БД (в функции) из-за отсутствия удобных средств разработки, особенно командной. С plv8 ситуация осложняется тем, что функция содержит симбиоз кода SQL и JavaScript, популярные IDE такое не поддерживают. На этом мастер классе я представлю свою разработку "Plv8 Framework", позволяющую существенно облегчить создание кода на plv8.

    Суть в следующем: тот же JS-код, который будет выполняться на стороне БД, можно запустить локально, прямо на машине разработчика, с помощью node.js, который работает на основе того же интерпретатора v8. Спецфункция plv8.execute подменяется на функцию из npm-библиотеки pg-native, т.е. происходит обращение к внешней СУБД. Я продемонстрирую авторский набор средств, позволяющий:
    - писать js-код в вашей любимой IDE с подсветкой синтаксиса;
    - отлаживать код в реальном времени (с breakpoint, watch и т.д.);
    - писать автотесты (unit-тесты), с вариантами: постгрес, SQLite, моки;
    - выполнять deploy кода в СУБД;
    - использовать дополнительные npm-пакеты (проблема в том, что весь код функции на plv8 должен находиться в теле этой функции, т.е. в одном файле).

    Инструмент можно использовать независимо от того, на чём вы разрабатываете бэкенд. Но особенную гибкость он придаёт, если вы используете языки со статической типизацией (java, C# и т.д.). Например для задач, где бэкенд является промежуточным слоем между фронтендом и СУБД, логика (или её часть) может быть вынесена в plv8/js с динамической типизацией, что может весьма облегчить процесс разработки.

    Помимо возможности разрабатывать новые функции на plv8, фреймворк предоставляет набор готовых функций для выполнения CRUD-операций. Функции универсальные, не привязаны к структуре конкретной БД и могут работать на любых проектах. Их использование поможет сократить объём бэкенд разработки, на некоторых проектах - значительно.

    Пожалуй, самое сложное с plv8 - установить это расширение. Но у меня хорошая новость: мои коллеги помогли подготовить докер-файлы и докер-образы для PostgreSQL версии 13 с уже установленным plv8! Теперь начать разработку на plv8 просто: нужно лишь развернуть контейнер одной командой.
    Докер-файл: PostgreSQL 13 + plv8 v2.13.15
    Демо-проект для участия в мастер-классе
    Так же для мастер-класса пригодятся:
    Node.js (желательно LTS)
    IDE для js (например, бесплатная Visual Studio Code)
    GraphQL Playground

  • Александр Никитин
    Александр Никитин ЗАО ЦФТ Администратор баз данных
    22 мин

    Работа с запросами с точки зрения DBA

    Работа с запросами может внести огромный вклад в производительность сервера БД. В своём докладе я расскажу о том, какие инструменты мы используем, а также разберу некоторые примеры, которые встречались в нашей практике. Доклад будет интересен администраторам и разработчикам, которые хотели бы познакомиться с приёмами, которые мы используем в повседневной работе.