Work with TableView
After setting up your clients, you can explore more to start working with TableView.
Configure TableView
- Java
- C++
The following is an example of how to configure a TableView.
TableView<String> tv = client.newTableViewBuilder(Schema.STRING)
.topic("my-tableview")
.create()
You can use the available parameters in the loadConf
configuration or the API TableViewBuilder
to customize your TableView.
Name | Type | Required? | Description | Default |
---|---|---|---|---|
topic | string | yes | The topic name of the TableView. | N/A |
autoUpdatePartitionInterval | int | no | The interval to check for newly added partitions. | 60 (seconds) |
subscriptionName | string | no | The subscription name of the TableView. | null |
This feature is supported in C++ client 3.2.0 or later versions.
ClientConfiguration clientConfiguration;
clientConfiguration.setPartititionsUpdateInterval(100);
Client client("pulsar://localhost:6650", clientConfiguration);
TableViewConfiguration tableViewConfiguration{schemaInfo, "test-subscription-name"};
TableView tableView;
client.createTableView("my-tableview", tableViewConfiguration, tableView)
You can use the following parameters to customize your TableView.
Name | Type | Required? | Description | Default |
---|---|---|---|---|
topic | string | yes | The topic name of the TableView. | N/A |
schemaInfo | struct | no | Declare the schema of the data that this TableView can accept. The schema is checked against the schema of the topic, and the TableView creation fails if it's incompatible. | N/A |
subscriptionName | string | no | The subscription name of the TableView. | reader-{random string} |
partititionsUpdateInterval | int | no | Topic partitions update interval in seconds. In the C++ client, partititionsUpdateInterval is global within the same client. | 60 |
Register listeners
You can register listeners for both existing messages on a topic and new messages coming into the topic by using forEachAndListen
, and specify to perform operations for all existing messages by using forEach
.
The following is an example of how to register listeners with TableView.
- Java
- C++
// Register listeners for all existing and incoming messages
tv.forEachAndListen((key, value) -> /*operations on all existing and incoming messages*/)
// Register actions for all existing messages
tv.forEach((key, value) -> /*operations on all existing messages*/)
```cpp
// Register listeners for all existing and incoming messages
tableView.forEach([](const std::string& key, const std::string& value) {});
// Register actions for all existing messages
tableView.forEachAndListen([](const std::string& key, const std::string& value) {});
```