Version:

/create/tablemonitor

URL: http://GPUDB_IP_ADDRESS:GPUDB_PORT/create/tablemonitor

Creates a monitor that watches for a single table modification event type (insert, update, or delete) on a particular table (identified by input parameter table_name) and forwards event notifications to subscribers via ZMQ. After this call completes, subscribe to the returned output parameter topic_id on the ZMQ table monitor port (default 9002). Each time an operation of the given type on the table completes, a multipart message is published for that topic; the first part contains only the topic ID, and each subsequent part contains one binary-encoded Avro object that corresponds to the event and can be decoded using output parameter type_schema. The monitor will continue to run (regardless of whether or not there are any subscribers) until deactivated with /clear/tablemonitor.

For more information on table monitors, see Table Monitors.

Input Parameter Description

Name Type Description
table_name string Name of the table to monitor. Must not refer to a collection.
options map of string to strings

Optional parameters. The default value is an empty map ( {} ).

Supported Parameters (keys) Parameter Description
event

Type of modification event on the target table to be monitored by this table monitor. The default value is insert.

Supported Values Description
insert Get notifications of new record insertions. The new row images are forwarded to the subscribers.
update Get notifications of update operations. The modified row count information is forwarded to the subscribers.
delete Get notifications of delete operations. The deleted row count information is forwarded to the subscribers.

Output Parameter Description

The GPUdb server embeds the endpoint response inside a standard response structure which contains status information and the actual response to the query. Here is a description of the various fields of the wrapper:

Name Type Description
status String 'OK' or 'ERROR'
message String Empty if success or an error message
data_type String 'create_table_monitor_request' or 'none' in case of an error
data String Empty string
data_str JSON or String

This embedded JSON represents the result of the /create/tablemonitor endpoint:

Name Type Description
topic_id string The ZMQ topic ID to subscribe to for inserted records.
table_name string Value of input parameter table_name.
type_schema string JSON Avro schema of the table, for use in decoding published records.
info map of string to strings Additional information.

Empty string in case of an error.