Postgresql psql: Postgres Pro Standard : Документация: 10: psql : Компания Postgres Professional
Профессиональный Postgres / Блог компании Postgres Professional / Хабр
Мы продолжаем публиковать видео и расшифровки лучших докладов с конференции PGConf.Russia 2019. Доклад Олега Бартунова на тему «Профессиональный Postgres» открывал пленарную часть конференции. В нем раскрыта история СУБД Postgres, российский вклад в разработку, особенности архитектуры.
Предыдущие материалы этой серии: «Типичные ошибки при работе с PostgreSQL» Ивана Фролкова, части 1 и 2.
Я буду рассказывать про профессиональный Postgres. Прошу не путать с компанией, которую я представляю сейчас — Postgres Professional.
Я действительно буду говорить о том, как Postgres, начинавшийся как любительская академическая разработка, стал профессиональным — таким, как мы его видим сейчас. Выскажу исключительно свое персональное мнение, оно не отражает мнение ни нашей компании, ни каких-либо групп.
Так получилось, что я использую и занимаюсь Postgres не урывками, а непрерывно с 1995-го года по сегодняшний день. Вся его история прошла на моих глазах, я участник основных событий.
История
На этом слайде я кратко обозначил те проекты, в которых принимал участие. Многие из них вам знакомы. А историю Postgres начну сразу с картинки, которую я нарисовал много-много лет назад и потом ее только дорисовывал — число версий всё увеличивается и увеличивается. Она отражает эволюцию реляционных баз данных. Слева, если кто не знает, это Майкл Стоунбрейкер, которого называют отцом Postgres. Внизу наши первые «ядерные» разработчики. Человек сидящий справа — это Вадим Михеев из Красноярска, он был одним из первых core-разработчиков.
Начну рассказ о реляционной модели с IBM, которая внесла гигантский вклад в индустрию. Именно в IBM работал Эдгар Кодд, из ее недр появилась первая white paper по IBM System R — это была первая реляционная база. Майк Стоунбрейкер работал в то время в Бёркли. Он прочитал эту статью и вместе со своими ребятами загорелся: надо сделать базу данных.
В те годы — в начале 70-х годов — как вы подозреваете, компьютеров было не много. На всё отделение Computer science университета Бёркли была одна PDP-11, и все студенты и преподаватели дрались за машинное время. В основном эта машина использовалась для расчетов. Я сам так работал, когда был молодым: отдаешь оператору задачу, он ее запускает. Но студенты и разработчики хотели интерактивной работы. Это была наша мечта — сидеть за пультом, вводить программы, отлаживать их. И когда Майк Стоунбрейкер со своими приятелями сделали первую базу, они назвали ее Ingres — INteractive Grafic REtrieval System. Люди не понимали: почему interactive? А это просто реализовалась мечта ее разработчиков. У них был консольный клиент, с помощью которого можно было работать с Ingres-ом. Он дал очень много нашей индустрии. Вы видите, сколько там стрелочек от Ingres? Это те базы данных, на которые он повлиял, которые шарили его код. У Майкла Стоунбрейкера было очень много учеников-разработчиков, которые ушли и разработали потом Sybase и MS SQL, NonStop SQL, Illustra, Informix.
Когда Ingres развился настолько, что стал интересным с коммерческой точки зрения, образовалась компания Illustra (это был 1992-й год), и код СУБД Illustra был куплен компанией Informix, которая была позже съедена IBM, и таким образом этот код ушел в DB2. Но что заинтересовало IBM в Ingres? В первую очередь расширяемость — те революционные идеи, которые Майкл Стоунбрейкер заложил с самого начала, думая о том, что база данных должна быть готова к решению любых бизнес-задач. А для этого нужно, чтобы в базу можно было добавить свои типы данных, access-методы и функции. Сейчас нам, постгресистам, это кажется естественным. В те годы это была революция. Именно со времен Ingres и Postgres эти фичи, эта функциональность стали де-факто стандартом для всех реляционных баз данных. Сейчас все базы данных имеют пользовательские функции, а когда Стоунбрейкер писал, что пользовательские функции нужны, компания Oracle, например, кричала о том, что это опасно, и что так делать нельзя потому, что пользователи могут навредить данным. Сейчас мы видим, что пользовательские функции существуют во всех базах данных, что можно делать свои агрегаты и типы данных.
Postgres развивался как академическая разработка, а это значит: есть профессор, у него есть грант на разработку, студенты и аспиранты, которые с ним работают. Серьезную базу, готовую для продакшн, так сделать нельзя. Тем не менее в последнюю версию из Бёркли — Postgres95 — уже был добавлен язык SQL. Студенты-разработчики в это время уже стали работать в компании Illustra, делали Informix и потеряли интерес к проекту. Они сказали: у нас есть Postgres95, забирайте его, кому нужно! Я это всё прекрасно помню потому, что сам был одним из тех, кто получил это письмо: был mailing list, а в нем меньше 400 человек подписчиков. Сообщество Postgres95 начиналось с этих 400 человек. Мы все дружно проголосовали за то, что берем этот проект. У нас нашелся энтузиаст, который поднял CVS-сервер, и мы перетащили всё в Панаму, так как серверы были там.
История PostgreSQL [дальше просто Postgres] начинается с версии 6.0, так как версии 1, 4, 5 были еще Postgres95. В 1997-м году 3 апреля появился наш логотип — слон. До этого у нас были разные животные. У меня на страничке, например, долгое время был гепард, намекавший, что Postgres очень быстрый. Потом в mailing list-е подняли вопрос: нашей большой базе данных нужно серьезное животное. И кто-то написал: давайте это будет слон. Все дружно проголосовали, потом наши ребята из Санкт-Петербурга нарисовали этот логотип. Изначально это был слон в алмазе — если поковыряетесь в машине времени, то увидите его. Слона выбрали потому, что у слонов очень хорошая память. Даже у Агаты Кристи есть такая повесть «Слоны могут помнить»: там слон очень мстительный, лет пятьдесят он помнил обиду, а потом задавил обидчика. Бриллиант потом откололи, рисунок векторизовали, и в результате получился вот этот слон. Так что это один из первых российских вкладов в Postgres.
Гепарда сменил Слоник в бриллианте:
Этапы развития Postgres
Первой задачей была стабилизация его работы. Сообщество переняло исходные коды академических разработчиков. Чего там только не было! Начали всё это перелопачивать, чтобы компилировалось прилично. Я выделил на этом слайде 1997-й год, версию 6.1 — в ней появилась интернационализация. Выделил не потому, что я сам это делал (это действительно был мой первый патч), а потому, что важный этап. Вы уже привыкли, что Postgres работает с любым языком, в любых локалях — во всем мире. А тогда он понимал только ASCII, то есть никаких 8-х битов, никаких европейских языков, никакого русского. Обнаружив это, я, следуя принципам open-source, просто взял и сделал поддержку локалей. И благодаря этой работе Postgres пошел в мир. После меня японец Тацуо Ишии [Tatsuo Ishii] сделал поддержку мультибайтных кодировок, и Postgres стал по-настоящему всемирным.
В 2005-м году была введена поддержка Windows. Я помню эти горячие споры, когда в mailing list-е это обсуждали. Все разработчики были нормальные люди, они работали под Unix. Вы вот сейчас хлопаете, и точно так же народ реагировал и тогда. И голосовал против. Это длилась годами. Более того, SRA Computers выпустили на несколько лет раньше свой Powergres — нативный порт на Windows. Но это было чисто японское изделие. Когда в 2005-м году в 8-й версии у нас появилась поддержка Windows, оказалось, что это сильный шаг: сообщество распухло. Появилось очень много людей и очень много глупых вопросов, но сообщество стало большое, мы схватили виндузовых пользователей.
В 2010-м году у нас появилась встроенная репликация. Это — боль. Я помню, сколько лет люди боролись за то, чтобы репликация была в Postgres. Сначала все говорили: нам не нужна репликация, это не дело базы данных, это дело внешних утилит. Если кто помнит, Slony сделал Ян Вик [Jan Wieck]. Кстати, «слони» тоже из русского языка пришли: Ян спросил меня, как будет по-русски «много слонов», и я ответил: «слоны». Вот он и сделал Slony. Эти слоны работали как логическая репликация на триггерах, настройка их была кошмаром — ветераны помнят. Более того, все долго слушали Тома Лейна [Tom Lane], который, помню, отчаянно кричал: зачем нам усложнять код репликацией, если это можно сделать снаружи базы? Но в результате встроенная репликация все-таки появилась. Это дало сразу колоссальное количество enterprise-пользователей потому, что до этого такие пользователи говорили: как нам вообще жить без репликации? Это невозможно!
В 2014-м году появился jsonb. Это работа моя, Федора Сигаева и Александра Короткова. И тоже народ кричал: зачем нам это нужно? Вообще, у нас уже был hstore, который мы сделали 2003-м году, а 2006-м он вошел в Postgres. Люди им прекрасно пользовались по всему миру, любили его, и, если в google набрать hstore, появлялось гигантское количество документов. Очень популярное расширение. И мы всячески пропагандировали идею неструктурированных данных в Postgres. С самого начала моей работы я как раз этим интересовался и, когда мы сделали jsonb, я получил массу писем с благодарностями и вопросами. А сообщество получило NoSQL-пользователей! До jsonb люди, зомбированые хайпом, шли в key-value базы данных. При этом они вынуждены были жертвовать целостностью, ACID-ностью. А мы им дали возможность, ничем не жертвуя, работать с их прекрасным json-ом. Комьюнити опять резко выросло.
В 2016-м году у нас появилось параллельное выполнение запросов. Если кто не знает, это, конечно, не для OLTP. Если у вас загруженная машина, то все ядра и так заняты. Параллельное выполнение запросов ценно для OLAP-пользователей. И они это оценили, то есть в сообщество начало прибывать и какое-то количество OLAP-юзеров.
Дальше шли накопительные процессы. В 2017-м году мы получили логическую репликацию и декларативное партицирование — это был тоже большой и серьезный шаг потому, что логическая репликация дала возможность делать очень и очень интересные системы, люди получили неограниченную свободу для своей фантазии и начали делать кластеры. С помощью декларативного партицирования стало возможно не вручную, а с помощью языка SQL создавать партиции.
В 2018-м году в 11-й версии мы получили JIT. Кто не знает, это Just In Time compiler: вы компилируете запросы, и это действительно может очень сильно ускорить выполнение. Это важно для ускорения медленных запросов потому, что быстрые запросы и так быстрые, а overhead на компиляцию все-таки существенный.
В 2019-м году самое основное, что мы ожидаем, это pluggable storage, API для того, чтобы разработчики могли создавать свои хранилища, один из примеров которых это zheap — хранилище, которое разрабатывает компания EnterpriseDB.
А вот и наша разработка: SQL/JSON. Я очень надеялся, что Саша Коротков закоммитит его до конференции, но там обнаружились какие-то проблемы, и мы теперь надеемся, что все-таки в этом году мы получим SQL/JSON. Люди ждут его уже два года [сейчас закоммичена значительная часть патча SQL/JSON: jsonpath, об этом написано подробно здесь].
Дальше я перехожу к слайду, который показывает: Postgres — это универсальная база данных. Эту картинку можно изучать часами, рассказать кучу историй о возникновении компаний, о поглощении, о смерти компаний. Я начну с 2000-го года. Один из первых форков Postgres — IBM-овская Netezza. Вы только представьте себе: «Голубой гигант» взял код Postgres и соорудил для поддержки своих BI базу для OLAP!
Вот форк TelegraphCQ: уже в 2000-м году на основе Postgres в Бёркли люди делали стриминговую базу данных. Если кто не знает, это база данных, которая не интересуется самими данными, а интересуются их агрегатами. Сейчас очень много задач, где не нужно знать каждое значение, допустим, температуру в какой-то точке, а нужно среднее значение в данном регионе. И в TelegraphCQ взяли эту идею (возникшую тоже в Бёркли), одну из самых передовых идей того времени, и разработали базу на основе Postgres. Дальше она эволюционировала, и в 2008-м году на ее основе выпущен был уже коммерческий продукт — база TruCQ, сейчас ее владелец Cisco.
Я забыл сказать, что на этой страничке не все форки, их в раза в два больше. Я выбрал наиболее важные и интересные, чтобы не загромождать картинку. На страничке в postgresql-вики перечислены все форки. Кто знает опенсорсную базу данных, у которой было бы столько форков? Таких баз нет.
Postgres отличается от других баз не только своей функциональностью, но и тем, что у нее
очень интересное сообщество, оно нормально принимает форки. В мире опенсорс принято считать: я сделал форк потому, что обиделся — вы меня не поддержали, вот я и решил вести собственную разработку. В постгресовом мире появление форка означает: какие то люди или какая-то компания решили сделать некоторый прототип и проверить придуманную ими функциональность, поэкспериментировать. А если повезет, то и сделать коммерческую базу, которую можно будет продавать клиентам, предоставлять им сервис и так далее. При этом, как правило, разработчики всех этих форков возвращают свои наработки и патчи в сообщество. Продукт нашей компании тоже форк, и понятно, что мы кучу патчей вернули обратно в сообщество. В последней, 11-й версии мы вернули сообществу более 100 патчей. Если посмотрите в ее release notes, то там будет 25 фамилий наших сотрудников. Это нормальное поведение в сообществе. Мы используем комьюнити-версию и делаем свой форк для того, чтобы проверять свои идеи или давать клиентам функциональность раньше, чем сообщество созреет для ее принятия. Форки в Postgres-сообществе очень даже приветствуются.
Известная Vertica возникла из C-Store — тоже выросла из Postgres. Некоторые люди утверждают, что в Vertica вообще не было исходников из Postgres, а была только поддержка постгресового протокола. Но тем не менее принято причислять ее к постгресовым форкам.
Greenplum. Сейчас вы можете скачать его и использовать как кластер. Он возник из Bizgres — массивно-параллельной базы данных. Потом она была куплена компанией Greenplum, стала и долго оставалась коммерческой. Но вы видите, что где-то в 2015-м году они поняли, что мир изменился: мир идет к открытым протоколам, к открытым сообществам, открытым базам данных. И открыли коды Greenplum. Сейчас они активно догоняют Postgres потому, что за это время отстали, конечно, очень сильно. Они отпочковались на 8.2, а сейчас говорят, что догнали 9.6.
Всеми нами любимый и нелюбимый Amazon. Вы знаете, как он возник. Это происходило на моих глазах. Была компания, был ParAccel с векторной обработкой, тоже на Postgres — продукт сообщества, открытый. В 2012-м году хитрый Amazon купил исходники и буквально через полгода объявил, что вот у нас в Amazon-е теперь есть RDS. Мы их тогда расспрашивали, они долго мялись, но потом все же выяснилось, что это Postgres. RDS до сих пор живет, и это один из самых популярных популярных сервисов Amazon-а, у них там порядка 7000 баз крутятся. Но они на этом не успокоились, и в 2010 появилась Amazon Aurora — Postgres 10 с переписанным сториджем, который вшит прямо в инфраструктуру Amazon, в их распределенное хранилище.
Посмотрите теперь на Teradata. Большая, старая добрая компания, которая занималась аналитикой, OLAP-ом. После «восьмерки» [PostgreSQL 8.0] возникла Aster Data.
Hadoop: у нас Postgres на Hadoop — HadoopDB. Через некоторое время она стала закрытой базой Hadapt, принадлежащей Teradata. Если вы увидите Hadapt, знайте, что внутри там Postgres.
Очень интересная судьба у Citus. Все знают, что это распределенный Postgres для онлайн-аналитики. Он не поддерживает транзакции. Citus Data был стартапом, а Citus была с закрытыми исходниками — отдельная база данных. Через некоторое время люди поняли, что лучше жить с сообществом, открыться. И они очень много сделали, чтобы стать просто расширением (extension) Postgres. Плюс они начали делать бизнес уже на предоставлении своих облачных услуг. Вы все уже знаете: здесь написано MS Citus потому, что Microsoft их купил, буквально недели две назад. Наверное, для того, чтобы поддержать Postgres на своей Azure, то есть Microsoft тоже играет в эти игры. У них на Azure крутится Postgres, и команда разработчиков Citus присоединилась к разработчикам MS.
Вообще в последнее время процессы покупки постгресовых компаний пошли интенсивно. Буквально после того, как Microsoft купил Citus, другая постгресовая компания — credativ — купила компанию OmniTI, чтобы усилить свое присутствие на рынке. Это две достаточно известные, добротные компании. А компания Amazon купила компанию OpenSCG. Постгресовый мир сейчас меняется, и я дальше покажу, почему такой большой интерес к Postgres.
Нашумевшая TimescaleDB тоже была отдельной базой данных, но и она теперь расширение: вы берете Postgres и устанавливаете timescaledb как расширение и получаете базу данных, которая рвет всяческие специализированные базы данных.
Еще имеется Postgres XL, имеются кластеры, которые развиваются.
Сюда вот, в 2015-й год, я поставил наш форк: Postgres Pro. У нас есть Postgres Pro Enterprise, имеется сертифицированная версия, мы поддерживаем «1С» из коробки и мы признанны компанией «1С». Если кто хочет попробовать Postgres Pro Enterprise, то можно бесплатно взять дистрибутив для тестирования, а если понадобится для работы, то вы можете его купить.
Мы сделали Credereum — прототип базы данных с поддержкой блокчейна. Теперь ждем, когда народ созреет для того, чтобы начать ее использовать.
Видите, какая большая и интересная картина. Я даже не говорю про Yahoo! Everest с колоночным хранением, с петабайтами данных в Yahoo! — это был 2008-й год. Они даже спонсировали нашу конференцию в Канаде, приезжали туда, у меня где-то даже майка оттуда имеется 🙂
Есть еще PipelineDB. Она тоже начиналась как база с закрытыми исходниками, а сейчас это тоже просто расширение. Мы видим, что Citus, TimescaleDB и PipelineDB это как бы отдельные базы данных, но при этом они существуют как расширения, то есть вы берете стандартный Postgres и компилите расширение. PipelineDB это продолжение идеи стримовых баз данных. Хотите работать со стримами? Берёте Postgres, берёте PipelineDB и можно работать.
Кроме того, есть расширения, которые позволяют работать с GPU. Видите заголовок? Я показал, что есть экосистема, которая охватывает большое количество разных типов данных и нагрузок. Поэтому мы говорим, что Postgres это универсальная база данных.
Любимая народом база
На следующем слайде большие имена. Все самые известные облака мира поддерживают Postgres. У нас в России Postgres поддерживают большие госкомпании. Они пользуются им, а мы их обслуживаем в качестве наших клиентов.
Сейчас уже много расширений и много приложений, поэтому Postgres хорош как база данных, с которой начинается проект. Я всегда говорю стартаперам: ребята, не надо брать NoSQL базу данных. Я понимаю, что вам очень хочется, но начните с Postgres. Если вам не будет хватать чего-то, вы всегда сможете отцепить какой-нибудь сервис и отдать его специализированной базе данных. Кроме универсальности у Postgres есть еще одно достоинство: очень либеральная лицензия BSD, которая позволит делать что угодно со своей базой данных.
Всё, что вы видите на этом слайде, доступно благодаря тому, что Postgres — расширяемая база данных, причем эта расширяемость заложена сразу, прямо в архитектуре базы данных. Когда Майкл Стоунбрейкер писал про Postgres в своей первой статье о нём (она написана им в 1984-м году, здесь я цитирую статью 1987-го года), он уже говорил о расширяемости как важнейшей составляющей функциональности базы данных. И это, как говорится, уже проверено временем. Можно добавлять свои функции, свои типы данных, операторы, индексные доступы (то есть оптимизированные access-методы), вы можете писать ваши процедуры на очень большом количестве языков. У нас имеется Foreign Data Wrapper (FDW), то есть интерфейсы для работы с разными хранилищами, файлами, можно коннектиться к Oracle, MySQL и другим базам.
Хочу привести пример из собственного личного опыта. Я работал с Postgres и, когда мне чего-то не хватало в Postgres, мы с коллегами просто добавляли эту функциональность. Нам нужно было работать, например, с русским языком, и мы сделали 8-битную локаль. Это был проект Rambler. Кстати, он был тогда в топ-5. Rambler был первым крупным мировым проектом, который встал на Postgres. Массивы в Postgres были с самого начала, но они были такие, что с ними ничего нельзя было делать, это была просто текстовая строчка, в которой хранились массивы. Мы добавили операторы, сделали индексы, и сейчас массивы это неотъемлемая часть функциональности Postgres, и многие из вас используют их, совершенно не задумываясь о том, насколько они быстро работают — и это нормально. Раньше говорили, что массивы это уже не традиционная реляционная модель, не удовлетворяет классическим нормальным формам. Сейчас люди уже привыкли пользоваться массивами.
Когда нам понадобился полнотекстовый поиск, мы его сделали. Когда нам потребовалось хранить данные разной природы, мы сделали расширение hstore, и многие люди стали его использовать: он давал возможность строить гибкие схемы БД, чтобы можно было диплоиться раньше и быстрее. Мы сделали GIN-индекс, чтобы полнотекстовый поиск работал быстро. Сделали триграммы (pg_trgm). Сделали NoSQL. И всё это на моей памяти, всё из собственных нужд.
Расширяемость как раз и делает Postgres уникальной базой, универсальной базой данных, с которой можно начинать работать и не бояться, что вы останетесь без поддержки. Посмотрите, сколько у нас здесь людей — это уже рынок! Несмотря на то, что сейчас хайп — графовые базы данных, документные базы, time series и так далее, — посмотрите: большинство по-прежнему использует реляционные базы данных. Они доминируют, это 75% рынка баз данных, а остальные — это экзотические базы данных, мелочь по сравнению с реляционными.
Если вы посмотрите соотношение баз данных open source с коммерческими, то, по
данным DB-Engines, мы увидим, что количество баз open source почти равно числу коммерческих баз. И мы видим, что open source базы данных (синяя линия) растут, а коммерческие (красная) падают. Это направление развития всего ИТ-сообщества, направление к открытости. Сейчас, конечно, неприлично ссылаться на Gartner, но я всё равно скажу: они предсказывают, что к 2022-му году 70% будут использовать открытые базы данных и до 50% существующих систем будут мигрировать на open source.
Посмотрите на вот эту пузомерку: мы видим, что Postgres названа базой данных 2018-го года. В прошлом году она тоже была 1-ая по независимым оценкам экспертов DB-Engines. Рэнкинг показывает, что Postgres действительно впереди планеты всей. Он находится в абсолютном исчислении на 4-м месте, но посмотрите, как он растет. Уверенно, хорошо. На слайде это синяя линия. Остальные — MySQL, Oracle, MS SQL — либо балансирует на своем уровне, либо начинает загибаться.
Hacker news — все вы, наверное, читаете его или Y Combinator — там периодически проводят опросы, там компании публикуют свои вакансии, и с некоторых пор ведут статистику. Вы видите, что начиная где-то с 2014-го года, Postgres опережает всех. Был 1-м MySQL, но Postgres потихоньку вырос, и теперь среди всего хакерского сообщества (в хорошем смысле слова) он тоже превалирует и растет дальше.
В Stack Overflow тоже каждый год проводят опросы. По most used наш Postgres находится на хорошем, третьем месте. По most loved — на втором. Это любимая база данных. Redis это не реляционная база данных, а из реляционных Postgres самая любимая. Я не привел здесь картинку most dreaded — самая ужасная база данных, но вы, наверно догадываетесь, кто на первом месте. «База икс», как ее любят называть в России.
Есть обзор и по России, опрос на всеми нами уважаемой конференции HighLoad++. Проводился не нами, его делал Олег Бунин. Получилось: в России Postgres база данных №1.
Мы второй раз просим HH.ru, чтобы они с нами делились статистикой по вакансиям Postgres. 9 лет назад Postgres отставал от Oracle в 10 раз, все кричали: давайте нам ораклистов. И мы видим, что в прошлом году мы сравнялись, а дальше в 2018-м году был рост. И если вы волнуетесь о том, где найти работу, то смотрите: 2 тысячи вакансий на HH.ru это Postgres. Не волнуйтесь, работы хватит.
Для того чтобы было лучше видно, я сделал картинку, где показал вакансии Postgres относительно вакансий Oracle. Было меньше единички, начиная с 2018-го они уже вровень, и сейчас Postgres-а уже стало чуть-чуть больше. Пока немного удручает, что абсолютное число вакансий Oracle тоже растет, чего в принципе не должно быть. Но, как говорится, сидим у берега реки и смотрим: когда же мимо проплывет труп врага. Мы просто делаем свое дело.
Российское сообщество Postgres
Это самое организованное сообщество в России, я больше таких не встречал. Очень много ресурсов, чатов, где мы все общаемся по делу. Мы проводим конференции — две большие конференции: в Санкт-Петербурге и в Москве, квартирники, мы участвуем во всех крупных международных конференциях, проводим курсы.
Фактически это курсы сообщества. Их подготовила наша компания, но они свободно доступны любому из вас, смотрите на youtube наш канал или зайдите на наш сайт в раздел «Образование», там для свободного скачивания лежат курсы DBA1, DBA2, DBA3, девелоперские курсы.
А сейчас мы запускаем сертификацию — это то, что просят компании, они хотят иметь сертифицированных специалистов. И работодатель будет знать: вы сертифицированный специалист.
Очень часто спрашивают: а насколько Postgres российский? Вопрос немного неправильно поставлен: Postgres — международный. Но о российском флаге я немного скажу. Вы видите на слайде, что сделал Вадим Михеев. Тем, кто знает Postgres, понятно, что для этой базы значат MVCC, WAL, VACUUM и так далее. Это всё российский вклад. Сейчас ведущих разработчиков Postgres трое, из них двое — коммиттеры. На слайде вы видите, что сделано довольно много. Если смотреть мажорные фичи из release notes, то вы увидите наш вклад. Российский вклад есть и достаточно существенный. Мы работали с самого начала и продолжаем работать с сообществом — уже на уровне кампании.
А еще вклад компании — это книжки. У нас имеются 2 университетских курса по Postgres. Вы можете пойти в магазин и эти книжки купить, вы можете преподавать по этим курсам, сдавать экзамены и так далее. У нас имеются книжки для начинающих, которые раздаются, в том числе здесь. Очень полезная хорошая книжка. Мы ее даже перевели на английский язык.
Профессиональный Postgres
Перейдем к основному. Академический Postgres, когда он начинался, был рассчитан на несколько десятков пользователей. Комьюнити Postgres95 было меньше 400 человек. Cообщество состояло в основном из разработчиков и было еще немного пользователей. При этом — интересная деталь — разработчики были, в основном, и заказчиками, и исполнителями. Например, когда мне это было нужно, я разрабатывал для себя и, одновременно, делился со всеми. То есть комьюнити разрабатывало для комьюнити.
Начиная с 2000-го года, чуть раньше, начали появляться первые постгресовые компании: GreatBridge, 2ndQuadrant, EDB. Они уже нанимали full-time разработчиков, которые работали на сообщество. Появились первые энтерпрайзные форки и первые энтерпрайзные кастомеры. Привело это к тому, что к 2015-му году основное количество — да практически все ведущие разработчики — уже были организованы в какие-то компании. В 2015-м году образовалась наша компания: мы были последними свободными фрилансерами-разработчиками. Сейчас таких практически не осталось. Постгресовое сообщество изменилась, стало энтерпрайзным, и теперь уже эти компании драйвят разработку. Это хорошо потому, что эти компании проводят то, что необходимо энтерпрайзу. Сообщество является тормозом в хорошем смысле: оно тестирует фичи, осуждает или принимает новые фичи, оно объединяет всех нас. А Postgres стал enterprise ready, его с удовольствием используют большие компании, он стал профессиональным.
Этот слайд про будущее, как я его вижу. С появлением pluggable storage будут появляться новые хранилища: append-only, read-only, column storage — что хотите (я вот, например, мечтаю о паркетном). Будет поддержка векторных операций. Сегодня, кстати, будет доклад про них. Будет поддерживаться блокчейн. Никуда от этого не деться, раз мы переходим на цифровую экономику, на безбумажные технологии. Нужно будет использовать электронные подписи и нужно будет уметь удостоверять вашу базу данных, убеждаться, что никто ничего не подменил, и блокчейн для этого очень хорошо подходит.
Дальше: адаптивный Postgres. Это немного грустная для вас тема, но она еще довольно далека от вас. Дело в том, что DBA, вообще говоря, достаточно дорогой ресурс, и скоро базы данных не будут нуждаться в них. Базы будут достаточно умными и сами себя будут конфигурировать и подстраивать. Но это будет еще лет через десять, наверное. У нас еще много времени.
И понятно, что в Postgres будет нативная поддержка клаудов, облачных хранилищ — без этого нам просто не выжить. И, конечно, вот он, последний слайд:
ВСЁ, ЧТО ВАМ НАДО, ЭТО — POSTGRES!
Спасибо за внимание.
PSQL-Base. Основы языка SQL PostgreSQL
Уровень сложности:
Длительность курса: 40 ак.ч.
График обучения: 5 дней по 8 .ак.ч.
Аннотация
Этот курс предназначен для специалистов, которым необходимо получение фундаментальных знаний по программированию на языке SQL и особенностями его использования в СУБД PostgreSQL. А также знакомство с возможностями процедурного языка PL/pgSQL для разработки структурных блоков.
Курс фокусируется на изучении синтаксиса языка программирования для решения следующих задач: извлечения информации из баз данных, манипулирования данными, просмотра метаданных, работы с массивами и конструкторами строк. Полученные знания сразу же применяются на практике для решения повседневных задач при работе с базами данных: извлечения информации, манипулирования данными, создания и управления объектами.
Учебные материалы курса на русском языке.
Знания и умения, полученные в результате обучения
После изучения этого курса, вы будете:
знать:
- принципы организации СУБД PostgreSQL;
- теоретические основы средств манипулирования данными в реляционной модели PostgreSQL;
- факторы, влияющие на производительность выполнения запросов.
уметь:
- осуществлять выборку, обновление или удаление данных одной или нескольких связанных таблиц;
- создавать сводные результирующие наборы и группировки;
- использовать подзапросы и табличные выражения;
- использовать встроенные функции SQL;
- получать информацию об объектах базы данных с помощью системных представлений и функций;
- просматривать информацию о производительности выполнения запросов.
владеть:
- навыками использования языка SQL для работы с базами данных;
- навыками работы в среде разработки pgAdmin III;
- методиками выявления узких мест производительности.
Полезные Интернет-ссылки
Официальная страница PostrgeSQL доступна здесь
Курсы связанных направлений
20 000 ₽
Расчёт стоимости с учётом возможных скидок
24 400 ₽
Скидки предоставляются в зависимости от количества слушателей,
суммы договора и других условий, оговариваемых с Заказчиком.
17 750 ₽
Скидки не предусмотрены
Расчёт стоимости с учётом возможных скидок представлен как справочная информация.
Фактический размер скидки может несколько отличаться из-за округления значения суммы.
Внимательно ознакомьтесь с условиями действующих
акций и скидок…
- Навыки работы с операционной системы семейства Windows/Linux;
- Навыки работы с реляционными базами данных.
1. Введение PostgreSQL
- Введение PostgreSQL и инструменты администрирования.
- Основы SQL.
Лабораторная работа: Работа с утилитами PostgreSQL.
2. Извлечение данных с использованием SQL оператора SELECT.
- Создание простых запросов без использования фильтрации.
- Удаление дубликатов записей и работа с Null-значениями.
Лабораторная работа: Написание простых SELECT запросов.
3. Типы данных.
- Знакомство с основными типами данных.
- Особенности работы с данными разного типа. Псевдо-типы.
Лабораторная работа: Работа с типами данных PostgreSQL.
4. Фильтрация и сортировка результирующих наборов.
- Фильтрация данных с использованием предложения WHERE.
- Сортировка результирующего набора записей.
Лабораторная работа: Сортировка и фильтрация данных.
5. Использование встроенных функций.
- Обзор встроенных функций.
- Использование базовых встроенных функций.
Лабораторная работа: Использование встроенных функций.
6. Выборка данных из нескольких таблиц.
- Обзор основных типов объединений.
- Написание запросов с использованием различных типов объединений.
Лабораторная работа: Написание многотабличных запросов.
7. Группировка и агрегирование данных.
- Группировка данных.
- Агрегирование данных.
- Фильтрация групп.
Лабораторная работа: Группировка и агрегирование данных.
8. Подзапросы.
- Назначение и типы подзапросов.
- Написание автономных вложенных подзапросов.
- Коррелированные подзапросы. Использование предиката EXISTS в подзапросах.
Лабораторная работа: Использование подзапросов.
9. Использование операторов наборов записей.
- Объединение результирующих наборов записей.
- Написание запросов с использованием INTERSECT и EXCEPT.
- Общие табличные выражения (CTE) и использование представлений.
Лабораторная работа: Использование операторов наборов строк.
10. Использование оконных функций.
- Обзор оконных функций.
- Написание запросов с использованием оконных функций.
Лабораторная работа: Использование оконных функций.
11. Массивы и конструкторы строк.
- Использование массивов.
- Использование конструкторов строк.
Лабораторная работа: Использование массивов.
12. Манипулирование данными.
- Добавление данных в таблицу.
- Изменение и удаление существующих записей.
Лабораторная работа: Написание запросов для модификации данных.
13. Управление транзакциями.
- Правила ACID, понятие транзакции.
- Управление транзакциями.
Лабораторная работа: Использование транзакций.
14. Элементы программирования.
- Понятие процедурного языка. Использование PL/pgSQL.
- Основные управляющие конструкции. Обработка исключений.
Лабораторная работа: Работа с функциями PL/pgSQL.
15. Работа с метаданными.
- Использование представлений системного каталога, системных таблиц и функций.
Лабораторная работа: Запросы к метаданным.
16. Вопросы производительности запросов.
- Общие рекомендации по написанию производительных запросов.
- Использование оператора Explain.
Лабораторная работа: Написание производительных запросов.
СУБД Postgres Pro
Сведения о правообладателях программного обеспечения
российская коммерческая организация
Название организации
Сведения об исключительном праве
Собственная разработка на основе свободно-распространяемой СУБД PostgreSQL.
Лицензия PostgreSQL не ограничивает доработку и распространение, включая коммерческое, наследованных от нее систем.
В компании Постгрес Профессиональный работают все российские разработчики уровня major contributor и commiter.
Значительная часть используемой во всем мире СУБД PostgreSQL была разработана сотрудниками компании Постгрес Профессиональный в течение предыдущих 20 лет работы над проектом.
Свидетельство о государственной регистрации программы для ЭВМ № 2019661679 от 05.09.2019
Альтернативные наименования:
PostgreSQL
Postgres
Postgres Pro Enterprise
Postgres Pro Standard
Postgres Pro Certified
Postgres Pro Enterprise (сертифицированная версия)
Postgres Pro Enterprise для 1С
Postgres Pro Enterprise для 1С (сертифицированная версия)
Postgres Pro Adaptive Cloud
Postgres Pro AC
Postgres Pro AC Enterprise
Postgres Pro AC Enterprise для 1С
Postgres Pro AC Standard
Класс ПО:
Системы управления базами данных
Дата регистрации:
18 Марта 2016
Рег. номер ПО:
104
Дата решения уполномоченного органа:
18 Марта 2016
Решение уполномоченного органа:
Приказ Минкомсвязи России от 18.03.2016 №112
Ссылка на приказ Минкомсвязи:
Приказ
консольная утилита для работы с PostgreSQL — PostgreSQL Cook Book
Стань power user’ом PSQL!
Вывод peзультатов запроса не в строку, а столбцом
Ключ \x
Покажу на примере, как это выглядит (это очень хорошо работает на запросах со множеством столбцов и «узким» экраном)
denis=# select * from pg_stat_activity; datid | datname | procpid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | xact_start | query_start | waiting | current_query --------+---------+---------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+------------------------------+------------------------------+---------+--------------------------------- 629830 | denis | 13205 | 629829 | denis | psql | | | -1 | 2012-11-10 11:57:05.634017+06 | 2012-11-10 11:59:11.27402+06 | 2012-11-10 11:59:11.27402+06 | f | select * from pg_stat_activity; (1 row) -- Включаю альтернативный режим отображения результатов запроса denis=# \x Expanded display is on. denis=# select * from pg_stat_activity; -[ RECORD 1 ]----+-------------------------------- datid | 629830 datname | denis procpid | 20187 usesysid | 629829 usename | denis application_name | psql client_addr | client_hostname | client_port | -1 backend_start | 2012-11-07 23:29:00.264029+06 xact_start | 2012-11-07 23:29:47. 653051+06 query_start | 2012-11-07 23:29:47.653051+06 waiting | f current_query | select * from pg_stat_activity;
Выход в шел без прерывания сессии работы с базой данных
Ключ \!
denis=# \! denis@server:~$ ls -l total 126172 drwxr-xr-x 2 denis denis 4096 Oct 21 10:28 Desktop drwxr-xr-x 3 denis denis 4096 Nov 5 10:03 Documents drwxr-xr-x 14 denis denis 12288 Nov 7 16:45 Downloads drwx------ 11 denis denis 4096 Nov 7 08:19 Dropbox drwxr-xr-x 19 denis denis 4096 Sep 30 23:03 Music drwxr-xr-x 3 denis denis 4096 Oct 9 12:44 Pictures drwxrwxr-x 11 denis denis 4096 Nov 3 17:27 Projects drwxr-xr-x 2 denis denis 4096 Sep 26 20:03 Public drwxrwxr-x 2 denis denis 4096 Sep 27 10:17 Snapshots drwxr-xr-x 2 denis denis 4096 Sep 26 20:03 Templates denis@server:~$ exit exit denis=# \q denis@server: ~$
Редактирование запросов во внешнем редакторе
Многострочные запросы очень неудобно редактировать в стандартной строке psql.
Но есть возможность редактировать запросы во внешнем редакторе.
Ключ \e
При вводе ключа \e запускается внешний редактор, в котором уже содержится последний запрос, который был введен в psql.
Запрос можно отредактировать или ввести новый, сохранить файл и выйти из редактора. Если в конце запроса стоит точка с запятой,
то запрос будет выполнен сразу после закрытия редактора. В противном случае, чтобы запрос выполнился, надо будет ввести точку
с запятой уже в psql и нажать ENTER.
За то, какой редактор вызывается, отвечает переменная окружения PSQL_EDITOR, которую можно настроить на vim:
Прокрутка результата выполнения запроса вперед/назад
Довольно часто в дистрибутивах linux в качестве программы для постраничного вывода результатов выполнения запросов используется
программа more, которую не всегда удобно использовать для интерактивной работы с результатом запроса (производить поиск,
прокручивать результат запрос вверх/вниз, выводить результат запроса с использованием переноса строк).
Выход есть! Можно заменить more на less, которая позволяет интерактивно работать с результатом запроса.
Для этого необходимо установить следующие переменные окружения:
export PAGER="less" export LESS="-iMSx4 -FX"
Помимо всего вышеперечисленного опция S отключает перенос длинных строк, что улучшает читабельность результата запроса.
Примечание
Есть неприятная особенность работы с less, если приходится прокручивать результат запроса вправо/влево — в этом случае,
генерируется много пустых экранов, которые занимают много места вверху терминала (опция X). Однако часто эта небольшая неприятность
перекрывается остальными преимуществами less
Включить/отключить постраничный вывод результата запроса можно опцией
Время выполнения запроса
Вывод времени выполнения запрос выключается опцией \timing
denis=# \timing Timing is on. denis=# select 1; ?column? ---------- 1 (1 row) Time: 0.280 ms
Редактирование хранимой процедуры
Иногда нужно быстро отредактировать текст хранимой процедуры, но нет возможности воспользоваться привычной программой для этого.
psql же практически всегда доступен и отредактировать процедуру можно им.
Для этого служит опция \ef <procedure name>
При использовании этой опции запускается редактор, указанный в переменной окружения PSQL_EDITOR
Сохранения результатов запросов в файл
Ключ \copy позволяет импортировать целые таблицы или результаты запросов в файлы и экспортировать данных из файлов в таблицы.
Это бывает полезно, если надо переместить данные какой-то таблицы между базами данных.
Пример:
Есть таблица customers (id int4, first_name varchar(64), last_name varchar(64)).
Её нужно перенести в другую базу данных в таблицу temp_customers
Сохраняю содержимое таблицы в файл customers.dump:
db1# \copy customers to 'customers.dump'
Загружаю содержимое файла в другую таблицу:
db2# \copy temp_customers from 'customers.dump'
Примечание
Важно, чтобы таблицы, которые участвуют в переносе, имели одинаковую структуру
Поиск по прошлым запросам
Поиск по запросам под OS linux работает аналогично поиску в BASH’е. Находясь в консоле, надо нажать CTRL+R
Появляется приглашение ввести буквы, по которым будет производиться поиск
denis=# (reverse-i-search)`':
По мере ввода букв уточняется запрос, который вы ищите.
denis=# (reverse-i-search)`dr': drop sequence eobjects_objects_15_id_seq;
Дополнительные горячие клавиши для управления режимом поиска
- ENTER — выполнение найденного запрос
- ESC — переход в режим редактирования найденного запроса
- CTRL+R — циклический перебор sql-запросов, которые соответствуют введенной строке поиска
- CTRL+G — закрытие режима поиска без выполнения запроса
Машина баз данных Скала-СР / Postgres Pro
Программно-аппаратный комплекс Скала-СР / Postgres Pro – машина баз данных, разработанная специально для высоконагруженных СУБД.
Специальная архитектура ПАК Скала-СР / Postgres Pro позволяет максимально задействовать возможности аппаратных систем для эффективного функционирования кластерной реляционной СУБД.
ПАК создан совместно с разработчиком свободной СУБД PostgreSQL – российской компанией Postgres Professional и является первым в России высоконадежным серийным программно-аппаратным комплексом с предустановленной, протестированной и преднастроенной системой управления базами данных на основе PostgreSQL.
Преимущества ПАК Скала-СР/ Postgres Pro по сравнению с наиболее популярными машинами баз данных
- Промышленное решение
Программно-аппаратный комплекс является готовым, преднастроенным, протестированным решением и создан из эффективных, надежных компонентов с внушительной инсталляционной базой. - Экономичность
Технологии и продукты в составе ПАК Скала-СР / Postgres Pro не требуют дорогостоящего программного обеспечения или оборудования, позволяя снизить совокупную стоимость владения. - Отказоустойчивость
Решение представляет собой многоузловой кластер, благодаря чему достигается высокий уровень отказоустойчивости. - Мониторинг и управление
В состав ПАК Скала-СР / Postgres Pro входит система мониторинга IBS Мониторинг – разработка компании IBS.
Состав решения
- ПО Postgres Professional
Специализированная версия СУБД на базе PostgreSQL, разработанная для аппаратной платформы Скала-СР. - ПО IBS Мониторинг
Унифицированное решение для мониторинга всех продуктов семейства Скала. - Высокопроизводительные серверы DEPO Computers.
Техническая поддержка и SLA
ПАК Скала-СР / Postgres Pro обеспечивается единой гарантийной и технической поддержкой от компании IBS.
Стандартные условия гарантии включают ответ на запросы не позднее следующего бизнес-дня и гарантийный ремонт оборудования на территории заказчика. Также доступна дополнительная опция поддержки и гарантийного обслуживания в течение 6 часов и без возврата жестких дисков.
Постоянный доступ к технической поддержке компаний-партнеров и возможность эскалации задач инженерам и разработчикам отдельных компонентов платформы обеспечивают бескомпромиссное качество и высокую скорость поддержки клиентов IBS.
СУБД компании Postgres Professional представляет собой улучшенную версию PostgreSQL и включена в единый реестр отечественного ПО в числе первых продуктов.
Крупнейшие российские пользователи PostgreSQL: Система межведомственного электронного взаимодействия (СМЭВ), Правительство Московской области, Минобороны РФ, ФСБ РФ, а также компании Яндекс, Авито, Рамблер, Манго Телеком, МИА «Россия Сегодня». О намерениях миграции на PostgreSQL заявили компании Ростелеком, Роснефть, ВТБ, РЖД. За рубежом PostgreSQL используют компании Skype, Instagram, MasterCard, Huawei, Sony, Hitachi, Tripadvisor, Федеральная резервная система США, ВМФ США, государственные органы Франции, структуры Европейского союза и другие частные и государственные организации.
Мы стали официальными партнерами Postgres Professional
Все новости
Мы стали официальными партнерами Postgres Professional
Наша компания стала партнерами Компании «Postgres Professional».
Postgres Professional – российская компания, созданная в 2015 году неравнодушными к развитию национальных компетенций в области СУБД разработчиками, трое из которых обладают международным статусом major contributor в проекте PostgreSQL. Система управления базами данных PostgreSQL с открытым кодом и свободной лицензией поддерживается международным сообществом разработчиков более 20 лет.
Возможность создавать на основе PostgreSQL собственные программные продукты, надежность, безопасность и производительность данной СУБД, а также наличие в команде Postgres Professional ключевых разработчиков позволили предложить российскому рынку квалифицированную техническую поддержку пользователей PostgreSQL, помощь в миграции с проприетарных СУБД, перевод документации проекта на русский язык, обучающие курсы, учебные пособия, технические конференции и семинары. Но самое главное – разработать на основе PostgreSQL СУБД Postgres Pro, включенную в реестр российского программного обеспечения.
В интересах поддержки информационных систем, работающих с персональными данными, в конце 2016 года версия СУБД Postgres Pro 9.5.2.1 была сертифицирована по требованиям ФСТЭК России (номер 3637 в реестре). Для крупных предприятий, которым не хватает потенциала обычной PostgreSQL в силу высокой нагрузки, больших объемов данных и высоких эксплуатационных требований, компания Postgres Professional разработала Postgres Pro Enterpriseс расширенными возможностями, включающими компрессию данных на уровне блоков, адаптивное планирование запросов и поддержку распределенных транзакций.
Postgres Professional — член АРПП «Отечественный софт». Консорциум во главе с Postgres Professional занял первое место в конкурсе ИТ-проектов Минкомсвязи России в номинации «Системы управления базами данных» (СУБД). В мае 2016 г. компания вошла в десятку будущих лидеров ИТ-рынка России по версии портала TAdviser. В феврале 2017 г. был заключен партнерский договор с компанией «1С», целью которого является интеграция возможностей PostgreSQL в продукты 1С.
Установка PostgreSQL CentOS 7 | Losst
Хочу порекомендовать VPS хостинг от профессионалов с самой лучшей технической поддержкой, на котором работает этот веб-сайт. У них есть VPS и выделеные серверы под любые нужды. Регистрируйтесь и получите скидку 25% на первый платеж для любого SSD VPS при оплате на один, три или шесть месяцев.
Postgresql — это объектно-реляционная база данных с высокой степенью масштабируемости и SQL совместимым синтаксисом и открытым исходным кодом. Она разрабатывается в калифорнийском университете Беркли. В последнее время PostgreSQL, благодаря своим преимуществам набирает большую популярность наряду с везде используемой mysql.
Вы можете узнать чем отличаются mysql и postgresql в отдельной статье, а сегодня мы рассмотрим как установить Postgresql CentOS 7, а также как выполнить минимальную настройку базы данных для подготовки ее к использованию.
Содержание статьи:
Установка Postgresql CentOS
Самый первый шаг заключается в установке программы в вашу систему. Как я уже говорил, база данных довольно популярна, поэтому она есть в официальных репозиториях. Но если вы хотите получить самую свежую версию, то нужно добавить официальный репозиторий:
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
В CentOS 6 команда будет выглядеть вот так:
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-6-x86_64/pgdg-redhat95-9.5-2.noarch.rpm
После того как репозиторий будет добавлен к вашей системе вы можете перейти к установке программы. На данный момент последняя версия Postgresql 9.6. Именно для нее мы добавили репозиторий. Возможно, для более новых версий вам придется посетить сайт и посмотреть не появилась ли новая версия. Установка Postgresql CentOS 7 версии 9.6 выполняется командой:
sudo yum install postgresql96-server postgresql96
Сразу после установки Postgresql сервер еще не готов к использованию, нужно инициализировать необходимые базы данных. Для этого выполните:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
Команде потребуется некоторое время для начальной инициализации. После ее завершения в переменной PGDATA будет сохранен путь к папке с базами данных. В моем случае это /var/lib/pgsql/9.5/data/.
Дальше запускаем сервер баз данных и добавляем его в автозагрузку:
sudo systemctl start postgresql-9.6
$ sudo systemctl enable postgresql-9.6
Настройка Postgresql CentOS 7
Теперь сервер баз данных Postgresql установлен и запущен. Нам осталось проверить как все работает, настроить пользователей и свою первую базу данных. Настройка Postgresql CentOS 7 изначально выполняется только от пользователя postgres поэтому переключаемся на этого пользователя с помощью команды su:
sudo su - postgres
Команда выполняется от имени администратора, потому что иначе у вас спросят пароль, а вы его не знаете. Для доступа к консоли Postgresql будем применять команду psql:
psql
Смотрим информацию о подключении:
\conninfo
Первое что здесь можно сделать, это создать пароль для postgres:
\password postgres
Дальше закройте оболочку командой:
\quit
Пользователь postgres — это аналог суперпользователя для Postgresql. Но не всегда безопасно использовать вход от имени суперпользователя. Нам нужно создать обычного пользователя, который может только управлять базами данных. Для этого выполните в консоли от имени postgres:
createuser --interactive
Дальше нужно ввести имя роли и ответить на несколько вопросов, а также повторить процедуру задания пароля как для postgres. Чтобы вы могли использовать postgresql через терминал от имени этого пользователя добавьте пользователя UNIX:
sudo adduser user
Нам осталось только создать новую базу данных:
createdb test1
Теперь у вас есть все необходимое для полноценной работы с программой.
Установка Phppgadmin CentOS 7
Не очень удобно работать с консольным интерфейсом управления базами данных. Иногда нужно просто и быстро добавить базу данных или создать пользователя. Для этого можно использовать веб-интерфейс phppgadmin. Для установки программы выполните:
sudo yum install phpPgAdmin
Также нужно, чтобы на вашей машине был установлен и запущен веб-сервер Apache. Чтобы перезапустить Apache выполните:
sudo systemctl restart httpd
После завершения установки вы сможете открыть адрес phpPgAdmin в браузере. Только обратите внимание на регистр букв, его нужно сохранять как при установке пакета, так и в браузере:
http://localhost/phpPgAdmin
Выводы
В этой статье мы рассмотрели как выполняется установка Postgresql CentOS 7. Как видите, здесь нет ничего очень сложного. Postgresql имеет некоторые особенности, например, авторизация пользователя в системе для управления базой данных. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение видео о про преимущества Postgresql:
Оцените статью:
Загрузка…
Psql
Твитнуть
Что такое psql
Psql — интерактивный терминал для работы с Postgres. Существует множество флагов, доступных для использования при работе с psql, но давайте сосредоточимся на некоторых из наиболее важных, а затем на том, как подключиться:
Другой вариант — использовать полную строку и позволить psql проанализировать ее:
psql "dbname = dbhere host = hosthere user = userhere password = pwhere port = 5432 sslmode = require"
После подключения вы можете сразу же приступить к выполнению запросов.В дополнение к основным запросам вы также можете использовать определенные команды. Бег \? предоставит вам список всех доступных команд, хотя некоторые из них перечислены ниже.
Часто используемые команды
Включить время запроса
По умолчанию время результатов запроса недоступно, но мы можем включить его с помощью следующей команды.
Это покажет время запроса в миллисекундах.
Список таблиц в базе данных
# \ d
Список отношений
Схема | Имя | Тип | Владелец
-------- + ----------- + ------- + -------
общественный | сотрудники | стол | Craig
(1 ряд)
Описать стол
# \ d сотрудников
Таблица "паблик".сотрудники"
Колонка | Тип | Модификаторы
----------- + ----------------------- + -----------
id | целое |
last_name | различный характер (50) |
зарплата | целое |
Индексы:
"idx_emps" btree (зарплата)
Список всех таблиц в базе данных вместе с некоторой дополнительной информацией
# \ d +
Список отношений
Схема | Имя | Тип | Владелец | Размер | Описание
------- + ------- + ------- + ----------- + -------- + ----- --------
общественный | пользователи | стол | Джарвис | 401 МБ |
(1 ряд)
Опишите таблицу с дополнительной информацией
# \ d + пользователей
Таблица "паблик".пользователи "
Колонка | Тип | Модификаторы | Хранение | Целевая статистика | Описание
----------- + --------- + --------------- + ---------- + - ------------- + -------------
идентификатор пользователя | bigint | не нуль | равнина | |
полное имя | текст | не нуль | расширенный | |
электронная почта | текст | не нуль | расширенный | |
телефон | текст | не нуль | расширенный | |
кредиты | деньги | по умолчанию 0,0 | равнина | |
припаркованный | логическое | по умолчанию false | равнина | |
прекращено | логическое | по умолчанию false | равнина | |
Индексы:
"users_pkey" ПЕРВИЧНЫЙ КЛЮЧ, btree (идентификатор пользователя)
Список всех баз данных
# \ l
Список баз данных
Имя | Владелец | Кодирование | Разобрать по копиям | Ctype | Права доступа
--------- + ----------- + ---------- + --------- + ------- + -----------------------------
обучение | Джарвис | UTF8 | C | UTF-8 |
Список всех баз данных с дополнительной информацией
# \ l +
Список баз данных
Имя | Владелец | Кодирование | Разобрать по копиям | Ctype | Права доступа | Размер | Табличное пространство | Описание
---------- + ----------- + ---------- + --------- + ------ - + ----------------------------- + --------- + -------- ---- + --------------------------------------------
обучение | Джарвис | UTF8 | C | UTF-8 | | 492 МБ | pg_default |
Показать все схемы
# \ dn
Список схем
Имя | Владелец
------- + --------
общественный | Джарвис
(1 ряд)
Список всех схем с дополнительной информацией
# \ dn +
Список схем
Имя | Владелец | Права доступа | Описание
------- + -------- + ------------------- + ------------- -----------
общественный | Джарвис | jarvis = UC / jarvis + | стандартная общедоступная схема
| | = UC / jarvis |
(1 ряд)
Список всех функций
Список всех функций с дополнительной информацией
Подключиться к другой базе данных
Выход из оболочки postgres
Текстовый редактор внутри psql
Это открывает ваш текстовый редактор по умолчанию в оболочке psql.Очень удобно для модификации запросов.
Команды могут иметь регулярное выражение, например. \ df * to_array * перечисляет все функции, которые содержат to_array в своем имени.
Конечно, есть много других команд, о которых говорилось выше \? перечислит их все, и оттуда мы сможем выбрать все, что захотим. Psql — мощный инструмент, когда мы его освоим, и, поскольку это командная строка, мы можем использовать его в разных средах.
Подключение PostgreSQL с использованием psql и pgAdmin
РЕЗЮМЕ: В этой статье объясняется, как подключиться к базе данных PostgreSQL с помощью терминала или командной строки и инструмента подключения pgAdmin.Рассмотрены различия в подключениях в трех основных операционных системах.
- Подключение к PostgreSQL с помощью psql
- Расположение psql
- В Linux
- в Windows
- на Mac
- Подключение с помощью psql
- Подключение к PostgreSQL с помощью pgAdmin 4
- Запуск pgAdmin 4
- Соединение с pgAdmin 4
Это статья из двух частей для новичков, которые установили самую продвинутую базу данных с открытым исходным кодом, PostgreSQL, и теперь хотят подключиться к ней.Поскольку терминал / командная строка и pgAdmin являются наиболее предпочтительными способами подключения к PostgreSQL, я объясню основы использования обеих методологий.
Здесь я предлагаю отдельные шаги для пользователей разных операционных систем, где это необходимо; в случаях, когда операционная система не указана, шаги можно рассматривать как универсальный подход, и они действительны для любой операционной системы, которую вы используете.
Итак, давайте сделаем наши первые шаги и подключимся к PostgreSQL.
Подключение PostgreSQL с помощью psql
Поскольку вы, вероятно, впервые пытаетесь подключиться к установленной вами базе данных PostgreSQL, мы рассмотрим некоторые из возможных сценариев, с которыми вы можете столкнуться, чтобы вы могли начать работу в кратчайшие сроки.
а. Расположение psql:
PostgreSQL поддерживается на трех основных платформах. Чтобы подключиться с помощью psql, вам сначала нужно определить его местоположение в операционной системе, которую вы можете использовать:
и. В Linux:
Самый простой способ подключиться — это проверить, есть ли у вас psql в переменных среды. Вы можете попробовать следующую команду на терминале:
[root @ localhost data] # какие psql / usr / bin / psql
Это дает вам путь, а также, поскольку ОС знает местоположение, вам не нужно будет его искать.Однако, если возникнет ошибка, вы можете найти утилиту psql, выполнив поиск файла с помощью следующей команды в терминале:
[root @ localhost /] # find / -name psql / usr / edb / as11 / bin / psql
ii. В Windows:
В Windows вы можете найти psql в Program Files, и вы сможете запустить его из командной строки, просто щелкнув по нему.
iii. На Mac:
На Mac вы сможете найти psql в разделе «Приложения»> «PostgreSQL» (номер версии)> «SQL Shell» (psql).
г. Подключение psql:
Теперь, когда мы нашли psql, нам нужно понять, что ему требуется для подключения к базе данных. Основные параметры на любой из платформ следующие:
Сервер [localhost]:
Это адрес сервера. Вы можете использовать IP-адрес или имя хоста компьютера, на котором работает сервер базы данных. Если вы не укажете никакого значения, по умолчанию это localhost.
База данных [postgres]:
Имя базы данных, к которой вы хотите подключиться.Имя базы данных по умолчанию такое же, как у пользователя. (Если вы используете Advanced Server, имя по умолчанию будет edb.)
Порт [5432]:
Это порт, на котором вы настроили свой экземпляр при установке или инициализации. Порт по умолчанию — 5432. (Если вы используете Advanced Server, это будет 5444.)
Имя пользователя [postgres]:
Это имя пользователя, которое создается во время установки. Имя пользователя по умолчанию для postgres — postgres.(Если вы используете Advanced Server, это предприятиеb.)
На Mac или Windows вы можете подключиться к экземпляру по умолчанию, просто нажав Enter в оболочке или командной строке при попытке запустить psql и введя пароль.
В Linux вам необходимо явно передать эти параметры в оболочке:
Для PostgreSQL: -bash-4.2 $ psql -d postgres -U postgres
Для расширенного сервера: -bash-4.2 $ psql -d edb -U enterpriseisedb
При подключении к удаленному серверу из любой из операционных систем вы можете передать определенные параметры в следующем формате:
баш-4.2 $ psql -h <имя хоста или IP-адрес> -p <номер порта удаленной машины> -d <имя базы данных, к которой вы хотите подключиться> -U <имя пользователя сервера базы данных>
Подключение PostgreSQL с помощью pgAdmin 4
pgAdmin — это клиент сообщества для использования PostgreSQL. Его можно загрузить с веб-сайта pgAdmin (https://www.pgadmin.org/download/).
Запуск pgAdmin
Запустить pgAdmin очень просто. Он доступен в соответствующем приложении или папке программ для операционной системы, которую вы можете использовать.
1. В Linux pgAdmin доступен в разделе «Программирование» в меню «Приложения»:
2. На Mac он доступен в папке Applications как приложение:
3. В Windows он доступен в разделе Program Files:
Подключение PostgreSQL с помощью pgAdmin 4
pgAdmin 4 — это веб-приложение, работающее как клиент на основе браузера для PostgreSQL. Интерфейс очень удобный, и большинство параметров видны сразу.Для входа в клиент pgAdmin необходимо установить мастер-пароль при первом запуске.
После входа в клиент pgAdmin вы можете подключиться к серверам баз данных, используя опцию Create Server:
В первом окне вам нужно только указать идентифицируемое имя для сервера. Детали подключения для этого сервера находятся на вкладке подключения ниже:
После того, как вы ввели необходимые данные, вы можете нажать «Сохранить», и это добавит имя в список серверов на левой вкладке:
Теперь вы готовы подключиться к серверу, дважды щелкнув имя сервера в разделе «Серверы» (1) и введя свой пароль:
После того, как вы предоставите учетные данные сервера, вам будет представлено дерево серверов и панель инструментов:
У вас должна быть возможность выбрать любой из параметров на вкладках над панелью управления, чтобы продолжить.
404 | Микро Фокус
Профессиональные услуги
Сформируйте свою стратегию и преобразуйте гибридную ИТ-среду.
Помогите вам внедрить безопасность в цепочку создания стоимости ИТ и наладить сотрудничество между ИТ-подразделениями, приложениями и службами безопасности.
Помогите вам быстрее реагировать и получить конкурентное преимущество благодаря гибкости предприятия.
Ускорьте получение результатов гибридного облака с помощью услуг по консультированию, трансформации и внедрению.
Службы управления приложениями, которые позволяют поручить управление решениями экспертам, разбирающимся в вашей среде.
Услуги стратегического консалтинга для разработки вашей программы цифровой трансформации.
Полнофункциональное моделирование сценариев использования с предварительно созданными интеграциями по всему портфелю программного обеспечения Micro Focus Software, демонстрирующее реальный сценарий использования
Услуги экспертной аналитики безопасности, которые помогут вам быстро спроектировать, развернуть и проверить реализацию технологии безопасности Micro Focus.
Служба интеграции и управления услугами, которая оптимизирует доставку, гарантии и управление в условиях нескольких поставщиков.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Мобильные услуги, которые обеспечивают производительность и ускоряют вывод продукта на рынок без ущерба для качества.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Комплексные услуги по работе с большими данными для продвижения вашего предприятия.
советов и приемов psql — pgDash
psql
— это почтенный интерактивный инструмент командной строки, который поставляется вместе с
PostgreSQL, который позволяет подключаться к серверам Postgres и выполнять запросы SQL и
более.
Прочтите несколько советов и приемов, которые сделают ваши сеансы psql более интересными.
продуктивный.
Время печати запросов
Вы можете попросить psql вывести время, затраченное на выполнение каждой команды или запроса,
используя \ Timing
.
Визуально представляют NULL
По умолчанию невозможно отличить NULL от пустой строки.
в выводе psql. Используйте \ pset null str
, чтобы использовать «str» везде, где NULL
показано.
Повторно выполнить запрос
Вы можете повторно выполнять запрос каждые N секунд, используя команду \ watch N
.
Он будет повторно выполнять последний запрос запуска.
Столы в стиле фанк
Надоели старые простые таблицы в результатах запроса psql? Попробуйте это:
Сохранить результаты запроса как CSV
Сохраните результаты любого запроса как CSV в локальный файл с помощью команды \ copy
.
Справочник по встроенному синтаксису
psql поставляется со встроенным кратким справочником по синтаксису для всех команд SQL.Использовать
\ h
для доступа к нему. Чтобы увидеть синтаксис, скажем, «создать таблицу», используйте
\ ч создать таблицу
.
Команда редактирования в редакторе
Используйте команду \ e
, чтобы отредактировать последнюю команду, которую вы выполнили в своем $ EDITOR
.
Вы можете отредактировать команду, сохранить ее и выйти из редактора, чтобы psql выполнил
команда.
и многое другое ..
- Поддержка Readline : используйте Ctrl + R для вызова команд, стрелки вверх / вниз для прокрутки
через историю и Tab для завершения ключевых слов, как в bash. - История команд : просмотр истории команд с помощью команды
\ s
. Вы можете
также сохраните весь список в файл с путем\ s / to / file
. - Сохраните свои настройки : Вы можете видеть свои необычные границы каждый раз, используя
создание файла с именем.psqlrc
в вашем$ HOME
. psql прочитает содержимое
этого файла и выполните их как команды psql перед отображением интерактивной подсказки. - Внутренние запросы : psql выполняет внутренние запросы SQL для получения вывода
показано в\ dg
и т. д.Чтобы увидеть эти запросы, используйте\ set ECHO_HIDDEN
. - Изменить пароль : изменить пароль пользователя PostgreSQL, используя
\ пароль
команда. Если вы суперпользователь, измените пароль любого пользователя на\ password имя пользователя
.
О pgDash
pgDash — это современное решение для глубокого мониторинга, разработанное
специально для развертываний PostgreSQL. pgDash показывает вам информацию и
метрики обо всех аспектах вашего сервера базы данных PostgreSQL, собранные с помощью
инструмент с открытым исходным кодом pgmetrics.
pgDash обеспечивает базовую отчетность и визуализацию
функциональность, включая сбор и отображение информации PostgreSQL и
предоставление графиков временных рядов, подробных отчетов, предупреждений, команд и многого другого.
Краткое руководство: создание сервера — портал Azure — База данных Azure для PostgreSQL — отдельный сервер
- 4 минуты на чтение
В этой статье
База данных Azure для PostgreSQL — это управляемая служба, которую вы используете для запуска, управления и масштабирования высокодоступных баз данных PostgreSQL в облаке.В этом кратком руководстве показано, как создать единую базу данных Azure для сервера PostgreSQL и подключиться к ней.
Предварительные требования
Требуется подписка Azure. Если у вас нет подписки Azure, прежде чем начать, создайте бесплатную учетную запись Azure.
Создание базы данных Azure для сервера PostgreSQL
Перейдите на портал Azure, чтобы создать базу данных Azure для базы данных одного сервера PostgreSQL. Найдите и выберите База данных Azure для серверов PostgreSQL .
Выбрать Добавить .
На странице «Создание базы данных Azure для PostgreSQL» выберите Один сервер .
Теперь введите форму Основы со следующей информацией.
Настройка Рекомендуемое значение Описание Подписка ваше имя подписки выберите желаемую подписку Azure. Группа ресурсов myresourcegroup Новая или существующая группа ресурсов из вашей подписки. Имя сервера mydemoserver Уникальное имя, которое идентифицирует вашу базу данных Azure для сервера PostgreSQL. Доменное имя postgres.database.azure.com добавляется к указанному вами имени сервера. Сервер может содержать только строчные буквы, цифры и знак дефиса (-).Он должен содержать от 3 до 63 символов. Источник данных Нет Выберите Нет , чтобы создать новый сервер с нуля. Выберите Резервная копия , только если вы выполняли восстановление из гео-резервной копии существующего сервера. Имя пользователя администратора myadmin Введите имя пользователя администратора вашего сервера. Он не может начинаться с pg_ , и эти значения недопустимы: azure_superuser , azure_pg_admin , admin , administrator , root , guest или public . Пароль ваш пароль Новый пароль для администратора сервера. Он должен содержать от 8 до 128 символов из трех следующих категорий: английские прописные буквы, английские строчные буквы, цифры (от 0 до 9) и не буквенно-цифровые символы (например,!, $, #,%). Расположение желаемое место Выберите местоположение из раскрывающегося списка. Версия Последняя мажорная версия Последняя основная версия PostgreSQL, если у вас нет особых требований. Вычисления + хранилище использовать значения по умолчанию Ценовой уровень по умолчанию — Универсальный с 4 виртуальными ядрами и 100 ГБ хранилища . Срок хранения резервной копии составляет 7 дней с опцией резервного копирования с географическим резервированием .
Узнайте о ценах и при необходимости обновите значения по умолчанию.Примечание
Рассмотрите возможность использования ценового уровня «Базовый», если для вашей рабочей нагрузки подходят небольшие вычислительные ресурсы и операции ввода-вывода.Обратите внимание, что серверы, созданные в ценовой категории «Базовый», нельзя впоследствии масштабировать до универсального или оптимизированного для памяти.
Выберите Review + create , чтобы просмотреть свой выбор. Выберите Create , чтобы подготовить сервер. Эта операция может занять несколько минут.
Примечание
Создана пустая база данных postgres . Вы также найдете базу данных azure_main maintenance , которая используется для отделения процессов управляемых служб от действий пользователя.Вы не можете получить доступ к базе данных azure_main maintenance .
Возникли проблемы? Дайте нам знать.
Настроить правило брандмауэра
По умолчанию созданный вами сервер не является общедоступным. Вам необходимо дать разрешения на свой IP-адрес. Перейдите к ресурсу сервера на портале Azure и выберите Безопасность подключения в меню слева для ресурса сервера. Если вы не знаете, как найти свой ресурс, см. Открытые ресурсы.
Выберите Добавить текущий IP-адрес клиента , а затем выберите Сохранить . Вы можете добавить дополнительные IP-адреса или указать диапазон IP-адресов для подключения к вашему серверу с этих IP-адресов. Дополнительные сведения см. В разделе Правила брандмауэра в базе данных Azure для PostgreSQL.
Примечание
Чтобы избежать проблем с подключением, проверьте, разрешает ли ваша сеть исходящий трафик через порт 5432. База данных Azure для PostgreSQL использует этот порт.
Возникли проблемы? Дайте нам знать.
Подключитесь к серверу с помощью psql
Вы можете использовать psql или pgAdmin, популярные клиенты PostgreSQL. Для этого краткого руководства мы подключимся с помощью psql в Azure Cloud Shell на портале Azure.
Запишите имя вашего сервера, имя для входа в систему администратора сервера, пароль и идентификатор подписки для вновь созданного сервера из раздела Overview вашего сервера.
Откройте Azure Cloud Shell на портале, щелкнув значок в верхнем левом углу.
Примечание
Если вы впервые открываете Cloud Shell, вы увидите запрос на создание группы ресурсов и учетной записи хранения. Это одноразовый шаг, который будет автоматически прикреплен ко всем сеансам.
Выполните следующую команду в терминале Azure Cloud Shell. Замените значения фактическим именем сервера и именем пользователя администратора. Используйте пустую базу данных postgres с пользователем-администратором в следующем формате:
<имя-пользователя-администратора> @ <имя-сервера>
.psql --host = mydemoserver.postgres.database.azure.com --port = 5432 --username = myadmin @ mydemoserver --dbname = postgres
Вот как выглядит опыт в терминале Cloud Shell:
Выполнен запрос Cloud Shell. Соединительный терминал ... Добро пожаловать в Azure Cloud Shell Введите "az", чтобы использовать Azure CLI. Введите "help", чтобы узнать о Cloud Shell. пользователь @ Azure: ~ $ psql --host = mydemoserver.postgres.database.azure.com --port = 5432 --username = myadmin @ mydemoserver --dbname = postgres Пароль для пользователя myadmin @ mydemoserver.postgres.database.azure.com: psql (12.2 (Ubuntu 12.2-2.pgdg16.04 + 1), сервер 11.6) SSL-соединение (протокол: TLSv1.2, шифр: ECDHE-RSA-AES256-GCM-SHA384, биты: 256, сжатие: выключено) Введите "help" для получения справки. postgres =>
В том же терминале Azure Cloud Shell создайте базу данных с именем guest .
postgres => СОЗДАТЬ БАЗУ ДАННЫХ гостя;
Переключить подключения к вновь созданной базе данных guest .
\ c гостевой
Введите
\ q
и нажмите клавишу Enter, чтобы закрыть psql.
Возникли проблемы? Дайте нам знать.
Очистить ресурсы
Вы успешно создали базу данных Azure для сервера PostgreSQL в группе ресурсов. Если вы не ожидаете, что эти ресурсы вам понадобятся в будущем, вы можете удалить их, удалив либо группу ресурсов, либо сервер PostgreSQL.
Чтобы удалить группу ресурсов:
- На портале Azure найдите и выберите Группы ресурсов .
- В списке групп ресурсов выберите имя своей группы ресурсов.
- На странице Обзор вашей группы ресурсов выберите Удалить группу ресурсов .
- В диалоговом окне подтверждения введите имя своей группы ресурсов, а затем выберите Удалить .
Чтобы удалить сервер, нажмите кнопку Удалить на странице Обзор вашего сервера:
Возникли проблемы? Дайте нам знать.
Следующие шаги
Не можете найти то, что ищете? Дайте нам знать.
Как составить список баз данных и таблиц PostgreSQL с помощью psql
При администрировании серверов баз данных PostgreSQL одной из наиболее распространенных задач, которые вы, вероятно, будете выполнять, является составление списка баз данных и их таблиц.
PostgreSQL поставляется с интерактивным инструментом под названием psql
, который позволяет подключаться к серверу и выполнять запросы к нему. При использовании psql
вы также можете воспользоваться его мета-командами.Эти команды полезны для написания сценариев и администрирования из командной строки. Все мета-команды начинаются с обратной косой черты без кавычек и также известны как команды с обратной косой чертой.
В этом руководстве объясняется, как отображать базы данных и таблицы на сервере PostgreSQL с помощью psql
.
Листинг баз данных #
Вы можете подключиться к серверу PostgreSQL с помощью команды psql
как любой системный пользователь. В зависимости от конфигурации сервера пользователю может потребоваться ввести свой пароль для подключения к терминалу psql
.Чтобы получить доступ к терминалу psql
от имени пользователя, в который вы вошли в систему, просто введите psql
.
При установке пакета PostgreSQL создается административный пользователь с именем «postgres». По умолчанию этот пользователь может подключаться к локальному серверу PostgreSQL без пароля.
Чтобы получить доступ к терминалу psql
от имени пользователя «postgres», запустите:
sudo -u postgres psql
Команда sudo
позволяет запускать команды от имени другого пользователя.
Из терминала psql выполните мета-команду \ l
или \ list
, чтобы вывести список всех баз данных:
Вывод будет включать количество баз данных, имя каждой базы данных, ее владельца, кодировку и права доступа:
Список баз данных
Имя | Владелец | Кодирование | Разобрать по копиям | Ctype | Права доступа
----------- + ---------- + ---------- + --------- + ------ --- + -----------------------
odoo | odoo | UTF8 | C | С.UTF-8 |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | = c / postgres +
| | | | | postgres = CTc / postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | = c / postgres +
| | | | | postgres = CTc / postgres
(4 ряда)
Сервер PostgreSQL имеет три базы данных, созданные по умолчанию: template0, template1 и postgres. Первые два — это шаблоны, которые используются при создании новых баз данных.
Если вы хотите получить информацию о размерах баз данных, табличных пространствах по умолчанию и описаниях, используйте \ l +
или \ list +
. Размер базы данных отображается только в том случае, если текущий пользователь может подключиться к ней.
Чтобы получить список всех баз данных без доступа к оболочке psql, используйте переключатель -c
, как показано ниже:
sudo -u postgres psql -c "\ l"
Другой способ вывести список баз данных — использовать следующий оператор SQL:
SELECT имя-данных FROM pg_database;
В отличие от мета-команды \ l
, приведенный выше запрос покажет только имена баз данных:
имя данных
-----------
Postgres
Odoo
template1
template0
(4 ряда)
Listing Tables #
Чтобы сначала вывести список всех таблиц конкретной базы данных, вам необходимо подключиться к ней с помощью мета-команды \ c
или \ connect
.Пользователь, в который вы вошли в терминал psql, должен иметь возможность подключаться к базе данных.
Например, чтобы подключиться к базе данных с именем «odoo», введите:
После переключения базы данных используйте метакоманду \ dt
, чтобы вывести список всех таблиц базы данных:
Вывод будет включать количество таблицы, имя каждой таблицы и ее схема, тип и владелец:
Список отношений
Схема | Имя | Тип | Владелец
-------- + ----------------------------------------- ------------ + ------- + -------
общественный | base_import_import | стол | Odoo
общественный | base_import_mapping | стол | Odoo
общественный | base_import_tests_models_char | стол | Odoo
...
общественный | web_editor_converter_test_sub | стол | Odoo
общественный | web_tour_tour | стол | Odoo
общественный | wizard_ir_model_menu_create | стол | Odoo
(107 рядов)
Если база данных пуста, вывод будет выглядеть так:
Связи не найдены.
Для получения информации о размерах таблиц и описаниях используйте \ dt +
.
Заключение #
Вы узнали, как составить список баз данных и таблиц PostgreSQL с помощью команды psql
.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Драйвер PostgreSQL для Python — Psycopg
Размещенно Даниэле Варраццо 17 января 2021 г.
с тегом
psycopg3,
разработка
Пул psycopg2 — довольно простой объект, немногим больше, чем …
открытые соединения, и я думаю, что этого не хватает по нескольким причинам:
- главная проблема юзабилити заключается в том, что его нельзя использовать в качестве контекста
управляющий делами; - , если соединение разорвано, оно не будет замечено до тех пор, пока оно не будет использовано клиентом;
- , если соединения minconn уже заняты, создается новое и
утилизируется сразу после окончания использования, независимо от того, работают ли другие клиенты
может понадобиться; - , если запрошено более чем maxconn подключений, клиент получит
ошибка.
Для psycopg3 хотелось бы лучше. Я читал, смотрел
в другие реализации пула, чтобы понять, что такое хорошо спроектированное соединение
бассейн должен делать (очень хорошо продуманный кажется Java HikariCP) и
вот несколько идей, над которыми я бы хотел поработать: они здесь для обратной связи,
прежде чем я с энтузиазмом приступлю к реализации неправильных вещей …
Подробнее …
Автор: Даниэле Варраццо, 24 ноября 2020 г.
с тегом
psycopg3,
разработка,
Новости
Система адаптации между объектами Python и типами PostgreSQL находится на
ядро psycopg2 и psycopg3.Гибкость psycopg2
Система адаптации обеспечивает хорошее готовое отображение объектов и позволяет
пользователи могут настроить его под любые нужды. Вы хотите свой десятичный
числа возвращаются как float, потому что вам нужна скорость больше копейки? Ты хочешь
сопоставить даты PostgreSQL Infinity с 25 декабря 3099 года? Это
конечно выполнимо.
Система адаптации psycopg3 нуждается в некоторой модификации по сравнению с
psycopg2, потому что psycopg3 использует «протокол расширенного запроса» для отправки
параметры запроса отдельно от запроса.Вместе с отличиями
приспособиться, также есть шанс улучшить систему, которая использовалась
за несколько лет и показала свои недостатки вместе со своими сильными сторонами.
Подробнее …
Автор: Даниэле Варраццо, 15 ноября 2020 г.
с тегом
psycopg3,
разработка,
Новости
psycopg2 позволяет взаимодействовать с командами PostgreSQL COPY. тем не мение
то, что с ними можно делать, относительно ограничено: единственно возможное
взаимодействие с файловыми объектами:
- нет адаптации объектов Python к PostgreSQL, как есть для
обычные запросы: данные должны быть отформатированы пользователем «вручную»; - psycopg2 «извлекает» данные из файла: пишет систему, которая производит данные и
помещает его в PostgreSQL — это очень надуманная операция, требующая написания
блокирующий файловый объект; - нет поддержки асинхронного копирования.