Skip to content

Commit b8edd2b

Browse files
committed
Update readme file
1 parent 55ec639 commit b8edd2b

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,30 @@ by storing data in tiles: group of column values. It allows to reduce deform tup
55
Please look at tpch.sql example which shows how VOPS can be used to increase speed of TPC-H Q1/Q6 queries
66
more than ten times.
77

8+
How to use VOPS? First of all you need to somehow load data in VOPS.
9+
It can be done in two ways:
10+
1. Load data from existed table. In this case you just need to create VOPS projection of this table (using VOPS types instead
11+
of original scalar types) and copy data to it using VOPS populate(...) function.
12+
2. If you data is not yet loaded in the database, you can import it directly from CSV file into VOPS table using VOPS import(...) function.
13+
14+
Ok, now you have data in VOPS format. What you can do with it? VOPS manual (vops.html) explains many different ways of running
15+
VOPS queries. VOPS provides set of overloaded operators which allows you to write queries in more or less standard SQL.
16+
Operators which can not be overloaded (and, or, not, between) are handled by VOPS executor hook.
17+
18+
VOPS is able to efficiently execute filter and aggregation queries. What about other kinds of queries? For examples queries with
19+
joins? There are once again two choices:
20+
1. You can use original table (if any) for such queries.
21+
2. You can use VOPS foreign data wrapper (FDW) to present VOPS table to PostgreSQL as normal table (with scalar column types).
22+
The parts of query which can be efficiently executed by VOPS (filtering and aggregation) will be pushed by Postgres query optimizer
23+
to VOPS FDW and will be executed using VOPS operators. Other query nodes will fetch data from VOPS as standard tuples
24+
and process them in the same way as in case of normal tables. VOPS FDW provides statistic (you need to do ANALYZE for FDW table)
25+
so query execution plan should be almost the same as for normal tables. The only exception is parallel processing:
26+
parallel processing is not currently supported by VOPS FDW.
27+
28+
So what finally you get? By creating of VOPS projection of existed data or storing data in VOPS table you can speed-up execution
29+
of some queries more than ten times (mostly analytic queries with aggregation and without joins). And still be able to execute
30+
all other queries using VOPS FDW.
31+
832
Chinces version of VOPS documantation can be found here:
933
https://github.com/digoal/blog/blob/master/201702/20170225_01.md
1034

0 commit comments

Comments
 (0)