postgresql: ком´юніті чи бізнес - 2016
TRANSCRIPT
![Page 1: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/1.jpg)
PostgreSQL: ком´юніті чи бізнес
Історія розвитку, розробка й впровадження
1
![Page 3: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/3.jpg)
GOLUB!!! SLONIK!!!
3
![Page 4: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/4.jpg)
4
![Page 5: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/5.jpg)
План доповіді
● Історія розвитку○ Академічний Postgres○ Версії 7.х○ Версії 8.х○ Версії 9.х
● Хакаєм Postgres○ Для чого○ Що потрібно вміти○ Спільнота○ Місце докладання зусиль○ Життя патча
● Бізнес с Postgres○ Компанії○ Послуги
● Питання і відповіді5
![Page 6: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/6.jpg)
Як правильно вимовляти PostgreSQL
● SQL вимовляється як [es-que-ell] або як [sequel]
● PostgreSQL вимовляється як [post-GRES-que-ell]
6
![Page 7: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/7.jpg)
Як НЕ правильно вимовляти PostgreSQL
Постгрі
7
![Page 8: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/8.jpg)
Історія розвитку
8
![Page 9: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/9.jpg)
Ingres
● Де?
○ University of California, Berkeley● Коли?
○ Початок 70х років● Хто?
○ Michael Stonebraker та Eugene Wong● Що?
○ INteractive Graphics REtrieval System● Ingres вимовляється як [ɪŋˈɡrɛs]
9
![Page 10: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/10.jpg)
University Postgres
● Де?
○ University of California, Berkeley● Коли?
○ Початок — 1985, прототип — 1988р.● Хто?
○ Michael Stonebraker та його студенти
10
![Page 11: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/11.jpg)
University Postgres
● Реалізація підтримки типів користувача
● Таблиці називались класи
● Постгрес використав багато ідей Інгрес
● Але не використав жодного рядку коду
● Вбудована мова POSTQUEL
● Пізніше проект був комерціолізований як Illustra
○ придбаний компанією Informix○ інтегрован в їх продукт Universal Server○ в 2001 придбаний IBM за 1 міліард $
11
![Page 12: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/12.jpg)
University Postgres
● Мова перевершувала тогочасний SQL
● Але не задовольняла потреби галузі
● Кожна команда оперувала рядковою змінною (tuple variable)
● Синтаксис був більш “нормалізований”, ніж у SQL
● Мала вбудовані команди для імпорту\експорту даних
PostQUEL
12
![Page 13: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/13.jpg)
University Postgres
range of P is PRACOWNICY
retrieve into W
(COMP = P.PLACA / (P.WIEK - 18))
where P.NAZWISKO = "Kowalski"
PostQUEL
13
![Page 14: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/14.jpg)
University Postgres
create student(name = c10, age = i4, sex = c1, state = c2)
range of s is student
append to s (name = "philip", age = 17, sex = "m", state = "FL")
retrieve (s.all) where s.state = "FL"
replace s (age=s.age+1)
delete s where s.name="philip"
copy student(name=c0, comma=d1, age=c0, comma=d1, sex=c0, nl=d1)
into "/student.txt"
PostQUEL
14
![Page 15: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/15.jpg)
Postgres95
● В 1994р. Andrew Yu та Jolly Chen змінили мову на SQL
● Впровадили новий консольний клієнт psql
● Опубликували вихідний код в web
● Postgres95 це наслідник останньої офіційної гілки Postgres v.4.2
● В 1996р. Marc Fournier з Hub.org піднімає перший сервер для розробки
● Першими контріб’юторами стали Bruce Momjian та Вадим Міхєєв
● Postgres стає повноцінним open source проектом
15
![Page 16: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/16.jpg)
PostgreSQL
● В 1996р. стає зрозумілим невдалий вибір назви Postgres95
● Вирішено дати нове ім’я PostgreSQL
● Повернутися до нумерування версій починаючи з проекту Postgres
● Перша гілка оновленого PostgreSQL мала версію 6.0
● Функціонує сайт www.postgresql.org
● Документація доступна для версій, починаючи з 6.3 http://www.
postgresql.org/docs/manuals/archive/
16
![Page 17: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/17.jpg)
17
![Page 18: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/18.jpg)
PostgreSQL 7.x
● Foreign Keys● JOINs● Schemas● Full-text indexing● Реалізація WAL (write ahead log)● TOAST (The Oversized-Attribute Storage Technique)● Процедурні мови, включаючи PL/PGSQL● i18n та l10n ● Prepared Queries● Interfaces● SQL-standard information schema
18
![Page 19: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/19.jpg)
19
![Page 20: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/20.jpg)
PostgreSQL 8.x
● Підтримка Windows● Savepoints● PITR (Point-In-Time Recovery)● Tablespaces● Role system that replaces users and groups● Index creation without blocking concurrent● Support for the SQL/XML● ENUM and UUID● Windowing Functions● Common Table Expressions and Recursive Queries
20
![Page 21: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/21.jpg)
21
![Page 22: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/22.jpg)
PostgreSQL 9.x
● Built-in replication● Deferrable unique constraints● Exclusion constraints● pg_upgrade● Foreign tables● Extensions● Index-only scans● Range data types● JSON and JSONB data types● Materialized views● Row-level security control● BRIN and SP-GIST indexes
22
![Page 23: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/23.jpg)
23
![Page 24: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/24.jpg)
Хакаєм Постгрес
24
![Page 25: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/25.jpg)
Хакаєм Постгрес
● Для чого?○ Бази даних — це круто○ Участь в ком´юніті, навіть в якості рев´ювера○ Стати кращим программістом, код ПГ — це взірець○ Можливість заробити копійку
25
![Page 26: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/26.jpg)
Хакаєм Постгрес
● Що маю вміти?○ Знати plain C○ ОС не важлива○ IDE не важлива○ Все інше з´явиться з часом
26
![Page 27: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/27.jpg)
Хакаєм Постгрес
● Взаємодія з ком´юніті○ Все спілкування відбувається в поштових розсилках
■ pgsql-general — загальна розсилка для всіх■ pgsql-hackers — головна розсилка■ pgsql-bugs — для роботи над багами■ pgsql-docs — робота над документацією
○ Ви маєте чітко висловлювати свою думку. Англійською○ Хороший програміст — завжди хороший письменик○ Для нагальних питань використовується IRC
27
![Page 28: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/28.jpg)
Хакаєм Постгрес
● Шо можу зробити○ Код (Ядро, Баги, Інтерфейси, Додатки)○ Тестування○ Пакети (VM, vagrant, docker, liveCD etc.)○ Програми○ Переклад○ Мануали, статті, виступи, advocacy
28
![Page 29: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/29.jpg)
Життя патча
29
![Page 30: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/30.jpg)
Життя патча
30
![Page 31: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/31.jpg)
Життя патча
● Дослідження ○ чи реалізовано?○ чи обговорювалось?○ чи потрібне?○ чи частина стандарту?○ чи можливе?○ яку користь принесе?○ скільки зусиль потрібно для підтримування?
31
![Page 32: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/32.jpg)
Життя патча
● Пропозиція до спільноти на pgsql-hackers○ Отримуємо зворотній зв’язок
● Розробка специфікації○ Отримуємо зворотній зв´язок
32
![Page 33: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/33.jpg)
Життя патча
● Реалізуємо WIP патчи○ Отримуємо зворотній зв’язок
● Реалізуємо бета-патч для комміт фесту○ Отримуємо зворотній зв’язок
33
![Page 34: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/34.jpg)
Життя патча
● Отримуємо рев´ю● Патч приймається в реліз● Пишемо документацію
34
![Page 35: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/35.jpg)
Бізнес. Як заробляти?
35
![Page 36: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/36.jpg)
Бізнес. Як заробляти?
36
![Page 37: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/37.jpg)
Бізнес. Як заробляти?
● Хостинг ● Обслуговування і налаштування● Тюнінг під задачі● Використання в своїх рішеннях● Створення статей і матеріалів● Курси і навчання
37
![Page 38: PostgreSQL: ком´юніті чи бізнес - 2016](https://reader034.vdocuments.mx/reader034/viewer/2022042610/589dcad31a28abf45d8b5037/html5/thumbnails/38.jpg)
Запитання і відповіді
38