Chapter 9. Checking the Postgres Pro AXE Deployment

This chapter describes how to check that Postgres Pro AXE is deployed successfully and ready for work, assuming the deployment described in Chapter 8.

To check the Postgres Pro AXE deployment:

  1. Create a local storage for Parquet files.

    For example:

      SELECT metastore.add_storage('mt_storage', 'file:///pgdata/metastore/', 'file:///pgdata/metastore/tmp/') ON CONFLICT DO NOTHING;
    
  2. Create a heap table and insert data into it.

    For example:

      CREATE TABLE public.my_table (id int4, name text, price numeric(10,2), created_at timestamp) ON CONFLICT DO NOTHING;
      INSERT INTO public.my_table VALUES (1, 'Product 1', 150.99, '2026-08-09 00:01:01.75') ON CONFLICT DO NOTHING;
      INSERT INTO public.my_table VALUES (2, 'Product 2', 300.99, '2026-08-10 00:01:01.75') ON CONFLICT DO NOTHING;
    
  3. Create an analytical table.

    For example:

      SELECT metastore.add_table('mt_my_table', 'mt_storage', 'public.my_table') ON CONFLICT DO NOTHING;
    

    Analytical tables are logical objects that represent Parquet files in the metadata catalog and make the data available for queries.

  4. Copy the data from the heap table to the analytical table.

    For example:

      SELECT metastore.copy_table('mt_my_table', 'SELECT * FROM public.my_table') ON CONFLICT DO NOTHING;
    
  5. Create a view for the analytical table.

    For example:

      SELECT metastore.create_view('mt_my_table') ON CONFLICT DO NOTHING;
    

    Views for analytical tables serve as the main interface for querying the data using standard SQL.

  6. Read the data from the analytical table.

    For example:

      SELECT * FROM mt_my_table;
    

    If the query returns the data, Postgres Pro AXE is deployed successfully.

  7. (Optional) Delete the test objects:

    1. Delete the analytical table.

      For example:

        SELECT metastore.remove_table('mt_my_table') ON CONFLICT DO NOTHING;
      
    2. Delete the storage.

      For example:

        SELECT metastore.remove_storage('mt_storage') ON CONFLICT DO NOTHING;
      
    3. Delete the heap table.

      For example:

        DROP TABLE public.my_table;