luckyea77 (luckyea77) wrote,
luckyea77
luckyea77

Category:

О независимости от импортного ПО и российском вкладе в самую популярную СУБД в мире



Созданные человеком программы берут данные и манипулируют ими, чтобы создавать новые, более ценные данные. Именно базы данных (СУБД) являются ядром любой информационной системы, хранящим как данные, которыми нужно манипулировать, так и полученную новую информацию. Из-за теоремы CAP не существует однозначного выбора между базой данных NoSQL или SQL. А растущая популярность БД NoSQL приводит к новым проблемам и моделям данных, которые традиционные реляционные базы не могут должным образом обработать. Основатель компании Postgres Professional Олег Бартунов рассказал «Хайтеку» об истории и перспективах одной из самых популярных СУБД в мире — PostgreSQL.

Олег Бартунов — генеральный директор Postgres Professional. Имеет статус PostgreSQL Major Contributor. В 1982 году окончил физический факультет МГУ, работает в ГАИШ МГУ. Профессиональный астроном. Изначально использовал PostgreSQL для решения задач астрономии, с 1996 года участвует в разработке СУБД и продвигает PostgreSQL в России. Создатель крупнейшего астрономического сайта astronet.ru. Занимался разработкой портала rambler.ru. Разработал для PostgreSQL систему полнотекстового поиска, средства поддержки слабоструктурированных данных, индексные методы доступа, в том числе к пространственным данным, а также разнообразные расширения для систем управления.

Postgres как исконно российская СУБД

— Вы отстаиваете идею использования PostgreSQL в качестве национальной СУБД по программе импортозамещения. Это как многочисленные «национальные операционные системы» на базе Linux? Насколько вообще корректно называть продукт, созданный мировым сообществом, национальным?

— Да, действительно, в реестр отечественного ПО входят более 40 ОС на базе Linux различных российских производителей. Все эти операционные системы неравнозначны. К сожалению, в некоторых случаях мы имеем дело с простым переклеиванием ярлыков, порой даже грубым и неаккуратным. Но многие российские производители по-настоящему работают и делают патчи для ядра Linux, развивают и создают свои пакетные репозитории, участвуют в жизни международного сообщества и занимаются просветительской деятельностью.

СУБД — система управления базами данных.

PostgreSQL — свободная объектно-реляционная система управления базами данных. Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.


В случае с Postgres ситуация обстоит несколько иначе. С самого начала существования данной системы в ней было заметное российское участие. Когда Postgres стал open-source-проектом, в нем сразу принял участие программист из Красноярска Вадим Михеев, который написал несколько весьма значимых составляющих Postgres, актуальных и по сей день. Вскоре к проекту присоединился и я. Первым моим вкладом стала функциональность интернационализации, в том числе поддержка русского языка, которая позволила работать с алфавитами, отличными от латинского. И Postgres стал по-настоящему международным.

C годами отечественный вклад в Postgres только увеличивался. Появились Федор Сигаев и Александр Коротков, ставшие ведущими разработчиками. Вместе мы улучшили расширяемость Postgres: создали возможность эффективной и быстрой работы со слабоструктурированными данными (JSONB), разработали специализированные индексы для поиска по ним и по пространственным данным, создали полнотекстовый поиск. Этот вклад признан во всем мире.

JSONB — оптимизированный способ хранения данных в формате JSON, позволяющий извлекать данные без полного синтаксического разбора.

JSON (JavaScript Object Notation) — простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript, определенного в стандарте ECMA-262 3rd Edition — December 1999. JSON — текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других.


Есть и другой показатель вклада в СУБД — по количеству патчей, которые ежегодно поступают от участников из разных стран. Например, в release notes (замечания к версии программного продукта — «Хайтек») к 11-й версии упоминается около 25 человек с русскими фамилиями, из них 15 — сотрудники Postgres Professional. Это говорит о том, что российский вклад в Postgres больше, чем, например, вклад в население Земли или в мировой ВВП.

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

Хочу обратить внимание, что в реестр отечественного ПО включен не open-source-продукт, а Postgres Pro — российская СУБД, права на которую принадлежат нашей компании. Она создана на базе Postgres с открытым кодом, но содержит существенные доработки, сделанные Postgres Professional по запросам наших клиентов — российских предприятий и организаций.

— Крупнейшие мировые производители СУБД предупредили российские компании, попавшие в санкционный список, о прекращении сотрудничества по всем проектам, начавшимся после 29 января 2018 года. К вам уже стоит очередь из сбербанков, газпромов и лукойлов?

— Для многих российских организаций остро встала проблема санкционной устойчивости. Поэтому они, даже не находясь под санкциями, задумываются о возможных последствиях в случае, если все-таки попадут под них. Вполне логично подстраховаться, поскольку впадать в полную зависимость от зарубежного ПО — неприемлемый риск для многих организаций. В связи с этим мы активно работаем со многими, хотя и не всеми, крупными российскими компаниями и государственными структурами, в том числе с Минфином России и Сбербанком.

— Чем принципиально отличаются свободно распространяемые и коммерческие версии PostgreSQL? Какой рост продаж у коммерческих версий?

— Коммерческих версий PostgreSQL, как таковых, нет. Правильно говорить о коммерческих продуктах на основе PostgreSQL. Наш продукт называется Postgres Pro. Это другая СУБД, которая выпускается в трех редакциях — Standard, Enterprise и Certified. Standard представляет собой наиболее актуальную, но официально еще не увидевшую свет версию open-source с некоторым количеством патчей от нашей компании. Как правило, это патчи, необходимые для работы с 1С, и отдельные багфиксы в интересах наших заказчиков. Версия Enterprise содержит гораздо больше существенных улучшений, необходимых для работы с большими объемами данных и большими транзакционными нагрузками. А Certified обладает сертификатом ФСТЭК. Главное отличие коммерческих продуктов на основе Postgres от open-source-проекта — наличие существенных доработок в плане безопасности, производительности и надежности, необходимых для использования СУБД в информационных системах промышленного масштаба и имеющих повышенные требования к безопасности .

В настоящее время мы наблюдаем усиление интереса к реальному импортозамещению в сфере ПО, которое в самые первые годы несколько буксовало. В связи с этим ожидается рост продаж Postgres Pro и положительная динамика.

— Есть ли «обратная связь» между ними, когда решения из коммерческого продукта переходят в свободно-распространяемый?

— В мире есть множество компаний, которые создают решения на базе открытого Postgres. Если говорить о крупных компаниях, то это американская EnterpriseDB, английская 2ndQuadrant, японская Fujitsu и российская Postgres Professional. Под разными названиями эти компании выпускают на базе Postgres свои продукты, рассчитанные на энтерпрайзный рынок. При этом все компании активно участвуют в разработке открытой СУБД и существенную часть своих разработок отдают мировому сообществу. Так устроена экосистема Postgres. Коммерческие разработки ориентированы на рынок, и потому ведутся более интенсивно, чем open-source-проект. В результате чего «ванильный» Postgres в условиях свободной лицензии получает от коммерческих продуктов больше, чем если бы его лицензия накладывала ограничения и не позволяла создавать коммерческие продукты.

Целые продукты из коммерческой сферы перешли в open-source — CitusDB или Greenplum, например. Именно свободной лицензии Postgres обязан нынешним бурным ростом в мировом масштабе. В то же время есть компании, которые ведут разработки на его базе и не делятся ими с мировым сообществом. Например, Amazon Web Services (AWS).

Развитие Postgres

— PostgreSQL уже можно смело называть PostgreNoSQL?

— При желании можно, но и это будет не совсем точно. Есть другой термин — Not Only SQL (с англ. «не только SQL» — «Хайтек»), который означает, что современные реляционные СУБД приняли вызов со стороны NoSQL и сейчас прекрасно работают со слабоструктурированными данными. Движение Postgres в этом направлении началось в 2004 году: тогда мы разработали модуль Hstore, благодаря чему PostgreSQL стал первой реляционной системы с поддержкой слабоструктурированных данных.



Следующий скачок был сделан через 10 лет, в 2014 году, когда мы реализовали поддержку формата JSONB. Этот формат представления данных позволяет не просто работать со слабоструктурированными данными, а делать это эффективно и быстро. Так что за этим сразу последовал рост популярности PostgreSQL во всем мире. И я связываю это с приходом NoSQL-ных пользователей. Сейчас JSON есть даже в стандарте SQL, и другие системы управления вслед за Postgres начали его поддерживать, но не столь эффективно.

Кстати, мы предпочитаем говорить не PostgreSQL, а Postgres — такое название проще произносится по-русски и признается сообществом. Именно так СУБД называлась до получения приставки SQL: изначально Майкл Стоунбрейкер разработал Postgres, потом она стала называться Postgres95 и, наконец, PostgreSQL.

SQL — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.

NoSQL — термин, обозначающий ряд подходов, направленных на реализацию систем управления базами данных, имеющих существенные отличия от моделей, используемых в традиционных реляционных СУБД с доступом к данным средствами языка SQL.

Майкл Стоунбрейкер — американский ученый в области информатики, PhD, исследователь проблематики построения систем управления базами данных, профессор Калифорнийского университета в Беркли, с 2001 года — профессор Массачусетского технологического института. Разработчик СУБД, основатель Ingres и VoltDB.


— В 2016 году широко обсуждалась новость об отказе Uber от PostgreSQL в пользу другого продукта. В качестве причин назывались проблемы с репликацией, особенно при смене версии продукта, повреждения данных при невинных операциях и ряда других. Что изменилось с тех пор?

— Как и у любого продукта, у Postgres имеются свои недостатки, но есть и способы их обойти. В свое время Uber решил не заниматься недостатками, а перейти на другую СУБД, с которой, вероятно, компания умела лучше обращаться. В то же время есть ничуть не менее нагруженные проекты, которые прекрасно работают на Postgres. Кроме того, в системе появилась логическая репликация, которой еще не было в 2016 году. Она обеспечивает бесшовную смену версий продукта. Также логическая репликация полностью пригодна для нагрузки «только на чтение». Ведется работа над исправлением ряда других проблем. В частности, в 12-й версии уже появился механизм подключаемых хранилищ, который в 13-й версии позволит создать подключаемое колоночное хранилище ZedStore и хранилище с UNDO-логом (ZHeap) (методы хранения и обработки данных в Postgres — «Хайтек»). И это сократит объем записи на диск.

— Когда мы увидим PostgreSQL не как продукт, а как облачный сервис?

— Облачные сервисы на базе Postgres уже есть. За рубежом подобными сервисами занимается множество компаний, в том числе Amazon, Google, Alibaba и Microsoft. В России такой сервис предоставляют Яндекс и Mail.Ru. При этом количество облачных сервисов будет расти как в нашей стране, так и за рубежом.

Но чтобы Postgres полноценно использовал преимущества облачной среды, в него необходимо вносить ряд существенных изменений. Тогда производительность в облачной среде будет почти такой же высокой, как и в обычном режиме. Мы занимаемся такими разработками.

Postgres как наука

— Помимо прекрасного продукта, который вот уже более 20 лет использует весь интернет, вы развиваете и само СУБД-строение. Существуют ли какие-то русскоязычные курсы по технологиям построения, чтобы по ним можно было изучать предмет в вузах?

— Да, мы мечтаем о том, чтобы отрасль СУБД-строения динамично развивалась в нашей стране. Безусловно, для этого необходимо готовить специалистов, знающих архитектуру и внутреннее устройство. Для содействия развитию этого направления мы пригласили профессора из Санкт-Петербургского государственного университета — Бориса Асеновича Новикова. Это научный деятель мировой величины в сфере систем управления. При нашей поддержке он написал учебник «Технологии баз данных». Первый том уже вышел. Сейчас идет работа над вторым. Борис Асенович по нашему приглашению также прочитал свой курс в МГУ в качестве межфакультетского факультатива. Видеозаписи постепенно выкладываются на сайте Postgres Professional, и с тремя лекциями этого курса уже можно ознакомиться.

Также при нашей поддержке доцент СибГУ имени М. Ф. Решетнева Евгений Павлович Моргунов разработал спецкурс «Язык SQL», позволяющий обрести фундаментальные знания в области систем управления базами данных. Второй год подряд этот курс с успехом читается в стенах ВШЭ. В качестве дополнения при поддержке компании Postgres Professional выпущен учебник «PostgreSQL. Основы языка SQL».

Весной этого года впервые в России мы запустили программу сертификации специалистов по PostgreSQL. Поскольку специалисты по Postgres становятся все более востребованными на российском рынке, необходимы единые стандарты и критерии для оценки уровня знаний. Во многом наша программа сертификации стала ответом на запросы заказчиков и партнеров.

— Каким вы видите будущее СУБД через 10–20 лет? Объектно-реляционные системы еще будут находить применение?

— Да, они еще будут находить применение. Эти СУБД базируются на строгой математической теории, и она еще долго будет актуальной. Мы не видим никаких причин, чтобы те прикладные задачи, для решения которых нужна классическая система, куда-то исчезли.

Хотя модные веяния затрагивают и системы управления базами данных. Человечество работает всё с большим количеством данных. Раньше говорили об информационном взрыве, а потом оказалось, что этот взрыв непрерывный. В наше время появилось много различных датчиков, которые собирают информацию о работе бытовых приборов, автомобилей, самолетов, есть видеонаблюдение, генерирующее огромное количество информации в секунду. Потребителями и производителями информации теперь становятся сами машины. Всё это приводит к тому, что данных очень много, а значит, их надо где-то хранить. Соответственно, требуется больше систем, а для работы с ними не хватает специалистов. Поэтому оптимальный вариант — сделать так, чтобы СУБД применялись еще шире — создать возможность автоматического функционирования (без участия человека). Отсюда родилось такое понятие, как «самоуправляемая база данных», то есть не требующая администратора, который бы за ней присматривал. Подобными разработками занимается и Oracle, и сообщество Postgres, применяя технологии машинного обучения. В частности, наша компания активно работает над созданием адаптивной облачной СУБД. Машинное обучение уже применяется для адаптивной оптимизации запросов, и часть наработок уже доступна сообществу, а в планах еще большее применение технологий машинного обучения и ИИ.

Но вопрос не только в том, что данных становится очень много. Если раньше операционные и аналитические системы, то есть базы данных и вычисления были разнесены между собой, то сейчас вычисления приближаются к данным и в идеале должны совершаться одновременно с их поступлением. Так что уже недостаточно одной технологии OLTP — обработки транзакций в режиме реального времени. И недостаточно онлайн аналитики данных, то есть OLAP. На передний план выходит гибридная транзакционно-аналитическая обработка данных (HTAP), способная в режиме реального времени и стриминга совершать обработку данных и транзакций. При этом достигается высокое быстродействие, так как данные не нужно переносить из базы для вычислений, данные транзакций сразу доступны для аналитики с момента их создания. Так что технология HTAP наряду с облаками будет задавать тон в плане долгосрочного развития СУБД.

Tags: интервью, софт
Subscribe

Posts from This Journal “интервью” Tag

promo luckyea77 июнь 19, 23:05 10
Buy for 10 tokens
Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Март 2018 года Индустриализация стала основным инструментом достижения экономического богатства стран, начиная с появления прядильных машин в конце XVIII века; при смене технологических укладов менялись местами мировые промышленные лидеры. Какой…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments