You are on page 1of 1

HP Vertica Flex Tables Quick Start

This guide lets you try out the HP Vertica Flex Tables feature. Refer to the HP Vertica 7.1.x Flex Tables Guide for a complete description
of understanding and using this powerful feature.
1. Create a file, mountains.json, or see /opt/vertica/packages/flextable/examples/mountains.json:
{ "name": "Everest", "type":"mountain", "height": 29029, "hike_safety": 34.1
{ "name": "Mt St Helens", "type": "volcano", "hike_safety": 15.4 }

2. Create a mountains flex table, load data, and query:


CREATE FLEX TABLE mountains();
COPY mountains FROM '/path/to/file'
PARSER fjsonparser();
SELECT name, type, height FROM mountains;
name
|
type
| height
--------------+----------+-------Everest
| mountain | 29029
Mt St Helens | volcano |
(2 rows)

This ends the basic tutorial. Continue to learn more!


3. Use this query to see what mountains contains:
SELECT * FROM mountains;

Call MAPTOSTRING() to review map data as text output:


SELECT maptostring(__raw__) FROM mountains;

Call COMPUTE_FLEXTABLE_KEYS to populate a flex keys table:


SELECT compute_flextable_keys('mountains');

Select all from mountains_keys:


SELECT * from mountains_keys;
key_name
| frequency | data_type_guess
-------------+-----------+----------------hike_safety |
2 | varchar(20)
name
|
2 | varchar(24)
type
|
2 | varchar(20)
height
|
1 | varchar(20)
(4 rows)

4. Build a view to make queries easier to read:


SELECT build_flextable_view('mountains');
SELECT * FROM mountains_view;

Note the data types. They are from mountains_keys:


SELECT column_name,data_type FROM view_columns
WHERE table_name = 'mountains_view';

Override the hike_safety data_type_guess in the keys table:


UPDATE mountains_keys SET data_type_guess =
'float' WHERE key_name = 'hike_safety';
COMMIT;
SELECT build_flextable_view('mountains');

Query hike_safety in the view to confirm its float data type:


SELECT column_name,data_type FROM view_columns
WHERE table_name = 'mountains_view';

Copyright 2006 - 2016 Hewlett Packard, and its licensors. All rights reserved.

5. Create a hybrid flex table with important columns that merit full
HP Vertica performance:
CREATE FLEX TABLE mountains_hybrid(
name varchar(41) default name::varchar(41),
hike_safety float default hike_safety::float);
COPY mountains_hybrid FROM '/path/to/file'
PARSER fjsonparser();

Compare mountains_hybrid with mountains (step 3):


SELECT * FROM mountains_hybrid;

Compute the keys table and build a view with one helper function:
SELECT compute_flextable_keys_and_build_view(
'mountains_hybrid');
SELECT * from mountains_hybrid_keys;
key_name
| frequency | data_type_guess
-------------+-----------+----------------hike_safety |
2 | float
name
|
2 | varchar(41)
type
|
2 | varchar(20)
height
|
1 | varchar(20)
(4 rows)

6. Now promote three keys from mountains_hybrid_keys into real


columns:
SELECT materialize_flextable_columns(
'mountains_hybrid',3);

Notice that 2 of the 3 columns are already real columns (Step 5):
SELECT * FROM
materialize_flextable_columns_results;

Now type is also a real column in mountains_hybrid:


\d mountains_hybrid

Use UPDATE statements to override data types derived from mountains_hybrid_keys:


UPDATE mountains_hybrid_keys SET data_type_guess = 'int'
WHERE key_name = 'height';
COMMIT;
SELECT materialize_flextable_columns(
'mountains_hybrid',4);

Query the results to see the newly-promoted height column. Read the Flex
Tables Guide to understand cases that especially benefit when you promote
virtual columns to real columns.

This ends the FlexTables Quick Start. See the HP Vertica 7.1.x
Flex Tables Guide for complete information.

You might also like