You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/09/20 08:53:53 UTC
[incubator-pulsar] branch asf-site updated: Updated site at
revision 0ab2325
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/asf-site by this push:
new b2b67e5 Updated site at revision 0ab2325
b2b67e5 is described below
commit b2b67e5ec3f5c5d4717546c54cd8982b28a021b7
Author: jenkins <bu...@apache.org>
AuthorDate: Thu Sep 20 08:53:44 2018 +0000
Updated site at revision 0ab2325
---
content/api/python/index.html | 886 +++------------------
content/docs/en/sql-getting-started.html | 4 +-
content/docs/en/sql-getting-started/index.html | 4 +-
content/docs/fr/sql-getting-started.html | 4 +-
content/docs/fr/sql-getting-started/index.html | 4 +-
content/docs/ja/sql-getting-started.html | 4 +-
content/docs/ja/sql-getting-started/index.html | 4 +-
.../docs/latest/adaptors/PulsarSpark/index.html | 2 +-
.../docs/latest/adaptors/PulsarStorm/index.html | 2 +-
content/docs/latest/admin-api/overview/index.html | 8 +-
content/docs/latest/clients/Java/index.html | 2 +-
.../latest/cookbooks/PartitionedTopics/index.html | 2 +-
.../latest/cookbooks/RetentionExpiry/index.html | 2 +-
.../docs/latest/cookbooks/compaction/index.html | 2 +-
.../cookbooks/message-deduplication/index.html | 2 +-
.../docs/latest/cookbooks/message-queue/index.html | 2 +-
.../latest/cookbooks/tiered-storage/index.html | 2 +-
.../docs/latest/deployment/aws-cluster/index.html | 2 +-
content/docs/latest/deployment/cluster/index.html | 2 +-
content/docs/latest/deployment/instance/index.html | 2 +-
content/docs/latest/reference/CliTools/index.html | 4 +-
.../docs/latest/security/authorization/index.html | 4 +-
content/docs/zh-CN/sql-getting-started.html | 4 +-
content/docs/zh-CN/sql-getting-started/index.html | 4 +-
content/swagger/swagger.json | 34 +-
25 files changed, 151 insertions(+), 841 deletions(-)
diff --git a/content/api/python/index.html b/content/api/python/index.html
index 7d5e956..72a09f8 100644
--- a/content/api/python/index.html
+++ b/content/api/python/index.html
@@ -1011,8 +1011,6 @@ table {
<li class="mono"><a href="#pulsar.Client.create_producer">create_producer</a></li>
<li class="mono"><a href="#pulsar.Client.create_reader">create_reader</a></li>
<li class="mono"><a href="#pulsar.Client.subscribe">subscribe</a></li>
- <li class="mono"><a href="#pulsar.Client.subscribe_pattern">subscribe_pattern</a></li>
- <li class="mono"><a href="#pulsar.Client.subscribe_topics">subscribe_topics</a></li>
</ul>
</li>
@@ -1279,6 +1277,9 @@ from pulsar.functions.function import Function
from pulsar.functions.context import Context
from pulsar.functions.serde import SerDe, IdentitySerDe, PickleSerDe
+import re
+_retype = type(re.compile('x'))
+
class MessageId:
"""
Represents a message id
@@ -1587,114 +1588,19 @@ class Client:
unacked_messages_timeout_ms=None,
broker_consumer_stats_cache_time_ms=30000,
is_read_compacted=False,
- properties=None
+ properties=None,
+ pattern_auto_discovery_period=60
):
"""
Subscribe to the given topic and subscription combination.
**Args**
- * `topic`: The name of the topic.
- * `subscription`: The name of the subscription.
-
- **Options**
-
- * `consumer_type`:
- Select the subscription type to be used when subscribing to the topic.
- * `message_listener`:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- `consumer.receive()` will not be allowed. The listener function needs
- to accept (consumer, message), for example:
-
- #!python
- def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
-
- * `receiver_queue_size`:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls `receive()`. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The `receive()` function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.
- * `max_total_receiver_queue_size_across_partitions`
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions
- * `consumer_name`:
- Sets the consumer name.
- * `unacked_messages_timeout_ms`:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.
- * `broker_consumer_stats_cache_time_ms`:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.
- * `properties`:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.
- """
- _check_type(str, topic, 'topic')
- _check_type(str, subscription_name, 'subscription_name')
- _check_type(ConsumerType, consumer_type, 'consumer_type')
- _check_type(int, receiver_queue_size, 'receiver_queue_size')
- _check_type(int, max_total_receiver_queue_size_across_partitions,
- 'max_total_receiver_queue_size_across_partitions')
- _check_type_or_none(str, consumer_name, 'consumer_name')
- _check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
- _check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
- _check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type_or_none(dict, properties, 'properties')
-
- conf = _pulsar.ConsumerConfiguration()
- conf.consumer_type(consumer_type)
- conf.read_compacted(is_read_compacted)
- if message_listener:
- conf.message_listener(message_listener)
- conf.receiver_queue_size(receiver_queue_size)
- conf.max_total_receiver_queue_size_across_partitions(max_total_receiver_queue_size_across_partitions)
- if consumer_name:
- conf.consumer_name(consumer_name)
- if unacked_messages_timeout_ms:
- conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
- conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- if properties:
- for k, v in properties.items():
- conf.property(k, v)
-
- c = Consumer()
- c._consumer = self._client.subscribe(topic, subscription_name, conf)
- c._client = self
- self._consumers.append(c)
- return c
-
- def subscribe_topics(self, topics, subscription_name,
- consumer_type=ConsumerType.Exclusive,
- message_listener=None,
- receiver_queue_size=1000,
- max_total_receiver_queue_size_across_partitions=50000,
- consumer_name=None,
- unacked_messages_timeout_ms=None,
- broker_consumer_stats_cache_time_ms=30000,
- is_read_compacted=False,
- properties=None
- ):
- """
- Subscribe to the given topics and subscription combination.
-
- **Args**
-
- * `topics`: The list name of the topics.
+ * `topic`: The name of the topic, list of topics or regex pattern.
+ This method will accept these forms:
+ - `topic='my-topic'`
+ - `topic=['topic-1', 'topic-2', 'topic-3']`
+ - `topic=re.compile('topic-.*')`
* `subscription`: The name of the subscription.
**Options**
@@ -1743,111 +1649,9 @@ class Client:
* `properties`:
Sets the properties for the consumer. The properties associated with a consumer
can be used for identify a consumer at broker side.
- """
- _check_type(list, topics, 'topics')
- _check_type(str, subscription_name, 'subscription_name')
- _check_type(ConsumerType, consumer_type, 'consumer_type')
- _check_type(int, receiver_queue_size, 'receiver_queue_size')
- _check_type(int, max_total_receiver_queue_size_across_partitions,
- 'max_total_receiver_queue_size_across_partitions')
- _check_type_or_none(str, consumer_name, 'consumer_name')
- _check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
- _check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
- _check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type_or_none(dict, properties, 'properties')
-
- conf = _pulsar.ConsumerConfiguration()
- conf.consumer_type(consumer_type)
- conf.read_compacted(is_read_compacted)
- if message_listener:
- conf.message_listener(message_listener)
- conf.receiver_queue_size(receiver_queue_size)
- conf.max_total_receiver_queue_size_across_partitions(max_total_receiver_queue_size_across_partitions)
- if consumer_name:
- conf.consumer_name(consumer_name)
- if unacked_messages_timeout_ms:
- conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
- conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- if properties:
- for k, v in properties.items():
- conf.property(k, v)
-
- c = Consumer()
- c._consumer = self._client.subscribe_topics(topics, subscription_name, conf)
- c._client = self
- self._consumers.append(c)
- return c
-
- def subscribe_pattern(self, topics_pattern, subscription_name,
- consumer_type=ConsumerType.Exclusive,
- message_listener=None,
- receiver_queue_size=1000,
- max_total_receiver_queue_size_across_partitions=50000,
- consumer_name=None,
- unacked_messages_timeout_ms=None,
- broker_consumer_stats_cache_time_ms=30000,
- is_read_compacted=False,
- pattern_auto_discovery_period=60,
- properties=None
- ):
- """
- Subscribe to multiple topics, which match given regexPattern, under the same namespace.
-
- **Args**
-
- * `topics_pattern`: The regex pattern to match topics.
- * `subscription`: The name of the subscription.
-
- **Options**
-
- * `consumer_type`:
- Select the subscription type to be used when subscribing to the topic.
- * `message_listener`:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- `consumer.receive()` will not be allowed. The listener function needs
- to accept (consumer, message), for example:
-
- #!python
- def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
-
- * `receiver_queue_size`:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls `receive()`. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The `receive()` function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.
- * `max_total_receiver_queue_size_across_partitions`
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions
- * `consumer_name`:
- Sets the consumer name.
- * `unacked_messages_timeout_ms`:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.
- * `broker_consumer_stats_cache_time_ms`:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.
* `pattern_auto_discovery_period`:
Periods of seconds for consumer to auto discover match topics.
- * `properties`:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.
"""
- _check_type(str, topics_pattern, 'topics_pattern')
_check_type(str, subscription_name, 'subscription_name')
_check_type(ConsumerType, consumer_type, 'consumer_type')
_check_type(int, receiver_queue_size, 'receiver_queue_size')
@@ -1857,7 +1661,6 @@ class Client:
_check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
_check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
_check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type(int, pattern_auto_discovery_period, 'pattern_auto_discovery_period')
_check_type_or_none(dict, properties, 'properties')
conf = _pulsar.ConsumerConfiguration()
@@ -1872,13 +1675,23 @@ class Client:
if unacked_messages_timeout_ms:
conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- conf.pattern_auto_discovery_period(pattern_auto_discovery_period)
if properties:
for k, v in properties.items():
conf.property(k, v)
c = Consumer()
- c._consumer = self._client.subscribe_pattern(topics_pattern, subscription_name, conf)
+ if isinstance(topic, str):
+ # Single topic
+ c._consumer = self._client.subscribe(topic, subscription_name, conf)
+ elif isinstance(topic, list):
+ # List of topics
+ c._consumer = self._client.subscribe_topics(topic, subscription_name, conf)
+ elif isinstance(topic, _retype):
+ # Regex pattern
+ c._consumer = self._client.subscribe_pattern(topic.pattern, subscription_name, conf)
+ else:
+ raise ValueError("Argument 'topic' is expected to be of a type between (str, list, re.pattern)")
+
c._client = self
self._consumers.append(c)
return c
@@ -2767,14 +2580,19 @@ producers and consumers.</p></div>
unacked_messages_timeout_ms=None,
broker_consumer_stats_cache_time_ms=30000,
is_read_compacted=False,
- properties=None
+ properties=None,
+ pattern_auto_discovery_period=60
):
"""
Subscribe to the given topic and subscription combination.
**Args**
- * `topic`: The name of the topic.
+ * `topic`: The name of the topic, list of topics or regex pattern.
+ This method will accept these forms:
+ - `topic='my-topic'`
+ - `topic=['topic-1', 'topic-2', 'topic-3']`
+ - `topic=re.compile('topic-.*')`
* `subscription`: The name of the subscription.
**Options**
@@ -2823,8 +2641,9 @@ producers and consumers.</p></div>
* `properties`:
Sets the properties for the consumer. The properties associated with a consumer
can be used for identify a consumer at broker side.
+ * `pattern_auto_discovery_period`:
+ Periods of seconds for consumer to auto discover match topics.
"""
- _check_type(str, topic, 'topic')
_check_type(str, subscription_name, 'subscription_name')
_check_type(ConsumerType, consumer_type, 'consumer_type')
_check_type(int, receiver_queue_size, 'receiver_queue_size')
@@ -2853,255 +2672,61 @@ producers and consumers.</p></div>
conf.property(k, v)
c = Consumer()
- c._consumer = self._client.subscribe(topic, subscription_name, conf)
+ if isinstance(topic, str):
+ # Single topic
+ c._consumer = self._client.subscribe(topic, subscription_name, conf)
+ elif isinstance(topic, list):
+ # List of topics
+ c._consumer = self._client.subscribe_topics(topic, subscription_name, conf)
+ elif isinstance(topic, _retype):
+ # Regex pattern
+ c._consumer = self._client.subscribe_pattern(topic.pattern, subscription_name, conf)
+ else:
+ raise ValueError("Argument 'topic' is expected to be of a type between (str, list, re.pattern)")
+
c._client = self
self._consumers.append(c)
return c
- def subscribe_topics(self, topics, subscription_name,
- consumer_type=ConsumerType.Exclusive,
- message_listener=None,
- receiver_queue_size=1000,
- max_total_receiver_queue_size_across_partitions=50000,
- consumer_name=None,
- unacked_messages_timeout_ms=None,
- broker_consumer_stats_cache_time_ms=30000,
- is_read_compacted=False,
- properties=None
- ):
+ def create_reader(self, topic, start_message_id,
+ reader_listener=None,
+ receiver_queue_size=1000,
+ reader_name=None,
+ subscription_role_prefix=None
+ ):
"""
- Subscribe to the given topics and subscription combination.
+ Create a reader on a particular topic
**Args**
- * `topics`: The list name of the topics.
- * `subscription`: The name of the subscription.
+ * `topic`: The name of the topic.
+ * `start_message_id`: The initial reader positioning is done by specifying a message id.
+ The options are:
+ * `MessageId.earliest`: Start reading from the earliest message available in the topic
+ * `MessageId.latest`: Start reading from the end topic, only getting messages published
+ after the reader was created
+ * `MessageId`: When passing a particular message id, the reader will position itself on
+ that specific position. The first message to be read will be the message next to the
+ specified messageId. Message id can be serialized into a string and deserialized
+ back into a `MessageId` object:
+
+ # Serialize to string
+ s = msg.message_id().serialize()
+
+ # Deserialize from string
+ msg_id = MessageId.deserialize(s)
**Options**
- * `consumer_type`:
- Select the subscription type to be used when subscribing to the topic.
- * `message_listener`:
- Sets a message listener for the consumer. When the listener is set,
+ * `reader_listener`:
+ Sets a message listener for the reader. When the listener is set,
the application will receive messages through it. Calls to
- `consumer.receive()` will not be allowed. The listener function needs
- to accept (consumer, message), for example:
+ `reader.read_next()` will not be allowed. The listener function needs
+ to accept (reader, message), for example:
- #!python
- def my_listener(consumer, message):
+ def my_listener(reader, message):
# process message
- consumer.acknowledge(message)
-
- * `receiver_queue_size`:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls `receive()`. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The `receive()` function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.
- * `max_total_receiver_queue_size_across_partitions`
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions
- * `consumer_name`:
- Sets the consumer name.
- * `unacked_messages_timeout_ms`:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.
- * `broker_consumer_stats_cache_time_ms`:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.
- * `properties`:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.
- """
- _check_type(list, topics, 'topics')
- _check_type(str, subscription_name, 'subscription_name')
- _check_type(ConsumerType, consumer_type, 'consumer_type')
- _check_type(int, receiver_queue_size, 'receiver_queue_size')
- _check_type(int, max_total_receiver_queue_size_across_partitions,
- 'max_total_receiver_queue_size_across_partitions')
- _check_type_or_none(str, consumer_name, 'consumer_name')
- _check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
- _check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
- _check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type_or_none(dict, properties, 'properties')
-
- conf = _pulsar.ConsumerConfiguration()
- conf.consumer_type(consumer_type)
- conf.read_compacted(is_read_compacted)
- if message_listener:
- conf.message_listener(message_listener)
- conf.receiver_queue_size(receiver_queue_size)
- conf.max_total_receiver_queue_size_across_partitions(max_total_receiver_queue_size_across_partitions)
- if consumer_name:
- conf.consumer_name(consumer_name)
- if unacked_messages_timeout_ms:
- conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
- conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- if properties:
- for k, v in properties.items():
- conf.property(k, v)
-
- c = Consumer()
- c._consumer = self._client.subscribe_topics(topics, subscription_name, conf)
- c._client = self
- self._consumers.append(c)
- return c
-
- def subscribe_pattern(self, topics_pattern, subscription_name,
- consumer_type=ConsumerType.Exclusive,
- message_listener=None,
- receiver_queue_size=1000,
- max_total_receiver_queue_size_across_partitions=50000,
- consumer_name=None,
- unacked_messages_timeout_ms=None,
- broker_consumer_stats_cache_time_ms=30000,
- is_read_compacted=False,
- pattern_auto_discovery_period=60,
- properties=None
- ):
- """
- Subscribe to multiple topics, which match given regexPattern, under the same namespace.
-
- **Args**
-
- * `topics_pattern`: The regex pattern to match topics.
- * `subscription`: The name of the subscription.
-
- **Options**
-
- * `consumer_type`:
- Select the subscription type to be used when subscribing to the topic.
- * `message_listener`:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- `consumer.receive()` will not be allowed. The listener function needs
- to accept (consumer, message), for example:
-
- #!python
- def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
-
- * `receiver_queue_size`:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls `receive()`. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The `receive()` function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.
- * `max_total_receiver_queue_size_across_partitions`
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions
- * `consumer_name`:
- Sets the consumer name.
- * `unacked_messages_timeout_ms`:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.
- * `broker_consumer_stats_cache_time_ms`:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.
- * `pattern_auto_discovery_period`:
- Periods of seconds for consumer to auto discover match topics.
- * `properties`:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.
- """
- _check_type(str, topics_pattern, 'topics_pattern')
- _check_type(str, subscription_name, 'subscription_name')
- _check_type(ConsumerType, consumer_type, 'consumer_type')
- _check_type(int, receiver_queue_size, 'receiver_queue_size')
- _check_type(int, max_total_receiver_queue_size_across_partitions,
- 'max_total_receiver_queue_size_across_partitions')
- _check_type_or_none(str, consumer_name, 'consumer_name')
- _check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
- _check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
- _check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type(int, pattern_auto_discovery_period, 'pattern_auto_discovery_period')
- _check_type_or_none(dict, properties, 'properties')
-
- conf = _pulsar.ConsumerConfiguration()
- conf.consumer_type(consumer_type)
- conf.read_compacted(is_read_compacted)
- if message_listener:
- conf.message_listener(message_listener)
- conf.receiver_queue_size(receiver_queue_size)
- conf.max_total_receiver_queue_size_across_partitions(max_total_receiver_queue_size_across_partitions)
- if consumer_name:
- conf.consumer_name(consumer_name)
- if unacked_messages_timeout_ms:
- conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
- conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- conf.pattern_auto_discovery_period(pattern_auto_discovery_period)
- if properties:
- for k, v in properties.items():
- conf.property(k, v)
-
- c = Consumer()
- c._consumer = self._client.subscribe_pattern(topics_pattern, subscription_name, conf)
- c._client = self
- self._consumers.append(c)
- return c
-
- def create_reader(self, topic, start_message_id,
- reader_listener=None,
- receiver_queue_size=1000,
- reader_name=None,
- subscription_role_prefix=None
- ):
- """
- Create a reader on a particular topic
-
- **Args**
-
- * `topic`: The name of the topic.
- * `start_message_id`: The initial reader positioning is done by specifying a message id.
- The options are:
- * `MessageId.earliest`: Start reading from the earliest message available in the topic
- * `MessageId.latest`: Start reading from the end topic, only getting messages published
- after the reader was created
- * `MessageId`: When passing a particular message id, the reader will position itself on
- that specific position. The first message to be read will be the message next to the
- specified messageId. Message id can be serialized into a string and deserialized
- back into a `MessageId` object:
-
- # Serialize to string
- s = msg.message_id().serialize()
-
- # Deserialize from string
- msg_id = MessageId.deserialize(s)
-
- **Options**
-
- * `reader_listener`:
- Sets a message listener for the reader. When the listener is set,
- the application will receive messages through it. Calls to
- `reader.read_next()` will not be allowed. The listener function needs
- to accept (reader, message), for example:
-
- def my_listener(reader, message):
- # process message
- pass
+ pass
* `receiver_queue_size`:
Sets the size of the reader receive queue. The reader receive
@@ -3571,7 +3196,7 @@ producers and consumers.</p></div>
<div class="item">
<div class="name def" id="pulsar.Client.subscribe">
- <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, is_read_compacted=False, properties=None)</p>
+ <p>def <span class="ident">subscribe</span>(</p><p>self, topic, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, is_read_compacted=False, properties=None, pattern_auto_discovery_period=60)</p>
</div>
@@ -3580,7 +3205,11 @@ producers and consumers.</p></div>
<div class="desc"><p>Subscribe to the given topic and subscription combination.</p>
<p><strong>Args</strong></p>
<ul>
-<li><code>topic</code>: The name of the topic.</li>
+<li><code>topic</code>: The name of the topic, list of topics or regex pattern.
+ This method will accept these forms:
+ - <code>topic='my-topic'</code>
+ - <code>topic=['topic-1', 'topic-2', 'topic-3']</code>
+ - <code>topic=re.compile('topic-.*')</code></li>
<li><code>subscription</code>: The name of the subscription.</li>
</ul>
<p><strong>Options</strong></p>
@@ -3632,6 +3261,8 @@ def my_listener(consumer, message):
<li><code>properties</code>:
Sets the properties for the consumer. The properties associated with a consumer
can be used for identify a consumer at broker side.</li>
+<li><code>pattern_auto_discovery_period</code>:
+ Periods of seconds for consumer to auto discover match topics.</li>
</ul></div>
<div class="source_cont">
<p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.Client.subscribe', this);">Show source ≡</a></p>
@@ -3645,12 +3276,17 @@ def my_listener(consumer, message):
unacked_messages_timeout_ms=None,
broker_consumer_stats_cache_time_ms=30000,
is_read_compacted=False,
- properties=None
+ properties=None,
+ pattern_auto_discovery_period=60
):
"""
Subscribe to the given topic and subscription combination.
**Args**
- * `topic`: The name of the topic.
+ * `topic`: The name of the topic, list of topics or regex pattern.
+ This method will accept these forms:
+ - `topic='my-topic'`
+ - `topic=['topic-1', 'topic-2', 'topic-3']`
+ - `topic=re.compile('topic-.*')`
* `subscription`: The name of the subscription.
**Options**
* `consumer_type`:
@@ -3695,178 +3331,9 @@ def my_listener(consumer, message):
* `properties`:
Sets the properties for the consumer. The properties associated with a consumer
can be used for identify a consumer at broker side.
- """
- _check_type(str, topic, 'topic')
- _check_type(str, subscription_name, 'subscription_name')
- _check_type(ConsumerType, consumer_type, 'consumer_type')
- _check_type(int, receiver_queue_size, 'receiver_queue_size')
- _check_type(int, max_total_receiver_queue_size_across_partitions,
- 'max_total_receiver_queue_size_across_partitions')
- _check_type_or_none(str, consumer_name, 'consumer_name')
- _check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
- _check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
- _check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type_or_none(dict, properties, 'properties')
- conf = _pulsar.ConsumerConfiguration()
- conf.consumer_type(consumer_type)
- conf.read_compacted(is_read_compacted)
- if message_listener:
- conf.message_listener(message_listener)
- conf.receiver_queue_size(receiver_queue_size)
- conf.max_total_receiver_queue_size_across_partitions(max_total_receiver_queue_size_across_partitions)
- if consumer_name:
- conf.consumer_name(consumer_name)
- if unacked_messages_timeout_ms:
- conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
- conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- if properties:
- for k, v in properties.items():
- conf.property(k, v)
- c = Consumer()
- c._consumer = self._client.subscribe(topic, subscription_name, conf)
- c._client = self
- self._consumers.append(c)
- return c
-</code></pre>
- </div>
-</div>
-
- </div>
-
-
- <div class="item">
- <div class="name def" id="pulsar.Client.subscribe_pattern">
- <p>def <span class="ident">subscribe_pattern</span>(</p><p>self, topics_pattern, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, is_read_compacted=False, pattern_auto_discovery_period=60, properties=None)</p>
- </div>
-
-
-
-
- <div class="desc"><p>Subscribe to multiple topics, which match given regexPattern, under the same namespace.</p>
-<p><strong>Args</strong></p>
-<ul>
-<li><code>topics_pattern</code>: The regex pattern to match topics.</li>
-<li><code>subscription</code>: The name of the subscription.</li>
-</ul>
-<p><strong>Options</strong></p>
-<ul>
-<li><code>consumer_type</code>:
- Select the subscription type to be used when subscribing to the topic.</li>
-<li>
-<p><code>message_listener</code>:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- <code>consumer.receive()</code> will not be allowed. The listener function needs
- to accept (consumer, message), for example:</p>
-<pre><code>#!python
-def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
-</code></pre>
-</li>
-<li>
-<p><code>receiver_queue_size</code>:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls <code>receive()</code>. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The <code>receive()</code> function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.</p>
-</li>
-<li><code>max_total_receiver_queue_size_across_partitions</code>
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions</li>
-<li><code>consumer_name</code>:
- Sets the consumer name.</li>
-<li><code>unacked_messages_timeout_ms</code>:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.</li>
-<li><code>broker_consumer_stats_cache_time_ms</code>:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.</li>
-<li><code>pattern_auto_discovery_period</code>:
- Periods of seconds for consumer to auto discover match topics.</li>
-<li><code>properties</code>:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.</li>
-</ul></div>
- <div class="source_cont">
- <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.Client.subscribe_pattern', this);">Show source ≡</a></p>
- <div id="source-pulsar.Client.subscribe_pattern" class="source">
- <pre><code>def subscribe_pattern(self, topics_pattern, subscription_name,
- consumer_type=ConsumerType.Exclusive,
- message_listener=None,
- receiver_queue_size=1000,
- max_total_receiver_queue_size_across_partitions=50000,
- consumer_name=None,
- unacked_messages_timeout_ms=None,
- broker_consumer_stats_cache_time_ms=30000,
- is_read_compacted=False,
- pattern_auto_discovery_period=60,
- properties=None
- ):
- """
- Subscribe to multiple topics, which match given regexPattern, under the same namespace.
- **Args**
- * `topics_pattern`: The regex pattern to match topics.
- * `subscription`: The name of the subscription.
- **Options**
- * `consumer_type`:
- Select the subscription type to be used when subscribing to the topic.
- * `message_listener`:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- `consumer.receive()` will not be allowed. The listener function needs
- to accept (consumer, message), for example:
- #!python
- def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
- * `receiver_queue_size`:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls `receive()`. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The `receive()` function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.
- * `max_total_receiver_queue_size_across_partitions`
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions
- * `consumer_name`:
- Sets the consumer name.
- * `unacked_messages_timeout_ms`:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.
- * `broker_consumer_stats_cache_time_ms`:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.
* `pattern_auto_discovery_period`:
Periods of seconds for consumer to auto discover match topics.
- * `properties`:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.
"""
- _check_type(str, topics_pattern, 'topics_pattern')
_check_type(str, subscription_name, 'subscription_name')
_check_type(ConsumerType, consumer_type, 'consumer_type')
_check_type(int, receiver_queue_size, 'receiver_queue_size')
@@ -3876,7 +3343,6 @@ def my_listener(consumer, message):
_check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
_check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
_check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type(int, pattern_auto_discovery_period, 'pattern_auto_discovery_period')
_check_type_or_none(dict, properties, 'properties')
conf = _pulsar.ConsumerConfiguration()
conf.consumer_type(consumer_type)
@@ -3890,177 +3356,21 @@ def my_listener(consumer, message):
if unacked_messages_timeout_ms:
conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- conf.pattern_auto_discovery_period(pattern_auto_discovery_period)
if properties:
for k, v in properties.items():
conf.property(k, v)
c = Consumer()
- c._consumer = self._client.subscribe_pattern(topics_pattern, subscription_name, conf)
- c._client = self
- self._consumers.append(c)
- return c
-</code></pre>
- </div>
-</div>
-
- </div>
-
-
- <div class="item">
- <div class="name def" id="pulsar.Client.subscribe_topics">
- <p>def <span class="ident">subscribe_topics</span>(</p><p>self, topics, subscription_name, consumer_type=_pulsar.ConsumerType.Exclusive, message_listener=None, receiver_queue_size=1000, max_total_receiver_queue_size_across_partitions=50000, consumer_name=None, unacked_messages_timeout_ms=None, broker_consumer_stats_cache_time_ms=30000, is_read_compacted=False, properties=None)</p>
- </div>
-
-
-
-
- <div class="desc"><p>Subscribe to the given topics and subscription combination.</p>
-<p><strong>Args</strong></p>
-<ul>
-<li><code>topics</code>: The list name of the topics.</li>
-<li><code>subscription</code>: The name of the subscription.</li>
-</ul>
-<p><strong>Options</strong></p>
-<ul>
-<li><code>consumer_type</code>:
- Select the subscription type to be used when subscribing to the topic.</li>
-<li>
-<p><code>message_listener</code>:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- <code>consumer.receive()</code> will not be allowed. The listener function needs
- to accept (consumer, message), for example:</p>
-<pre><code>#!python
-def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
-</code></pre>
-</li>
-<li>
-<p><code>receiver_queue_size</code>:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls <code>receive()</code>. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The <code>receive()</code> function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.</p>
-</li>
-<li><code>max_total_receiver_queue_size_across_partitions</code>
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions</li>
-<li><code>consumer_name</code>:
- Sets the consumer name.</li>
-<li><code>unacked_messages_timeout_ms</code>:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.</li>
-<li><code>broker_consumer_stats_cache_time_ms</code>:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.</li>
-<li><code>properties</code>:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.</li>
-</ul></div>
- <div class="source_cont">
- <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.Client.subscribe_topics', this);">Show source ≡</a></p>
- <div id="source-pulsar.Client.subscribe_topics" class="source">
- <pre><code>def subscribe_topics(self, topics, subscription_name,
- consumer_type=ConsumerType.Exclusive,
- message_listener=None,
- receiver_queue_size=1000,
- max_total_receiver_queue_size_across_partitions=50000,
- consumer_name=None,
- unacked_messages_timeout_ms=None,
- broker_consumer_stats_cache_time_ms=30000,
- is_read_compacted=False,
- properties=None
- ):
- """
- Subscribe to the given topics and subscription combination.
- **Args**
- * `topics`: The list name of the topics.
- * `subscription`: The name of the subscription.
- **Options**
- * `consumer_type`:
- Select the subscription type to be used when subscribing to the topic.
- * `message_listener`:
- Sets a message listener for the consumer. When the listener is set,
- the application will receive messages through it. Calls to
- `consumer.receive()` will not be allowed. The listener function needs
- to accept (consumer, message), for example:
- #!python
- def my_listener(consumer, message):
- # process message
- consumer.acknowledge(message)
- * `receiver_queue_size`:
- Sets the size of the consumer receive queue. The consumer receive
- queue controls how many messages can be accumulated by the consumer
- before the application calls `receive()`. Using a higher value could
- potentially increase the consumer throughput at the expense of higher
- memory utilization. Setting the consumer queue size to zero decreases
- the throughput of the consumer by disabling pre-fetching of messages.
- This approach improves the message distribution on shared subscription
- by pushing messages only to those consumers that are ready to process
- them. Neither receive with timeout nor partitioned topics can be used
- if the consumer queue size is zero. The `receive()` function call
- should not be interrupted when the consumer queue size is zero. The
- default value is 1000 messages and should work well for most use
- cases.
- * `max_total_receiver_queue_size_across_partitions`
- Set the max total receiver queue size across partitions.
- This setting will be used to reduce the receiver queue size for individual partitions
- * `consumer_name`:
- Sets the consumer name.
- * `unacked_messages_timeout_ms`:
- Sets the timeout in milliseconds for unacknowledged messages. The
- timeout needs to be greater than 10 seconds. An exception is thrown if
- the given value is less than 10 seconds. If a successful
- acknowledgement is not sent within the timeout, all the unacknowledged
- messages are redelivered.
- * `broker_consumer_stats_cache_time_ms`:
- Sets the time duration for which the broker-side consumer stats will
- be cached in the client.
- * `properties`:
- Sets the properties for the consumer. The properties associated with a consumer
- can be used for identify a consumer at broker side.
- """
- _check_type(list, topics, 'topics')
- _check_type(str, subscription_name, 'subscription_name')
- _check_type(ConsumerType, consumer_type, 'consumer_type')
- _check_type(int, receiver_queue_size, 'receiver_queue_size')
- _check_type(int, max_total_receiver_queue_size_across_partitions,
- 'max_total_receiver_queue_size_across_partitions')
- _check_type_or_none(str, consumer_name, 'consumer_name')
- _check_type_or_none(int, unacked_messages_timeout_ms, 'unacked_messages_timeout_ms')
- _check_type(int, broker_consumer_stats_cache_time_ms, 'broker_consumer_stats_cache_time_ms')
- _check_type(bool, is_read_compacted, 'is_read_compacted')
- _check_type_or_none(dict, properties, 'properties')
- conf = _pulsar.ConsumerConfiguration()
- conf.consumer_type(consumer_type)
- conf.read_compacted(is_read_compacted)
- if message_listener:
- conf.message_listener(message_listener)
- conf.receiver_queue_size(receiver_queue_size)
- conf.max_total_receiver_queue_size_across_partitions(max_total_receiver_queue_size_across_partitions)
- if consumer_name:
- conf.consumer_name(consumer_name)
- if unacked_messages_timeout_ms:
- conf.unacked_messages_timeout_ms(unacked_messages_timeout_ms)
- conf.broker_consumer_stats_cache_time_ms(broker_consumer_stats_cache_time_ms)
- if properties:
- for k, v in properties.items():
- conf.property(k, v)
- c = Consumer()
- c._consumer = self._client.subscribe_topics(topics, subscription_name, conf)
+ if isinstance(topic, str):
+ # Single topic
+ c._consumer = self._client.subscribe(topic, subscription_name, conf)
+ elif isinstance(topic, list):
+ # List of topics
+ c._consumer = self._client.subscribe_topics(topic, subscription_name, conf)
+ elif isinstance(topic, _retype):
+ # Regex pattern
+ c._consumer = self._client.subscribe_pattern(topic.pattern, subscription_name, conf)
+ else:
+ raise ValueError("Argument 'topic' is expected to be of a type between (str, list, re.pattern)")
c._client = self
self._consumers.append(c)
return c
diff --git a/content/docs/en/sql-getting-started.html b/content/docs/en/sql-getting-started.html
index 3f9d0ff..3e086d7 100644
--- a/content/docs/en/sql-getting-started.html
+++ b/content/docs/en/sql-getting-started.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar. "/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pulsa [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar. "/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="en"/><meta property="og:title" content [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-getting- [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-getting- [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/en/sql-getting-started/index.html b/content/docs/en/sql-getting-started/index.html
index 3f9d0ff..3e086d7 100644
--- a/content/docs/en/sql-getting-started/index.html
+++ b/content/docs/en/sql-getting-started/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar. "/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Pulsa [...]
+<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar. "/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="en"/><meta property="og:title" content [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-getting- [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/apache/incubator-pulsar/edit/master/site2/docs/sql-getting- [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/fr/sql-getting-started.html b/content/docs/fr/sql-getting-started.html
index 1446d60..f0058c5 100644
--- a/content/docs/fr/sql-getting-started.html
+++ b/content/docs/fr/sql-getting-started.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content="Pulsar [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content=" [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/fr/sql-getting-started/index.html b/content/docs/fr/sql-getting-started/index.html
index 1446d60..f0058c5 100644
--- a/content/docs/fr/sql-getting-started/index.html
+++ b/content/docs/fr/sql-getting-started/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content="Pulsar [...]
+<!DOCTYPE html><html lang="fr"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="fr"/><meta property="og:title" content=" [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/fr" target="_blank" rel="noreferrer [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/ja/sql-getting-started.html b/content/docs/ja/sql-getting-started.html
index 97a442a..0363f7e 100644
--- a/content/docs/ja/sql-getting-started.html
+++ b/content/docs/ja/sql-getting-started.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="ja"/><meta property="og:title" content="Pulsar [...]
+<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="ja"/><meta property="og:title" content=" [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/ja/sql-getting-started/index.html b/content/docs/ja/sql-getting-started/index.html
index 97a442a..0363f7e 100644
--- a/content/docs/ja/sql-getting-started/index.html
+++ b/content/docs/ja/sql-getting-started/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Overview · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="ja"/><meta property="og:title" content="Pulsar [...]
+<!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="It is super easy to start query data in Pulsar."/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="ja"/><meta property="og:title" content=" [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/ja" target="_blank" rel="noreferrer [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/latest/adaptors/PulsarSpark/index.html b/content/docs/latest/adaptors/PulsarSpark/index.html
index c00dd49..a30d928 100644
--- a/content/docs/latest/adaptors/PulsarSpark/index.html
+++ b/content/docs/latest/adaptors/PulsarSpark/index.html
@@ -1673,9 +1673,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/adaptors/PulsarStorm/index.html b/content/docs/latest/adaptors/PulsarStorm/index.html
index a100055..3059cf5 100644
--- a/content/docs/latest/adaptors/PulsarStorm/index.html
+++ b/content/docs/latest/adaptors/PulsarStorm/index.html
@@ -1427,9 +1427,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/admin-api/overview/index.html b/content/docs/latest/admin-api/overview/index.html
index 994ad01..80a6f28 100644
--- a/content/docs/latest/admin-api/overview/index.html
+++ b/content/docs/latest/admin-api/overview/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
@@ -1439,9 +1439,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
@@ -1685,9 +1685,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
@@ -1941,9 +1941,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/clients/Java/index.html b/content/docs/latest/clients/Java/index.html
index 8ce7177..b938e5f 100644
--- a/content/docs/latest/clients/Java/index.html
+++ b/content/docs/latest/clients/Java/index.html
@@ -1437,9 +1437,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/cookbooks/PartitionedTopics/index.html b/content/docs/latest/cookbooks/PartitionedTopics/index.html
index 25ce2c6..c5c0499 100644
--- a/content/docs/latest/cookbooks/PartitionedTopics/index.html
+++ b/content/docs/latest/cookbooks/PartitionedTopics/index.html
@@ -1681,9 +1681,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/cookbooks/RetentionExpiry/index.html b/content/docs/latest/cookbooks/RetentionExpiry/index.html
index 0a51438..763a81c 100644
--- a/content/docs/latest/cookbooks/RetentionExpiry/index.html
+++ b/content/docs/latest/cookbooks/RetentionExpiry/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/cookbooks/compaction/index.html b/content/docs/latest/cookbooks/compaction/index.html
index fd7475c..e0c2266 100644
--- a/content/docs/latest/cookbooks/compaction/index.html
+++ b/content/docs/latest/cookbooks/compaction/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/cookbooks/message-deduplication/index.html b/content/docs/latest/cookbooks/message-deduplication/index.html
index 03df0bf..7767ce8 100644
--- a/content/docs/latest/cookbooks/message-deduplication/index.html
+++ b/content/docs/latest/cookbooks/message-deduplication/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/cookbooks/message-queue/index.html b/content/docs/latest/cookbooks/message-queue/index.html
index 3655ec9..32e4e8f 100644
--- a/content/docs/latest/cookbooks/message-queue/index.html
+++ b/content/docs/latest/cookbooks/message-queue/index.html
@@ -1437,9 +1437,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/cookbooks/tiered-storage/index.html b/content/docs/latest/cookbooks/tiered-storage/index.html
index 92718d6..d2419ee 100644
--- a/content/docs/latest/cookbooks/tiered-storage/index.html
+++ b/content/docs/latest/cookbooks/tiered-storage/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/deployment/aws-cluster/index.html b/content/docs/latest/deployment/aws-cluster/index.html
index 31cfc51..47a5a53 100644
--- a/content/docs/latest/deployment/aws-cluster/index.html
+++ b/content/docs/latest/deployment/aws-cluster/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/deployment/cluster/index.html b/content/docs/latest/deployment/cluster/index.html
index 0a12601..3113ea1 100644
--- a/content/docs/latest/deployment/cluster/index.html
+++ b/content/docs/latest/deployment/cluster/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/deployment/instance/index.html b/content/docs/latest/deployment/instance/index.html
index e4d8219..9a49d19 100644
--- a/content/docs/latest/deployment/instance/index.html
+++ b/content/docs/latest/deployment/instance/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/reference/CliTools/index.html b/content/docs/latest/reference/CliTools/index.html
index cc20bbd..1f6ea9f 100644
--- a/content/docs/latest/reference/CliTools/index.html
+++ b/content/docs/latest/reference/CliTools/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
@@ -1439,9 +1439,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/latest/security/authorization/index.html b/content/docs/latest/security/authorization/index.html
index 755417d..538bda7 100644
--- a/content/docs/latest/security/authorization/index.html
+++ b/content/docs/latest/security/authorization/index.html
@@ -1189,9 +1189,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
@@ -2435,9 +2435,9 @@
- <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
+ <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
diff --git a/content/docs/zh-CN/sql-getting-started.html b/content/docs/zh-CN/sql-getting-started.html
index 060e352..5b9fcbb 100644
--- a/content/docs/zh-CN/sql-getting-started.html
+++ b/content/docs/zh-CN/sql-getting-started.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar概述 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="在Pulsar中查询数据非常容易。"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Pulsar概述 · Apache Pulsar"/><meta property= [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="在Pulsar中查询数据非常容易。"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Pulsar SQL Getting Start [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferr [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferr [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/docs/zh-CN/sql-getting-started/index.html b/content/docs/zh-CN/sql-getting-started/index.html
index 060e352..5b9fcbb 100644
--- a/content/docs/zh-CN/sql-getting-started/index.html
+++ b/content/docs/zh-CN/sql-getting-started/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar概述 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="在Pulsar中查询数据非常容易。"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Pulsar概述 · Apache Pulsar"/><meta property= [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Pulsar SQL Getting Started · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="在Pulsar中查询数据非常容易。"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Pulsar SQL Getting Start [...]
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -18,7 +18,7 @@
languagesDropDown.className = "hide";
}
});
- </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferr [...]
+ </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferr [...]
<h2><a class="anchor" aria-hidden="true" id="requirements"></a><a href="#requirements" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
<ol>
<li><strong>Pulsar distribution</strong>
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index b540d16..11c4f75 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -6367,10 +6367,10 @@
"type" : "string"
}
},
- "connectedSince" : {
+ "clientVersion" : {
"type" : "string"
},
- "clientVersion" : {
+ "connectedSince" : {
"type" : "string"
},
"address" : {
@@ -6690,11 +6690,7 @@
"type" : "number",
"format" : "double"
},
- "lastUpdate" : {
- "type" : "integer",
- "format" : "int64"
- },
- "bandwidthIn" : {
+ "memory" : {
"$ref" : "#/definitions/ResourceUsage"
},
"msgThroughputIn" : {
@@ -6705,13 +6701,20 @@
"type" : "number",
"format" : "double"
},
- "directMemory" : {
+ "bandwidthOut" : {
"$ref" : "#/definitions/ResourceUsage"
},
- "bandwidthOut" : {
+ "lastUpdate" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "cpu" : {
"$ref" : "#/definitions/ResourceUsage"
},
- "memory" : {
+ "directMemory" : {
+ "$ref" : "#/definitions/ResourceUsage"
+ },
+ "bandwidthIn" : {
"$ref" : "#/definitions/ResourceUsage"
},
"underLoaded" : {
@@ -6722,9 +6725,6 @@
},
"loadReportType" : {
"type" : "string"
- },
- "cpu" : {
- "$ref" : "#/definitions/ResourceUsage"
}
}
},
@@ -6884,13 +6884,13 @@
"type" : "number",
"format" : "double"
},
- "connectedSince" : {
+ "clientVersion" : {
"type" : "string"
},
"producerName" : {
"type" : "string"
},
- "clientVersion" : {
+ "connectedSince" : {
"type" : "string"
},
"address" : {
@@ -7588,13 +7588,13 @@
"type" : "string"
}
},
- "connectedSince" : {
+ "clientVersion" : {
"type" : "string"
},
"producerName" : {
"type" : "string"
},
- "clientVersion" : {
+ "connectedSince" : {
"type" : "string"
},
"address" : {