paint-brush
Почему PostgreSQL является основой будущего данныхк@timescale
1,229 чтения
1,229 чтения

Почему PostgreSQL является основой будущего данных

к Timescale14m2024/04/26
Read on Terminal Reader

Слишком долго; Читать

Преобладание PostgreSQL в качестве стандарта баз данных основано на его адаптивности, надежности и обширной экосистеме. В этой статье рассматриваются причины его доминирования: от решения проблемы сложности баз данных до предоставления разработчикам возможности уверенно строить будущее. Узнайте, как PostgreSQL меняет методы разработки программного обеспечения и управления данными.
featured image - Почему PostgreSQL является основой будущего данных
Timescale HackerNoon profile picture
0-item


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


До настоящего времени!


Оглавление

01 PostgreSQL становится фактическим стандартом баз данных

02 Все становится компьютером

03 Возвращение PostgreSQL

04 Освободите себя, постройте будущее, используйте PostgreSQL

05 Временная шкала началась как «PostgreSQL для временных рядов»

06. Временная шкала расширена за пределы временных рядов

07 Timescale теперь называется «PostgreSQL стал мощным»

08 Кода: Йода?




PostgreSQL становится фактическим стандартом баз данных

За последние несколько месяцев лозунг «PostgreSQL для всего» стал растущим боевым кличем среди разработчиков:

«PostgreSQL — это не просто реляционная база данных; это среда управления данными, способная охватить всю область баз данных. Тенденция «использование Postgres для всего» больше не ограничивается несколькими элитными командами, а становится основной передовой практикой».

( источник )


«Один из способов упростить ваш стек и уменьшить количество движущихся частей, ускорить разработку, снизить риск и предоставить больше функций в вашем стартапе — это «Использовать Postgres для всего». Postgres может заменить (до миллионов пользователей) многие серверные технологии, в том числе Kafka, RabbitMQ, Mongo и Redis».

( источник )


Гергей Орос | Абхишек



( Источник )


«Когда я впервые услышал о Postgres (в то время, когда MySQL абсолютно доминировал), мне его описали как «эту базу данных, созданную этими ботаниками-математиками», и тогда мне пришло в голову: да, это именно те люди, которых вы хотите создавать. ваша база данных».

( Источник )


«Он совершил замечательное возвращение. Теперь, когда NoSQL мертв, а MySQL принадлежит Oracle, что еще остается?»

( Источник )


«Postgres — это не просто реляционная БД. Это стиль жизни."

( Источник )


Благодаря прочной основе, а также универсальности благодаря встроенным функциям и расширениям, разработчики теперь могут использовать PostgreSQL для всего, заменяя сложные, хрупкие архитектуры данных простой простотой:



Это может помочь объяснить, почему PostgreSQL в прошлом году занял первое место после MySQL в рейтинге самых популярных баз данных среди профессиональных разработчиков (60 369 респондентов):


В каких средах баз данных вы проделали большую работу по разработке за последний год и над какими вы хотите работать в следующем году? Более 49% респондентов ответили PostgreSQL. ( Источник )


Эти результаты взяты из опроса разработчиков Stack Overflow 2023 года. Если вы посмотрите во времени, то увидите устойчивый рост внедрения PostgreSQL за последние несколько лет:


Хотя PostgreSQL была второй любимой базой данных респондентов опроса разработчиков Stack Overflow в период с 2020 по 2022 год, ее использование постоянно росло. Источник: 2020 год , 2021 год , 2022 год


Это не просто тенденция среди небольших стартапов и любителей. Фактически, использование PostgreSQL растет в организациях любого размера:


Процент использования PostgreSQL по размеру компании. ( Источник )


Для Timescale эта тенденция не нова. Мы верим в PostgreSQL уже почти десять лет. Вот почему мы построили свой бизнес на PostgreSQL, поэтому мы являемся одним из ведущие участники PostgreSQL , почему мы проводим ежегодный Опрос о состоянии PostgreSQL (упомянуто выше) и почему мы поддерживаем встречи и конференции PostgreSQL. Лично я использую PostgreSQL более 13 лет (когда перешёл с MySQL).


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


До настоящего времени.


Но чтобы понять, почему это происходит, нам необходимо понять еще более фундаментальную тенденцию и то, как эта тенденция меняет фундаментальную природу человеческой реальности.


Все становится компьютером

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


Двадцать два года назад идея «повсеместных вычислений» казалась смелой. Тогда я был аспирантом лаборатории искусственного интеллекта Массачусетского технологического института и работал над своей Тезис по интеллектуальным средам. Мое исследование было поддержано Проект MIT «Кислород» , у которой была благородная и смелая цель: сделать вычисления такими же распространенными, как воздух, которым мы дышим. Если представить это время в перспективе: серверная стойка у нас стояла в чулане.


С тех пор многое изменилось. Компьютеры теперь повсюду: на наших столах, в наших карманах, в наших вещах и в нашем «облаке». Это мы и предсказывали.


Но эффекты второго порядка этих изменений оказались не такими, как ожидалось большинство из нас:


  • Повсеместное распространение вычислений привело к повсеместному распространению данных . С каждым новым вычислительным устройством мы собираем больше информации о нашей реальности: данные о людях, данные о машинах, бизнес-данные, данные об окружающей среде и синтетические данные. Эти данные наводняют наш мир.


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


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


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


Поскольку компьютеры стали более повсеместными, наша реальность стала более переплетена с компьютерами. Мы принесли компьютеры в наш мир, а себя — в его мир. Мы больше не просто наши офлайн-идентичности, а гибрид того, что мы делаем офлайн и онлайн.


Разработчики программного обеспечения — авангард человечества в этой новой реальности. Мы создаем программное обеспечение, которое формирует эту новую реальность.


Но сейчас разработчики завалены данными и тонут в сложности баз данных.


Это означает, что девелоперы вместо того, чтобы формировать будущее, тратят все больше и больше времени на управление сантехникой.


Как мы здесь оказались?

Часть 1. Каскадные вычислительные волны

Повсеместное распространение вычислений привело к повсеместному распространению данных. Это произошло не в одночасье, а каскадными волнами на протяжении нескольких десятилетий:


  • Мейнфреймы (1950-е годы+)
  • Персональные компьютеры (1970-е годы+)
  • Интернет (1990-е+)
  • Мобильный (2000-е+)
  • Облачные вычисления (2000-е годы+)
  • Интернет вещей (2010-е годы+)


С каждой волной компьютеры становились меньше, мощнее и повсеместно распространены. Каждая волна также основывалась на предыдущей: персональные компьютеры представляют собой меньшие по размеру мэйнфреймы; Интернет — это сеть связанных компьютеров; смартфоны — это еще меньшие по размеру компьютеры, подключенные к Интернету; облачные вычисления демократизировали доступ к вычислительным ресурсам; Интернет вещей — это компоненты смартфона, реконструированные как часть других физических вещей, подключенных к облаку.


Но за последние два десятилетия компьютерные достижения произошли не только в физическом мире, но и в цифровом, отражая нашу гибридную реальность:


  • Социальные сети (2000+)
  • Блокчейны (2010-е+)
  • Генеративный ИИ (2020-е годы+)


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


Вычислительные волны не разрознены, а каскадируются, как домино. То, что началось как поток данных, вскоре превратилось в поток данных. А затем поток данных привел к созданию все новых и новых баз данных.

Часть 2. Постепенный рост базы данных

Все эти новые источники данных потребовали новых мест для их хранения — или баз данных.


Мэйнфреймы начались с Интегрированное хранилище данных (1964) и позже Система Р (1974), первая база данных SQL. Персональные компьютеры способствовали появлению первых коммерческих баз данных: Оракул (1977), вдохновленный Системой R; DB2 (1983); и SQL-сервер (1989), Ответ Microsoft Oracle.


Совместная сила Интернета способствовала появлению программного обеспечения с открытым исходным кодом, включая первые базы данных с открытым исходным кодом: MySQL (1995), PostgreSQL (1996). Смартфоны привели к распространению SQLite (первоначально создан в 2000 году).


Интернет также создал огромное количество данных, что привело к появлению первых нереляционных баз данных (NoSQL): Хадуп (2006); Кассандра (2008); МонгоБД (2009). Некоторые назвали это эпохой «больших данных».

Часть 3. Взрывной рост базы данных

Примерно в 2010 году мы начали достигать переломного момента. До этого момента программные приложения в основном полагались на одну базу данных — например, Oracle, MySQL, PostgreSQL — и выбор был относительно простым.


Но «большие данные» продолжали расти: Интернет вещей привел к росту машинных данных; использование смартфонов начало расти в геометрической прогрессии благодаря iPhone и Android, что привело к еще большему вымыванию людей из цифровых технологий; облачные вычисления демократизировали доступ к вычислениям и хранилищам, усиливая эти тенденции. Совсем недавно генеративный ИИ усугубил эту проблему, создав векторные данные.


По мере роста объема собираемых данных мы наблюдали появление специализированных баз данных: Neo4j для графических данных (2007 г.), Редис для базового хранилища ключей и значений (2009 г.), InfluxDB для данных временных рядов (2013 г.), Кликхаус для крупномасштабной аналитики (2016 г.), «Сосновая шишка для векторных данных» (2019 г.) и многие, многие другие.


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

Часть 4. Больше баз данных, больше проблем

Столкнувшись с этим наводнением и наличием специализированных баз данных с множеством компромиссов, у разработчиков не было другого выбора, кроме как собирать сложную архитектуру.


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



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


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


Существует лучший способ.


Возвращение PostgreSQL

Здесь наша история делает поворот. Наш герой — это не новая блестящая база данных, а старый стойкий приверженец с именем, которое может понравиться только разработчику основного ядра: PostgreSQL.


Поначалу PostgreSQL был на втором месте после MySQL. MySQL был проще в использовании, за ним стояла компания и имя, которое каждый мог легко произнести. Но затем MySQL была приобретена компанией Sun Microsystems (2008 г.), которую затем приобрела Oracle (2009 г.). А разработчики программного обеспечения, которые видели в MySQL бесплатного спасителя от дорогостоящей диктатуры Oracle, начали пересматривать, что использовать.


В то же время распределенное сообщество разработчиков, спонсируемое несколькими небольшими независимыми компаниями, постепенно делало PostgreSQL все лучше и лучше. Они незаметно добавили мощные функции, такие как полнотекстовый поиск (2008 г.), оконные функции (2009 г.) и поддержку JSON (2012 г.). Они также сделали базу данных более надежной благодаря таким возможностям, как потоковая репликация, горячий резерв, обновление на месте (2010 г.), логическая репликация (2017 г.), а также путем тщательного исправления ошибок и сглаживания острых углов.

PostgreSQL теперь является платформой

Одной из наиболее впечатляющих возможностей, добавленных в PostgreSQL за это время, была возможность поддержки расширений: программных модулей, которые добавляют функциональность PostgreSQL (2011). Расширения позволили еще большему количеству разработчиков добавить функциональность в PostgreSQL. самостоятельно, быстро и с минимальной координацией.


Благодаря расширениям PostgreSQL стал больше, чем просто отличная реляционная база данных. Благодаря PostGIS он стал великолепной геопространственной базой данных; благодаря TimescaleDB она стала отличной базой данных временных рядов; hstore — хранилище значений ключей; AGE, графовая база данных; pgvector — векторная база данных. PostgreSQL стал платформой.


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

А как насчет больших данных?

На этом этапе умный читатель должен спросить: «А как насчет больших данных?». Это справедливый вопрос. Исторически сложилось так, что «большие данные» (например, сотни терабайт или даже петабайт) — и связанные с ними аналитические запросы — плохо подходили для таких баз данных, как PostgreSQL, которые сами по себе не масштабируются горизонтально.


Это тоже меняется. В ноябре прошлого года мы запустили « многоуровневое хранилище », который автоматически распределяет ваши данные между диском и объектным хранилищем (S3), фактически создавая возможность иметь бесконечную таблицу.


Таким образом, хотя «большие данные» исторически были слабой стороной PostgreSQL, вскоре никакая рабочая нагрузка не перестанет быть слишком большой.


PostgreSQL — это ответ. PostgreSQL — это то, как мы освобождаем себя и строим будущее.


Освободите себя, постройте будущее, используйте PostgreSQL

Вместо того, чтобы возиться с несколькими различными системами баз данных, каждая из которых имеет свои особенности и языки запросов, мы можем положиться на самую универсальную и, возможно, самую надежную базу данных в мире: PostgreSQL. Мы можем тратить меньше времени на сантехнику и больше времени на строительство будущего.


И PostgreSQL продолжает становиться лучше. Сообщество PostgreSQL продолжает улучшать ядро. Сегодня в PostgreSQL участвует гораздо больше компаний, включая гипермасштабировщиков.


Сегодняшняя экосистема PostgreSQL ( Источник )


Есть также более инновационные, независимые компании, работающие над ядром, чтобы улучшить работу PostgreSQL: Супабаза (2020) превращает PostgreSQL в жизнеспособную альтернативу Firebase для веб- и мобильных разработчиков; Неон (2021) и Хата (2022) оба обеспечивают масштабирование PostgreSQL до нуля для периодических бессерверных рабочих нагрузок; Тембо (2022) предоставляет готовые стеки для различных вариантов использования; Нил (2023) упрощает использование PostgreSQL для приложений SaaS; и многое другое.


И, конечно, есть мы, Временная шкала (2017).


Временная шкала начиналась как «PostgreSQL для временных рядов».

История Timescale, вероятно, покажется немного знакомой: мы решали некоторые сложные проблемы с данными датчиков для клиентов IoT и тонули в данных. Чтобы не отставать, мы создали сложный стек, включающий как минимум две разные системы баз данных (одна из которых представляла собой базу данных временных рядов).


Однажды мы достигли критической точки. В нашем пользовательском интерфейсе мы хотели фильтровать устройства по типу устройства и времени безотказной работы. Это должно было быть простое соединение SQL. Но поскольку мы использовали две разные базы данных, вместо этого в нашем приложении потребовалось написать связующий код между двумя нашими базами данных. Чтобы внести изменения, нам потребовались недели и целый инженерный спринт.


Затем у одного из наших инженеров возникла сумасшедшая идея: почему бы нам просто не создать базу данных временных рядов прямо в PostgreSQL? Таким образом, у нас будет только одна база данных для всех наших данных, и мы сможем быстрее поставлять программное обеспечение. Потом мы его построили, и это сделало нашу жизнь намного проще. Потом мы рассказали об этом нашим друзьям, и они захотели попробовать. И мы поняли, что это то, чем нам нужно поделиться с миром.


Итак, мы открыли исходный код нашего расширения временных рядов TimescaleDB и объявил об этом миру 4 апреля 2017 года. Тогда стартапы на базе PostgreSQL были довольно редкостью. Мы были одними из первых.


За прошедшие с тех пор семь лет мы вложили значительные средства как в расширение, так и в наш облачный сервис PostgreSQL, предлагая все более совершенные возможности разработчика PostgreSQL для работы с временными рядами и аналитикой: запросы в 350 раз быстрее, вставки через гипертаблицы на 44 % выше (автоматическое таблицы секционирования); время ответа в миллисекундах для обычных запросов с помощью непрерывных агрегатов (материализованные представления в реальном времени); Экономия затрат на хранение более 90 % за счет встроенного столбчатого сжатия; бесконечное и недорогое хранилище объектов через многоуровневое хранилище; и более.


Временная шкала расширена за пределы временных рядов

Именно с этого мы начали — с данных временных рядов, а также с того, чем мы наиболее известны.


Но в прошлом году мы начали расширяться.

Вектор шкалы времени

Мы запустили Вектор шкалы времени («PostgreSQL++ для приложений искусственного интеллекта»), что делает PostgreSQL еще лучшей векторной базой данных. Timescale Vector масштабируется до более чем 100 миллионов векторов, опираясь на pgvector с еще большей производительностью. Инновационные компании и команды уже массово используют Timescale Vector в производстве, в том числе ОткрытыйСоус , платформа анализа событий GitHub, насчитывающая более 100 миллионов векторов; ВиеРалли , платформа прогнозирования социальной вирусности, насчитывающая более 100 миллионов векторов; и MarketReader , платформа финансовой аналитики, насчитывающая более 30 миллионов векторов.


Timescale Vector расширяет возможности pgvector. Получите производительность специализированной векторной базы данных без необходимости ее изучения и обслуживания.

ПопSQL

Недавно, мы также приобрели PopSQL создавать и предлагать лучший пользовательский интерфейс PostgreSQL. PopSQL — это редактор SQL для командной работы с автозаполнением, исследованием схемы, управлением версиями и визуализацией. Сотни тысяч разработчиков и аналитиков данных использовали PopSQL для работы со своими данными, будь то PostgreSQL, Timescale или другие источники данных, такие как Redshift, Snowflake, BigQuery, MySQL, SQL Server и другие.



PopSQL — редактор SQL для командной работы

Информация

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


Timescale теперь «PostgreSQL стал мощным»

Сегодня Timescale — это мощный инструмент PostgreSQL — в любом масштабе. Теперь мы решаем проблемы с жесткими данными — чего не делает никто другой — не только в области временных рядов, но и в области искусственного интеллекта, энергетики, игр, машинных данных, электромобилей, космоса, финансов, видео, аудио, Интернета и многого другого.



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


Клиенты используют Timescale не только для своих данных временных рядов, но также для своих векторных данных и общих реляционных данных. Они используют Timescale, чтобы можно было использовать PostgreSQL для всего. Вы тоже можете: начни здесь бесплатно .


Кода: Йода?

Наша человеческая реальность, как физическая, так и виртуальная, оффлайн и онлайн, наполнена данными. Как мог бы сказать Йода, данные окружают нас, связывают нас. Эта реальность все больше управляется программным обеспечением, написанным разработчиками программного обеспечения нами.


Стоит оценить, насколько это примечательно. Не так давно, в 2002 году, когда я был аспирантом Массачусетского технологического института, мир потерял веру в программное обеспечение. Мы восстанавливались после краха пузыря доткомов. Ведущие деловые издания заявили, что « ЭТО не имеет значения ». В то время разработчику программного обеспечения было легче получить хорошую работу в сфере финансов, чем в сфере технологий — именно так поступали многие мои однокурсники по Массачусетскому технологическому институту, в том числе и я.


Но сегодня, особенно сейчас, в мире генеративного искусственного интеллекта, именно мы формируем будущее. Мы будущие строители. Нам следует ущипнуть себя.


Все становится компьютером. Во многом это хорошо: наши автомобили стали безопаснее, наши дома комфортнее, а наши фабрики и фермы стали более продуктивными. У нас есть мгновенный доступ к большему количеству информации, чем когда-либо прежде. Мы больше связаны друг с другом. Иногда это делало нас здоровее и счастливее.


Но не всегда. Как и сила, компьютерные технологии имеют как светлую, так и темную сторону. Появляется все больше свидетельств того, что мобильные телефоны и социальные сети напрямую способствуют глобальная эпидемия подростковых психических заболеваний . Мы все еще боремся с последствиями ИИ и синтетическая биология . Осознав нашу большую силу, мы должны признать, что она сопряжена с ответственностью.


Мы стали распорядителями двух ценных ресурсов, которые влияют на то, как строится будущее: нашего времени и нашей энергии.


Мы можем либо потратить эти ресурсы на управление водопроводом, либо использовать PostgreSQL для всего и построить правильное будущее.


Я думаю, вы знаете, где мы находимся.


Спасибо за прочтение. #Postgres4Life


( Источник )


Этот пост написал Аджай Кулкарни .