NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...Ontico
Чтобы добиться от системы максимальной производительности, необходимо учитывать структуру данных, с которыми вы работаете. Проблемы возникают, если данные очень неоднородные, и один из способов решения этих проблем - использовать возможности современных реляционных БД для хранения данных в документо-ориентированной форме.
Этот подход имеет свои плюсы и минусы, которые будут обсуждаться в докладе на примерах PostgreSQL/MySQL/MariaDB etc.
Основные вопросы:
* конечно, производительность тех или иных решений и подходов - чего необходимо избегать, а чего бояться не стоит (бенчмарки для разных конфигураций и видов нагрузки);
* способы безболезненного переноса данных в такой формат.
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 12:00
Тезисы:
http://backendconf.ru/2017/abstracts/2788.html
Что такое NewSQL, почему NoSQL-движение превращается в NewSQL, и что эта трансформация привносит в SQL?
Попробуем разобраться, почему NoSQL-вендоры добавляют всё больше SQL-возможностей, почему стандарт SQL не пользуется популярностью, и куда это всё идёт.
Рассмотрим новые диалекты языка SQL, такие как:
- Cassandra QL
- Couchbase NQL
- Elastisearch
и сравним их с подходом MongoDB & RethinkDB, добавляющим новый язык работы с данными.
Останется ли в мире СУБД что-то ценного от NoSQL-движения?
Ну и, наконец, рассмотрим новый вызов реляционной модели: multi-model databases.
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
Hacking PostgreSQL. Лекция 1. Вводная лекция для начинающих разработчиков ядра PostgreSQL. Видео и площадка для обсуждения в блоге http://postgres-edu.blogspot.ru/2016/02/20160225.html
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 14:00
Тезисы:
http://backendconf.ru/2017/abstracts/2778.html
Хотите научиться принимать решения на основе данных, но не знаете, с чего начать? Нужно записать миллионы событий, но не уверены, как делать это правильно? Вы не знаете, как быстро и дёшево строить аналитические отчеты или запутались в инструментах?
На примере DocDoc я расскажу о плюсах и минусах различных подходов: как выбрать систему хранения, почему мы остановились на Google BigQuery. Как правильно организовать данные, записать свой clickstream, отказаться от сэмплирования в GA, а также строить простые и понятные отчеты.
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
ClickHouse - высокопроизводительная база данных для больших данных и аналитики.
На ClickHouse основана Яндекс.Метрика - крупнейшая система веб-аналитики в России.
Ради чего мы написали свою базу данных? Ради скорости! ClickHouse работает невероятно быстро, быстрее всех известных нам конкурентов, и при этом может обрабатывать запросы по петабайтам данных.
Я расскажу про:
- Краткую историю создания проекта;
- Основные преимущества и особенности ClickHouse;
- Архитектура проекта; подход к хранению данных, отказоустойчивости, исполнению запросов;
- Как работает внутри, почему ClickHouse такой быстрый;
- Текущие кейсы использования в Метрике и других проектах Яндекса;
- Профит, который вы можете получить от ClickHouse.
Ivan Kotlyar. PostgreSQL in web applicationsDrupalSib
Как устроен и работает PostgreSQL, его основных отличиях и преимуществах перед MySQL.
How PostgreSQL is arranged and worked, its main differences and advantages over MySQL.
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС2ГИС Технологии
В своем докладе я расскажу, почему мы выбрали графовую базу данных Neo4j для проверки дорожного графа городов России (все населенные пункты с населением больше 300 000 жителей). Основные задачи, которые мы решаем средствами Neo4j — это проверки на связность и доступность проезда.
Опорные пункты доклада:
— SQL против графовых баз данных;
— обзор графовой базы данных neo4j;
— архитектура решения, в котором используется графовая БД;
— выполнение алгоритмов на графе в условиях его частых изменений.
В основе доклада лежат результаты работы над проектом «Fiji». Это внутрикорпоративная система, которая позволяет штатным картографам 2ГИС создавать, хранить и экспортировать карту во внешние продукты: онлайн-, десктоп- и мобильную версии 2ГИС.
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...Ontico
Довольно часто как адинистраторы, так и разработчики жалуются на низкую производительность приложений, работающих с базой данных, и нередко при этом ищут решения возникших проблем с помощью различных настроек как СУБД, так и операционной системы, пренебрегая при этом самым действенным способом - оптимизацией запросов к собственно БД.
Тому, как понимать, где же узкие места, и как их можно попробовать избежать на примере PostgreSQL и посвящен этот доклад.
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
Alexey Zinoviev Алексей Зиновьев рассказывает о выборе одной из следующих баз данных CouchDB, Neo4j, Mongo, Cassandra, HBase, Riak на Happydev 2013
Article "Choice of NoSQL database for your project: Don't bite off more than you can chew" presented on HappyDev 2013 (IT-conference in Omsk) by Alexey Zinoviev
The main idea of this article is comparison of the most popular NoSQL databases: CouchDB, Cassandra, Mongodb, Riak, Neo4j, HBase
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
RethinkDB - это распределенное документо-ориентированное хранилище данных с открытым исходным кодом. Данная система ориентирована на разработку систем обработки данных реального времени, позволяя клиентскому приложению подписываться на изменение тех или иных данных.
В данном докладе я бы хотел осветить не только вопросы разработки приложений на базе RethinkDB, но и поговорить о том, как все это работает. Мы поговорим о ReQL (язык запросов), “changefeeds”, индексах, шардинге, репликациях, а также затронем вопросы особенностей проектирования баз данных под данную платформу.
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 11:00
Тезисы:
http://backendconf.ru/2017/abstracts/2782.html
Мы использовали MySQL Handler Socket в качестве интерфейса к данным пользователей на высоконагруженном проекте Wamba.ru. Почему Handler Socket? Потому что стандартный SQL-интерфейс не выдерживал наши нагрузки. Время шло, нагрузки росли, и в итоге и HandlerSocket перестал справляться. Мы только успевали доставлять и доставлять реплики MySQL, чтобы распределять увеличивающуюся нагрузку между ними.
...
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Ontico
Несколько месяцев назад компания "Яндекс" совершила маленькую революцию, открыв свою внутреннюю систему хранения и аналитики больших данных ClickHouse в opensource для всех желающих.
ClickHouse стабильно показывает очень высокие результаты на тестах производительности запросов, часто догоняя и обгоняя лидеров рынка аналитических RDBMS, включая HP Vertica. Высокие результаты и авторитет "Яндекса" привлекают к этой системе заслуженное внимание разработчиков и архитекторов. Вместе с тем, архитектура ClickHouse довольно существенно отличается от привычных архитектур RDBMS, в ClickHouse отсутствует многое из привычной функциональности, есть ряд "неудобных" ограничений. Поэтому разработка новых и миграция существующих решений сопровождается значительными сложностями.
В докладе рассматриваются основные архитектурные особенности ClickHouse, отличия от традиционных RDBMS или NoSQL баз данных, и обсуждаются способы решения типичных задач, возникающих при разработке аналитических систем на ClickHouse.
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...pgdayrussia
Доклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
Уникальный семинар от опытного "базиста" Ивана Фролкова призван наглядно пояснить слушателям адекватность применения реляционных СУБД на задачах веба. В рамках доклада Иван рассмотрит типичные "грабли", на которые натыкаются разработчики, и субоптимальные решения, изобретаемые с целью побороть возникшие проблемы. В качестве альтернативы, коллега Фролков наглядно пояснит, как эти же задачи решаются штатными средствами PostgreSQL.
В качестве бонуса Иван — "ветеран" промышленной разработки ПО для реляционных СУБД — проведет краткий ликбез по рекомендуемым практикам построения SQL-запросов и программирования на языке PL/PGSQL.
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
Hacking PostgreSQL. Лекция 1. Вводная лекция для начинающих разработчиков ядра PostgreSQL. Видео и площадка для обсуждения в блоге http://postgres-edu.blogspot.ru/2016/02/20160225.html
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
РИТ++ 2017, Backend Conf
Зал Сан-Паулу, 6 июня, 14:00
Тезисы:
http://backendconf.ru/2017/abstracts/2778.html
Хотите научиться принимать решения на основе данных, но не знаете, с чего начать? Нужно записать миллионы событий, но не уверены, как делать это правильно? Вы не знаете, как быстро и дёшево строить аналитические отчеты или запутались в инструментах?
На примере DocDoc я расскажу о плюсах и минусах различных подходов: как выбрать систему хранения, почему мы остановились на Google BigQuery. Как правильно организовать данные, записать свой clickstream, отказаться от сэмплирования в GA, а также строить простые и понятные отчеты.
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
ClickHouse - высокопроизводительная база данных для больших данных и аналитики.
На ClickHouse основана Яндекс.Метрика - крупнейшая система веб-аналитики в России.
Ради чего мы написали свою базу данных? Ради скорости! ClickHouse работает невероятно быстро, быстрее всех известных нам конкурентов, и при этом может обрабатывать запросы по петабайтам данных.
Я расскажу про:
- Краткую историю создания проекта;
- Основные преимущества и особенности ClickHouse;
- Архитектура проекта; подход к хранению данных, отказоустойчивости, исполнению запросов;
- Как работает внутри, почему ClickHouse такой быстрый;
- Текущие кейсы использования в Метрике и других проектах Яндекса;
- Профит, который вы можете получить от ClickHouse.
Ivan Kotlyar. PostgreSQL in web applicationsDrupalSib
Как устроен и работает PostgreSQL, его основных отличиях и преимуществах перед MySQL.
How PostgreSQL is arranged and worked, its main differences and advantages over MySQL.
«Дорожная сеть в графовой базе данных Neo4j» — Вадим Шашенко, 2ГИС2ГИС Технологии
В своем докладе я расскажу, почему мы выбрали графовую базу данных Neo4j для проверки дорожного графа городов России (все населенные пункты с населением больше 300 000 жителей). Основные задачи, которые мы решаем средствами Neo4j — это проверки на связность и доступность проезда.
Опорные пункты доклада:
— SQL против графовых баз данных;
— обзор графовой базы данных neo4j;
— архитектура решения, в котором используется графовая БД;
— выполнение алгоритмов на графе в условиях его частых изменений.
В основе доклада лежат результаты работы над проектом «Fiji». Это внутрикорпоративная система, которая позволяет штатным картографам 2ГИС создавать, хранить и экспортировать карту во внешние продукты: онлайн-, десктоп- и мобильную версии 2ГИС.
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...Ontico
Довольно часто как адинистраторы, так и разработчики жалуются на низкую производительность приложений, работающих с базой данных, и нередко при этом ищут решения возникших проблем с помощью различных настроек как СУБД, так и операционной системы, пренебрегая при этом самым действенным способом - оптимизацией запросов к собственно БД.
Тому, как понимать, где же узкие места, и как их можно попробовать избежать на примере PostgreSQL и посвящен этот доклад.
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
Alexey Zinoviev Алексей Зиновьев рассказывает о выборе одной из следующих баз данных CouchDB, Neo4j, Mongo, Cassandra, HBase, Riak на Happydev 2013
Article "Choice of NoSQL database for your project: Don't bite off more than you can chew" presented on HappyDev 2013 (IT-conference in Omsk) by Alexey Zinoviev
The main idea of this article is comparison of the most popular NoSQL databases: CouchDB, Cassandra, Mongodb, Riak, Neo4j, HBase
Разработка real-time приложений с RethinkDB / Илья Вербицкий (Независимый кон...Ontico
RethinkDB - это распределенное документо-ориентированное хранилище данных с открытым исходным кодом. Данная система ориентирована на разработку систем обработки данных реального времени, позволяя клиентскому приложению подписываться на изменение тех или иных данных.
В данном докладе я бы хотел осветить не только вопросы разработки приложений на базе RethinkDB, но и поговорить о том, как все это работает. Мы поговорим о ReQL (язык запросов), “changefeeds”, индексах, шардинге, репликациях, а также затронем вопросы особенностей проектирования баз данных под данную платформу.
Как ускорить MySQL Handler Socket в 9 раз / Александр Яковлев (Мамба)Ontico
РИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 11:00
Тезисы:
http://backendconf.ru/2017/abstracts/2782.html
Мы использовали MySQL Handler Socket в качестве интерфейса к данным пользователей на высоконагруженном проекте Wamba.ru. Почему Handler Socket? Потому что стандартный SQL-интерфейс не выдерживал наши нагрузки. Время шло, нагрузки росли, и в итоге и HandlerSocket перестал справляться. Мы только успевали доставлять и доставлять реплики MySQL, чтобы распределять увеличивающуюся нагрузку между ними.
...
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Ontico
Несколько месяцев назад компания "Яндекс" совершила маленькую революцию, открыв свою внутреннюю систему хранения и аналитики больших данных ClickHouse в opensource для всех желающих.
ClickHouse стабильно показывает очень высокие результаты на тестах производительности запросов, часто догоняя и обгоняя лидеров рынка аналитических RDBMS, включая HP Vertica. Высокие результаты и авторитет "Яндекса" привлекают к этой системе заслуженное внимание разработчиков и архитекторов. Вместе с тем, архитектура ClickHouse довольно существенно отличается от привычных архитектур RDBMS, в ClickHouse отсутствует многое из привычной функциональности, есть ряд "неудобных" ограничений. Поэтому разработка новых и миграция существующих решений сопровождается значительными сложностями.
В докладе рассматриваются основные архитектурные особенности ClickHouse, отличия от традиционных RDBMS или NoSQL баз данных, и обсуждаются способы решения типичных задач, возникающих при разработке аналитических систем на ClickHouse.
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 1...pgdayrussia
Доклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
Уникальный семинар от опытного "базиста" Ивана Фролкова призван наглядно пояснить слушателям адекватность применения реляционных СУБД на задачах веба. В рамках доклада Иван рассмотрит типичные "грабли", на которые натыкаются разработчики, и субоптимальные решения, изобретаемые с целью побороть возникшие проблемы. В качестве альтернативы, коллега Фролков наглядно пояснит, как эти же задачи решаются штатными средствами PostgreSQL.
В качестве бонуса Иван — "ветеран" промышленной разработки ПО для реляционных СУБД — проведет краткий ликбез по рекомендуемым практикам построения SQL-запросов и программирования на языке PL/PGSQL.
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...pgdayrussia
Доклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
Основные принципы устройства PostgreSQL, ключевые принципы правильного конфигурирования и подходы к оптимизации под высокие нагрузки — обо всем этом Илья поведает на специальном мастер-классе, посвященном "внутренностям" СУБД. Курс предназначен как для опытных профессионалов, так и для "молодых бойцов". Полученные в ходе прослушивания семинара знания пригодятся не только на практике. Они также призваны увеличить эффективность восприятия слушателями и, как следствие, полезность докладов, запланированных на второй день конференции.
Как база работает с памятью и файловой системой? Для чего предназначено версионирование? Что такое транзакции, как они устроены и почему полезны? Как строятся индексы и что происходит с запросом во время его выполнения? Что такое репликация и почему ее нельзя применять для backup/recovery? На все эти вопросы, и не только, ответит Илья.
Разобравшись с основами и "матчастью", мы перейдем к самому интересному: "тюнингу" базы в нагруженных системах, начиная с классического "Почему у меня тормозит запрос?" и заканчивая кручением "гаек" системных процессов "посгреса" под объемы данных и транзакционные нагрузки, соизмеримые с "big data".
A short introduction into Sequential Pattern Mining in Russia. We consider frequent and frequent closed sequences along with two algorithms (SPADE and PrefixSpan). A demographic case study is provided as well. One can find links and references to relevant literature and software. We mainly follow Han & Kamber Data Mining book (2nd edition, Chapter 8.3).
Краткое введение в Sequential Pattern Mining на русском языке. Рассматриваются алгоритмы для поиска частых и частых замкнутых последовательностей (SPADE и PrefixSpan) Кейс-стади на примере демографических последовательностей. Приведены ссылки на библиотеки и реализации некоторых базовых алгоритмов. Основное изложение по мотивам учебника Джиавея Хана и Мишелин Камбер.
Поиск частых множеств признаков (товаров) и ассоциативные правилаDmitrii Ignatov
Краткое введение в анализ ассоциативных правил в терминах Анализа Формальных Понятий. Примеры задач: поиск документов почти-дубликатов, анализ посещаемости сайтов, контекстная реклама.
Танцующий кластер. Практическое руководство дрессировщика PostgreSQL / Алексе...Ontico
Нет единого мнения о том, как должен себя вести хорошо дрессированный кластер, какие номера он должен показывать и что будет делать в случае катастрофы. Надежда обнаружить серебряную пулю в поиске лучших практик толкает разработчиков кластерных решений перебирать один стек за другим, менять компоненты в расчете на то, что искомая комбинация обнаружится сама собой.
Наблюдая в разной степени успешный опыт коллег, мы почти сразу остановили свой выбор на стеке от ClusterLabs, который удовлетворяет всем минимальным требованиям синхронной хореографии прямо из коробки. Обучить же наш кластер PostgreSQL простейшим танцевальным движениям оказалось не самой легкой задачей. Нас выручили идея управлять голосами кворума и математическая модель суверенной демократии.
В докладе я покажу, как именно математическая модель суверенной демократии помогла построить живучий и масштабируемый кластер PostgreSQL.
Повышение производительности приложения за счет эффективного разделения чтения и записи данных. Репликация, которая нас устроила
Презентация подготовлена по материалам прошедшего 12 сентября витебского митапа: http://meetup.gorodvitebsk.by/
This document summarizes an presentation by Ewout Kramer on the advanced .NET API for FHIR. The presentation introduces navigating FHIR data beyond plain old CLR objects (POCOs) using the IElementNavigator interface. It also discusses accessing FHIR terminology, validation, and FhirPath support in the .NET API. The presentation is intended to demonstrate work in progress interfaces and functionality that may change prior to final implementation and release.
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...Ontico
Популярность постгреса в мире и России растет, с каждым новым релизом появляется все новая и новая функциональность, постгрес становится реальной угрозой монополии Оракл, уже подвинул Монго на поле свободных NoSQL СУБД, однако мировое сообщество ждет решения для горизонтального масштабирования. Создание постгресового кластера является крайне трудной задачей, так как постгрес является базой данных, ориентированной на целостность данных, а используемый алгоритм обеспечения конкурентности транзакций ставит серьезные челленджи перед разработчиками алгоритмов распределенных транзакций.
Оказывается, уже целых пять групп работает над этой задачей, и мы расскажем про их подходы, трудности, в том числе, и политические. Отдельно остановимся на российском опыте и нашем вкладе в решение этой задачи.
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)Ontico
NoSQL — это слово громко "жужжит".
К сожалению, оно при этом ничего не означает. Это не продукт, не технология, и даже не концепция. Это даже не подход к проектированию. Это, скорее, декларация отказа от некоторых паттернов проектирования, господствовавших в разработке клиент-серверных систем долгие годы.
На этом доклад можно было бы и закончить. Если бы мы не знали достоверно, что на свете есть люди, которые умудряются извлекать прибыль, используя NoSQL в своих проектах. Ну или сокращать убытки, по крайней мере.
Попробуем еще раз.
NoSQL — это именно декларация отказа от некоторых паттернов.
- От чего именно придется отказаться? Упомянутые паттерны так живучи совсем не случайно.
- Как это ударит по проекту? Не сомневайтесь, оно ударит, в этом мире нет ни серебряных пуль, ни бесплатного сыра.
- Какими свойствами должен обладать проект, чтобы внедрение NoSQL СУБД принесло ему пользу? Избегать NoSQL — это не трусость, это осторожность.
- Каковы сильные стороны NoSQL СУБД, и в чем профит? Выбор NoSQL — это всегда выбор в пользу меньшего зла.
- Как выбрать NoSQL СУБД под свою задачу? На http://nosql-database.org/ есть список LIST OF NOSQL DATABASES [currently >225], и даже просто прочесть его — тяжелая работа.
- Почему реальный выбор NoSQL СУБД — это выбор между Aerospike и Cassandra? Да, это провокационный вопрос, но на него есть not-so-provocative ответ.
- С какими проблемами сталкиваются разработчики и администраторы при эксплуатации "тяжелой" NoSQL базы? К сожалению, большая часть этих проблем создается именно присутствием NoSQL.
- Что можно делать с NoSQL СУБД и чего нельзя? На какие параметры производительности и отказоустойчивости можно рассчитывать? В чем особенности выбора "железа" для NoSQL?
- И �
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...Ontico
Веб-сайт нужно делать так, чтобы о перипетиях его разработки и поддержки бессонными ночами через пару лет можно было рассказать на конференции Highload++, а тамошнюю аудиторию сложно удивить велосипедом с треугольными каменными колесами. Большинство разработчиков свято следуют этому принципу то ли в силу природной любознательности и трудолюбия, то ли по причине отсутствия конференции LowLoad--.
Примерно такие мысли приходят в голову практически любому специалисту по хранилищам данных, когда он видит успешный веб-проект, испытывающий стандартные проблемы с базой данных.
В этом докладе я расскажу о 10-ти очень распространенных ошибках проектирования и эксплуатации хранилища в веб-проекте — от преждевременного шардирования базы и непродуманной системы архивации ненужных данных до особенностей работы всеми любимых фреймворков. Про каждую из них я расскажу подробно и поделюсь рецептами, как такие ошибки исправлять.
Supersized PostgreSQL: Postgres-XL for Scale-Out OLTP and Big Data Analyticsmason_s
In this talk we introduce Postgres-XL for scaling out PostgreSQL. We cover its architecture, how tables are distributed, and include a sample configuration for a small local test cluster. Finally, we discuss the differences to PostgreSQL and discuss Postgres-XL community building
Разработка API для большого, нагруженного сервисаendeveit
Рассказ о том, что творилось с проектами kolesa.kz и krisha.kz в 2011-2012 годах и что происходит сейчас, как мы создавали с нуля API и впоследствии переезжали на него, как на лету меняли хранилища данных, как боролись с нагрузками и воевали за надежность, расскажу о граблях на которые наступили и как их можно было бы избежать.
Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postg...Ontico
Как быстро развивается сейчас PostgreSQL — общеизвестно. За несколько дней до РИТ++ заканчивается главный мировой форум разработчиков этой СУБД — конференция PGCon в Канаде. Большая команда разработчиков Postgres Professional принимает участие в этой конференции и готова рассказать все последние новости прямо с PGCon.
Параллельное исполнение запросов, новые стораджи, неутихающая тема Postgres vs key-value storage, распределенный Postgres, высокая доступность, многочисленные улучшения производительности, планы и интриги разработчиков — вот основные темы этой конференции.
Я остановлюсь подробнее на нашем вкладе в ожидаемый релиз 9.6 и планах на, возможно, релиз 10.0.
Выступление на Pgconf Москва 2015. История развития сервиса МойСклад, статистика эксплуатации, особенности внутренней реализации работы с СУБД PostgreSQL.
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...Nikolay Samokhvalov
Администрирование баз данных в будущем будет полностью автоматизировано. Это уже так для базовых операций DBA: поднятие инстансов, бэкапы, управление репликацией, failover — мы наблюдаем это по бурному развитию облачных «управляемых» СУБД (AWS RDS, Google Cloud SQL и десятков игроков поменьше), работе над k8s-оператором для Postgres и MySQL в ряде компаний, внедрению внутренних RDS-like DBaaS (database-as-a-service) решений внутри крупных организаций.
Но диагностика и оптимизация производительности баз данных сегодня всё ещё очень «ручные». Например, в Postgres: находим медленную группу запросов в pg_stat_statements, ищем конкретный пример (а то и «выдумываем» его на ходу), пробуем EXPLAIN ANALYZE сначала в dev/staging-окружении, где, как правило, данных не так много, а потом на prod'е... Подбираем индекс, убеждаемся, что он ускоряет (вроде бы) один SQL-запрос и — всё, отправляем в production. Метод «чик-чик и в production» должен остаться в прошлом! Как остались в прошлом развёртывание и настройка серверов и сервисов вручную.
Nancy CLI (https://github.com/postgres-ai/nancy) – открытый фреймворк для проведения экспериментов над базами данных PostgreSQL, позволяющий любому инженеру наладить системный подход к анализу и оптимизации производительности БД. Nancy поддерживает проведение экспериментов локально (на любом сервере) и удалённо на дешёвых высокопроизводительных спот-инстансах AWS EC2.
Без каких-либо специальных знаний, используя Nancy CLI, любой инженер может теперь:
- собрать подробную информацию о поведении «SQL-запросов с прода» на «клоне прода», но «не трогая прод» с целью выявления узких мест (на «проде» под нагрузкой включать обширную диагностику неразумно, а иногда и невозможно);
- проверить, как тот или иной индекс влияет на производительность SQL (в том числе, насколько он замедлит UPDATE'ы);
- подобрать оптимальные параметры настройки Postgres'а (пример: запустить в облаке проверку 100 вариантов default_statistics_target с подробным исследованием эффекта и анализом для каждой группы SQL-запросов);
- сравнить 2+ прогонов моделированной нагрузки на клоне реальной БД в различных условиях (разное оборудование, разные версии Postgres, разные настройки, разные наборы индексов).
В докладе мы также обсудим конкретные примеры внедрения метода автоматизации экспериментов над БД и Nancy CLI в ряд проектов различных компаний (БД до 2ТБ, hybrid workload, до 15k TPS) и трудности, которые пришлось преодолеть на пути:
1. Включение полного логирования запросов: когда это просто страх, а когда это действительно серьёзный стресс для сервера? Как быть, если диски «не тянут» полное логирование?
2. Вопросы безопасности: нужно ли давать доступ к экспериментальным узлам всем разработчикам или можно обойтись без этого? Обфускировать ли данные?
3. Как убедиться, что результаты эксперимента достоверны?
4. Как проводить эксперименты над терабайтной базой данных быстро?
5. Стоит ли включать Nancy в CI/CD-конвейер?
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюринpgdayrussia
Доклад был представлен на официальной российской конференции PG Day'14 Russia, посвященной вопросам разработки и эксплуатации PostgreSQL.
С момента старта проекта на PostgreSQL были возложены серьёзные задачи. Это во многом предопределило успешное развитие всего продукта. Вокруг СУБД выстроены основные компоненты архитектуры, при этом сами базы берут на себя львиную долю обработки пользовательских запросов. Набор фич и расширений, легендарная надёжность PostgreSQL, наличие встроенной репликации, средств резервирования и архивирования — весь потенциал нашел своё воплощение, а наличие открытого профессионального комьюнити не оставляет шансов к неэффективной реализации.
В докладе будет дан обзор развития подсистем, сосредоточенных вокруг PostgreSQL, представлены параметры и режимы функционирования. Будут описаны успешные решения в рамках отдельного PostgreSQL-кластера и при распределенной обработке данных, приведены текущие вызовы, связанные с продолжающимся активным ростом проекта.
Применение фреймворка GStreamer в системе видеонаблюденияcorehard_by
Я хочу рассказать о фреймворке GStreamer, который предназначен для обработки аудио/видеоданных. А также для чего мы его использовали в одном из наших проектов.
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
РИТ++ 2017, HighLoad Junior
Зал Сингапур, 5 июня, 11:00
Тезисы:
http://junior.highload.ru/2017/abstracts/2683.html
Наш доклад описывает способ использования больших объемов памяти, которые стали доступны в последние годы. К сожалению, эта память обычно остается незадействованной в управляемых средах исполнения в связи с принудительной сборкой мусора. Разработчики прибегают к внешним хранилищам данных ( i.e Memcached), что несет дополнительные расходы.
...
Яндекс.Фотки – современный фотохостинг. В докладе идет речь об общих архитектурных принципах его построения, загрузке и обработке фотографий, механизме распределенного выполнения заданий, API для взаимодействия с внешним миром.
MyBatis и Hibernate на одном проекте. Как подружить?Alexey Zinoviev
Zinoviev Alexey presented this paper on CodeFest 2013, Novosibirsk.
Paper covers next topics: Hibernate, MyBatis, ORM, databases, SQL, JDBC, patterns, XML
Зиновьев Алексей Zinoviev Alexey выступил на Codefest 2013 с данным докладом.
Видео приглашение: http://youtu.be/8KObW8pZ9e0
Видео доклада: http://youtu.be/Tm5rl4ObWBA
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Mail.ru Group
В рамках доклада мы поделимся примерами проектов, на которых есть автоматизация, но нет ни одного специально выделенного инженера для выполнения задач, связанных с автоматизацией тестирования. Затронем такие вопросы как:
что нас привело к такому решению (отказаться от test automation инженеров);
сложности, с которыми мы столкнулись;
бонусы, которые мы в итоге получили.
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...Mail.ru Group
Автоматизация тестирования UI — это всегда непростая задача, особенно в условиях активной разработки и постоянного изменения требований. Как мы решали эту проблему в mall.my.com. Как и почему пришли к BDD. Какие инструменты выбрали. И что из этого вышло.
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Mail.ru Group
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail.ru;
Свежий взгляд на Fiddler и его сравнение с Clumsy и Charles;
Небольшой обзор и сравнение функционала Fiddler и Charles.
Управление инцидентами в Почте Mail.ru, Антон ВикторовMail.ru Group
что такое инциденты и почему это важно;
как из непонятного сделать «рутину»;
про автоматизацию: OTRS, Jira, чат-боты;
про диагностику: логирование, как работает Bomgar;
про сообщество: специальная программа тестирования почты для сотрудников.
На сегодняшний день такие популярные анализаторы, как OWASP ZAP и Burp Suite, не всегда хорошо справляются с задачей автоматического сканирования приложений. Нередко они не могут найти какие-то специфические директории, автоматически отправить запрос без участия человека. И чаще данные инструменты запускаются локально. При этом, если в компании хорошо работает команда по автоматизации тестирования, их работу можно взять за основу динамического анализа и фазинга.
Как бонус, обсудим разницу Burp Suite Professional и Burp Suite Enterprise с точки зрения CI/CD и подключения автоматизированных тестов.
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...Mail.ru Group
Почему каждый DL-инженер должен написать свою либу для обучения сеток, а потом отказаться от неё.
Расскажу про опыт написания kekas-а, и почему в своей команде мы пользуемся pytorch-lightning как более зрелым решением.
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...Mail.ru Group
Расскажу про различные полезные библиотеки и функции Python: от простых и известных, до специфичных и редких. Поделюсь тем, какие технологии мы используем при разработке, обучении и деплое наших моделей: что помогало улучшить качество, а что тормозило разработку.
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidiaMail.ru Group
Все мы знаем, что наш любимый Pandas исключительно однопоточный, а модели из scikit-learn часто учатся не очень быстро даже в несколько процессов. Поэтому в докладе я расскажу о проекте RAPIDS - наборе библиотек для анализа данных и построения предиктивных моделей с использованием NVIDIA GPU. В докладе я предложу подискутировать о том, что закон Мура больше не выполняется, рассмотрю принципы работы архитектуры CUDA. Разберу библиотеки cuDF и cuML, а также постараюсь предельно честно рассказать о том, ждать ли чуда от перехода на GPU и в каких случаях чудо неизбежно.
WebAuthn в реальной жизни, Анатолий ОстапенкоMail.ru Group
Я расскажу, как мы поддержали вход через WebAuthn в самом крупном почтовом сервисе рунета и какие сложности скрываются за красивыми презентациями о том, какой WebAuthn простой и безопасный:
как сделать WebAuthn понятным и доступным для пользователей;
как поддержать его во всех браузерах и устройствах;
как тестировать WebAuthn, в том числе автоматизированно;
куда двигаться дальше после его запуска и включения.
AMP для электронной почты, Сергей ПешковMail.ru Group
Библиотека AMP — это не только современный инструмент создания богатых функциональностью и производительных web-сайтов, адаптированных для работы на мобильных устройствах. AMP для электронной почты радикально обновляет традиционный формат электронных писем, позволяя создавать более привлекательные и полезные для пользователя рассылки.
В Почте Mail.ru очень вдохновляют новые возможности, которые может предоставить нашим пользователям и партнерам AMP для электронной почты. Этот доклад о том:
почему стандарт для по-настоящему интерактивных электронных писем не получалось создать раньше;
что из себя представляет стандарт AMP4Email, какие новые способы взаимодействия с письмом он дает;
как с его помощью повысить ценность рассылки для пользователя;
как мы реализовали поддержку AMP4Email в своих продуктах и обеспечили его безопасность;
как AMP4Email может повысить конверсию на примере внедрения AMP-рассылок в партнерстве с крупнейшим сервисом электронной коммерции в России.
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Mail.ru Group
Delivery Club — крупнейшая фудтех-платформа в России, которая объединяет более 12 000 ресторанов разной ценовой категории в более чем 120 городах.
Мы разработали приложение для наших партнеров, в котором они могут управлять заказами, меню, ингредиентами, статистикой в удобном интерфейсе. В докладе пойдет речь о том, как внедрение практик PWA помогло нам улучшить пользовательский опыт, решить вопросы, связанные с работой приложения на разных платформах. И как поддержка offline-режима избавила нас от проблем с вечными перепадами сети у наших партнеров.
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Mail.ru Group
AI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Mail.ru Group
AI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Mail.ru Group
AI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Mail.ru Group
AI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Mail.ru Group
AI Journey — двухдневная конференция с ведущими международными и российскими спикерами — экспертами в области искусственного интеллекта и анализа данных, а также представителями компаний — лидеров по развитию и применению технологий ИИ в бизнес-процессах.
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Mail.ru Group
Дмитрий Кремер, МИА «Россия сегодня» (РИА Новости). «Построение новостного web-приложения на базе PostgreSQL»
1. Перевод новостного приложения
на базу данных PostgreSQL
Meetup в Mail.ru
3 ноября 2015
Дмитрий Кремер
Администратор баз данных
E-mail: [email protected]
jabber: [email protected]
#PostgreSQLRussia
Title:mail.ru.eps
Creator:Adobe Illustrator(R) 15.0
CreationDate:7/11/2010
LanguageLevel:2
2. МИА «Россия сегодня»
● Ведущее международное новостное агентство с 1941 года (тогда СовИнформБюро)
● Крупнейший поставщик новостного и медиа-контента в Российской Федерации (бренды РИА Новости и
Sputnik News)
● Фотохостинг Олимпиады в Сочи 2014
● Десятки корреспондентов по всей России
● Современные мультимедиа-прессцентры в Москве и Симферополе
● Платформы в социальных сетях
● Производство и распространение фотоконтента,инфографики,контента для мобильных приложений.
Дмитрий Кремер
● Опыт работы с различными базами данных в качестве разработчика и системного администратора с 1999 года.
● Непрерывный опыт работы с БД Oracle c 2007 года
● Oracle Certified Professional 9i,10g
● Начал работать с PostgreSQL в мае 2015 года.
3. Особенности новостного приложения
● Работа в режиме 24/7.Прерывание работы сайтов должна стремиться к нулю.
Прерывание сервисов выпуска допустимо на минуты в периоды минимальной
нагрузки.
● Использование движка (структур данных и кода приложений) собственной разработки,
стандартизация кодовой базы проектов.
● Трёхзвенная архитектура —бизнес-логика на сервере приложений
● Использование преимущестенно свежих данных (partitioning)
● Многоязычность (UTF-8)
● Необходимость использования полнотекстового поиска (Solr, tsearch2 и т. д.)
● Solr —поиск на сайте
● tsearch2 —поиск в редакторском интерфейсе
4. Требования к переводу
● Избежать деградации производительности и отказоустойчивости системы.
● Избежать существенной деградации уровня контроля над системой,мониторинга и
стредств разрешения проблем (troubleshooting).
● По возможности не касаться структуры БД —одно из требований миграции.
● Все изменения должны быть максимально прозрачными для движка приложения.
● Минимизация простоя.
● Предварительная подготовка структуры БД.
● Использование собственных скриптов.
● Миграция данных + накат дэльты
5. Особенности конвертации БД
● Серьезное отличие средств и методик диагностики проблем и мониторинга
● Использование пула соединений pgbouncer в транзакционном режиме
● Необходимость сопоставления типов (различные варианты хранения числовых
значений,дат и т.д.)
● Автоматическая конвертация исключительно структур данных без хранимых объектов.
Использование Ora2Pg для получения первичного варианта структур данных.
● В исходной БД и PostgreSQL данные об объектах в словаре (dictionary и
information_schema + pg_catalog) хранятся в разных регистрах.Dictionary —в верхнем,
information_schema + pg_catalog —в нижнем.Поэтому использование кавычек в
названиях объектов должно быть объектом пристального внимания!!!
6. Производительность системы
● 40+ проектов (баз данных) на одном сервере БД.
● 124 миллиона транзакций в сутки
● 8 тысяч запросов в секунду
● 1200 DML операций в секунду
● 300+ vacuum операций в сутки
● Среднее время запросов 5ms
7. Особенности настройки БД
● Авторизация и аутентификация пользователей
● Настройка autovacuum (согласно презентации Ильи Космодемьянского)
http://www.slideshare.net/PostgreSQL-Consulting/postgresql-meetup-berlin-at-zalando-hq
● Агрессивные настройки в БД
● Понижение приоритета процесса autovacuum в операционной системе
● Настройка streaming replication
● Использование шаблонов базы данных для развёртывания стандартных проектов
● Логи пишутся на syslog-сервер
8. Авторизация и аутентификация пользователей
● Аутентификация пользователей через pgbouncer
● Хеши паролей пользователей хранятся не в БД,а в конфигурационном файле pgbouncer
● Пользователи с привилегиями DDL-операций соединяются с БД только локально из ssh-
сессии или ssh-тунеля (поддерживается EMS SQL Manager for PostgreSQL)
● Пользователь для реплики создаётся исключительно с правами replication без права
login.Это единственный пользователь,который соединяется с БД удалённо минуя
pgbouncer.В pg_hba.conf соединение разрешено только между реплицируемыми нодами
и сервером бэкапа.
● Авторизация пользователей
● Для приложений каждого проекта создаётся свой пользователь с минимальными
привилегиями
● Для пользователей DevOps создана соответствующая роль-владелец объектов без права
login от которой наследуются привилегии для конкретных пользователей
9. Настройка streaming replication
● Симметричная конфигурация
● Отказ от триггерного файла, ручное переключение ролей репликации, безшовный
переход с мастер-сервера на сервер реплики (standby) без смены timeline
● wal_level = hot_standby
wal_keep_segments = 500
hot_standby = on
hot_standby_feedback = on
10. Backup и PITR-сервер
● Доставка wal-логов с использованием демона lsyncd и подсстемы ядра Linux
обработки событий файловой системы inotify.
● После очистки каталога wal-огов на мастере демон lsyncd нужно перезапустить с
проверкой очистки дочерних ssh-процессов,а лучше остановить,почистить,запустить
lsyncd
● Резервное копирование с использованием pg_basebackup с опцией --xLog —создание
бэкапа, готового к восстановлению.
● Полное дублирование компонентов архитектуры
● Использование Point In Time Recovery (PITR) сервера для замены функционала Oracle
Flashback Database (не является аналогом этой технологии)
● Использование pg_switch_xlog() для создания точки восстановления.
13. Мониторинг и производительность
● Использование Zabbix
● За основу взят шаблон https://github.com/lesovsky/zabbix-extensions
● Доработка дискавера БД+таблица
● Использование pg_buffercache и pg_stat_statements
● Выставить параметры в postgresql.conf:
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.max = 10000
pg_stat_statements.track = all
● Использование pgBadger (объём логов,ротация)
● pgBadger установлен на syslog-серверах
● Ротация логов каждый час: инкрементальное добавление данных в отчёт,ротация и сжатие часового лога
14. Благодарности:
● Сергею Томулевичу —за помощь в подготовке выступления
● Алексею Лесовскому —за шаблон мониторинга PostgreSQL на Zabbix
● Николаю Самохвалову —за приглашение на мероприятие в качестве спикера.