What is Vertica?
VERTICA
7/29/20262 min read


Vertica is a columnar, massively parallel (MPP) analytical database built for fast queries over very large datasets. It stores data by column, spreads work across many nodes with analytics and machine learning built in. Two ideas that define Vertica are:
Columnar — data is stored one column at a time, not one row at a time. An analytical query that touches 3 columns out of 50 reads only those 3, instead of scanning whole rows.
MPP (massively parallel processing) — a query is broken up and executed across every node in the cluster at the same time. You scale by adding machines, not by buying a bigger one.
Why It's Fast
Columnar storage — reads only the columns a query needs.
Compression and encoding — storing similar values together lets Vertica compress heavily and even operate on encoded data, cutting I/O.
Projections, not indexes — data is physically stored as projections: sorted, distributed copies tuned for your queries. There are no traditional indexes.
MPP execution — every node scans and computes its slice in parallel.
Two modes of Operation
Vertica is one engine you can deploy two ways:
Enterprise Mode — shared-nothing; each node stores its own data on local disk. Compute and storage are coupled.
Eon Mode — compute and storage are separated; data lives in communal object storage (S3/GCS/Azure) and elastic subclusters read from it.
Same SQL, same engine — the difference is where the data lives and how you scale.
Standard SQL and Analytics
Vertica is ANSI SQL and ACID-compliant, and connects through the usual drivers (JDBC, ODBC, ADO.NET, Python). Beyond plain SQL, analytics run inside the database — machine learning, time series, geospatial, and event pattern matching — so you analyze data where it lives instead of exporting it.
Lets create a sample table, load few rows and query it.
httpdb=> CREATE TABLE public.sales (region VARCHAR(20), amount NUMERIC(10,2));
CREATE TABLE
httpdb=> INSERT INTO public.sales VALUES ('EAST',100),('WEST',250),('EAST',175);
OUTPUT
--------
3
(1 row)
httpdb=> COMMIT;
COMMIT
httpdb=> SELECT region, SUM(amount) AS total FROM public.sales GROUP BY region ORDER BY total DESC;
region | total
--------+--------
EAST | 275.00
WEST | 250.00
(2 rows)
httpdb=> select projection_schema,projection_name,anchor_table_name,is_super_projection from projections ;
projection_schema | projection_name | anchor_table_name | is_super_projection
-------------------+-----------------+-------------------+---------------------
public | sales_b0 | sales | t
public | sales_b1 | sales | t
(2 rows)
The auto-created superprojection makes any table queryable immediately; tune with custom projections only when a query needs it.
Vertica Internals
Deep-dive into vertica administration, query execution, integrations and many more
