PostgreSQL 9.5

Címkék

A PostgreSQL Global Development Group bejelentette a PostgreSQL 9.5 elérhetőségét. A kiadás főbb újdonságai:

  • UPSERT capability
  • Row Level Security
  • multiple Big Data features

UPSERT
---------

A most-requested feature by application developers for several years,
"UPSERT" is shorthand for "INSERT, ON CONFLICT UPDATE", allowing new
and updated rows to be treated the same. UPSERT simplifies web and
mobile application development by enabling the database to handle
conflicts between concurrent data changes. This feature also removes
the last significant barrier to migrating legacy MySQL applications to
PostgreSQL.

Developed over the last two years by Heroku programmer Peter
Geoghegan, PostgreSQL's implementation of UPSERT is significantly more
flexible and powerful than those offered by other relational
databases. The new ON CONFLICT clause permits ignoring the new data,
or updating different columns or relations in ways which will support
complex ETL (Extract, Transform, Load) toolchains for bulk data
loading. And, like all of PostgreSQL, it is designed to be absolutely
concurrency-safe and to integrate with all other PostgreSQL features,
including Logical Replication.

Row Level Security
----------------------

PostgreSQL continues to expand database security capabilities with its
new Row Level Security (RLS) feature. RLS implements true per-row and
per-column data access control which integrates with external
label-based security stacks such as SE Linux. PostgreSQL is already
known as "the most secure by default." RLS cements its position as the
best choice for applications with strong data security requirements,
such as compliance with PCI, the European Data Protection Directive,
and healthcare data protection standards.

RLS is the culmination of five years of security features added to
PostgreSQL, including extensive work by KaiGai Kohei of NEC, Stephen
Frost of Crunchy Data, and Dean Rasheed. Through it, database
administrators can set security "policies" which filter which rows
particular users are allowed to update or view. Data security
implemented this way is resistant to SQL injection exploits and other
application-level security holes.

Big Data Features
---------------------

PostgreSQL 9.5 includes multiple new features for bigger databases,
and for integrating with other Big Data systems. These features
ensure that PostgreSQL continues to have a strong role in the rapidly
growing open source Big Data marketplace. Among them are:

BRIN Indexing: This new type of index supports creating tiny, but
effective indexes for very large, "naturally ordered" tables. For
example, tables containing logging data with billions of rows could be
indexed and searched in 5% of the time required by standard BTree
indexes.

Faster Sorts: PostgreSQL now sorts text and NUMERIC data faster, using
an algorithm called "abbreviated keys". This makes some queries which
need to sort large amounts of data 2X to 12X faster, and can speed up
index creation by 20X.

CUBE, ROLLUP and GROUPING SETS: These new standard SQL clauses let
users produce reports with multiple levels of summarization in one
query instead of requiring several. CUBE will also enable tightly
integrating PostgreSQL with more Online Analytic Processing (OLAP)
reporting tools such as Tableau.

Foreign Data Wrappers (FDWs): These already allow using PostgreSQL as
a query engine for other Big Data systems such as Hadoop and
Cassandra. Version 9.5 adds IMPORT FOREIGN SCHEMA and JOIN pushdown
making query connections to external databases both easier to set up
and more efficient.

TABLESAMPLE: This SQL clause allows grabbing a quick statistical
sample of huge tables, without the need for expensive sorting.

Részletek a bejelentésben.

Hozzászólások

És benne van az általunk talált hiba javítása is :)

http://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=6f8cb1e2

Ez az alábbi SQL tábla/view kombináció pár ismétlés után core dump-ot generált...

create table tx1 (a integer);
create table tx2 (b integer);
create table tx3 (c integer);
create view vx1 as select a from tx1 where exists(select 1 from tx2 join tx3 on b=c);
insert into vx1 values (1);
select * from vx1;

Row level security, vóóááá! Hová fejlődik a technológia... Lassan nem kell halálra bonyolítani az alkalmazások adatszerkezetét, hogy biztonságos is legyen és ne app szintű authorizációval kelljen szenvedni :D Eddig nagyon fájt ennek a hiánya vagy tíz év OpenLDAP használat után.

Eleg valoszinutlen igy 2016 ban, hogy valaki olyan alkalmazast fejlesztene ami egy DB row level securirity modeljere epitene es azt `configolja`.

Col levelnek van ertelme, ha egyeb admin ill. dev csoportokat szeretnel megkimelny az employee.salary olvasasatol.

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Tudtad, hogy az LDAP szerverek nagy részén objektum és akár azon belül attribútum szinten lehet jogokat beállítani? És próbáltad már, hogy az mennyire kényelmes, hogy nem kell minden nyomorult adattár szintű felhasználónak külön konténer (RDBMS esetén tábla) az egyébként teljesen azonos típusú adat tárolásához? Ha még nem tetted, érdemes kipróbálni. A felhasználó menedzsmentet és az authorizációt is ki lehet outsource-olni az adattárba (LDAP vagy DBMS, mind1), így az alkalmazás fejlesztőknek 1) nem kell megcsinálni 2) nem ba^wrontják el. Én nagyon lelkes lennék, ha 2016-ban többen gondolkodnának el ezen... Most a legtöbb alkalmazás minden adathoz egy felhasználóval és jelszóval fér hozzá, ezért lyukasak mint a sajt.

Igen, tudtam.
A drupal sem ldap -on eri el a commentjeidet :)

Igy 2016 -ban egy ilyen munka valoszinuleg ugy kezdodne, hogy valaki csinal egy bloatware frameworkot ami
kepes kihasznalni a postgresql eme kepeseget, de megy jopar mas fele modon is.
Vigyazz mit kivansz, mert a vegen ezt kapod :), es tobbet szivsz vele ..

Sajnos nem az SQL interface az amit `az API` nak hasznalunk, meg ha az "ősök" annak szantak is.
(Tudom vannak kivetelek)

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Arra, hogy ha úgy is jön az user a külvilágból, akkor miért is ne lehetne használni az alkalmazásban?

(Most mindegy, hogy pg+krb vagy mssql+ad, csak pg-t mi leginkább web és windows service alatt használunk, ott egy picit más.)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™