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 2019/06/06 09:05:27 UTC
[pulsar] branch asf-site updated: Updated site at revision c540e28
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/pulsar.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 0762793 Updated site at revision c540e28
0762793 is described below
commit 07627930bcd544e0673ffbb91385261ee4689cb4
Author: jenkins <bu...@apache.org>
AuthorDate: Thu Jun 6 09:05:18 2019 +0000
Updated site at revision c540e28
---
content/docs/en/next/administration-zk-bk.html | 7 +-
.../docs/en/next/administration-zk-bk/index.html | 7 +-
content/docs/en/next/functions-overview.html | 2 +-
content/docs/en/next/functions-overview/index.html | 2 +-
content/docs/en/next/io-cdc-debezium.html | 194 +++--
content/docs/en/next/io-cdc-debezium/index.html | 194 +++--
content/docs/en/next/reference-cli-tools.html | 3 +-
.../docs/en/next/reference-cli-tools/index.html | 3 +-
content/docs/en/next/security-kerberos.html | 9 +-
content/docs/en/next/security-kerberos/index.html | 9 +-
content/docs/fr/next/administration-zk-bk.html | 7 +-
.../docs/fr/next/administration-zk-bk/index.html | 7 +-
content/docs/fr/next/functions-overview.html | 2 +-
content/docs/fr/next/functions-overview/index.html | 2 +-
content/docs/fr/next/io-cdc-debezium.html | 236 ++++--
content/docs/fr/next/io-cdc-debezium/index.html | 236 ++++--
content/docs/fr/next/reference-cli-tools.html | 3 +-
.../docs/fr/next/reference-cli-tools/index.html | 3 +-
content/docs/fr/next/security-kerberos.html | 9 +-
content/docs/fr/next/security-kerberos/index.html | 9 +-
content/docs/ja/next/administration-zk-bk.html | 7 +-
.../docs/ja/next/administration-zk-bk/index.html | 7 +-
content/docs/ja/next/functions-overview.html | 2 +-
content/docs/ja/next/functions-overview/index.html | 2 +-
content/docs/ja/next/io-cdc-debezium.html | 236 ++++--
content/docs/ja/next/io-cdc-debezium/index.html | 236 ++++--
content/docs/ja/next/reference-cli-tools.html | 3 +-
.../docs/ja/next/reference-cli-tools/index.html | 3 +-
content/docs/ja/next/security-kerberos.html | 9 +-
content/docs/ja/next/security-kerberos/index.html | 9 +-
content/docs/zh-CN/next/administration-zk-bk.html | 7 +-
.../zh-CN/next/administration-zk-bk/index.html | 7 +-
content/docs/zh-CN/next/functions-overview.html | 2 +-
.../docs/zh-CN/next/functions-overview/index.html | 2 +-
content/docs/zh-CN/next/io-cdc-debezium.html | 236 ++++--
content/docs/zh-CN/next/io-cdc-debezium/index.html | 236 ++++--
content/docs/zh-CN/next/reference-cli-tools.html | 3 +-
.../docs/zh-CN/next/reference-cli-tools/index.html | 3 +-
content/docs/zh-CN/next/security-kerberos.html | 9 +-
.../docs/zh-CN/next/security-kerberos/index.html | 9 +-
content/swagger/{ => 2.4.0-SNAPSHOT}/swagger.json | 67 +-
.../{ => 2.4.0-SNAPSHOT}/swaggerfunctions.json | 20 +-
content/swagger/2.4.0-SNAPSHOT/swaggersink.json | 791 +++++++++++++++++++++
content/swagger/2.4.0-SNAPSHOT/swaggersource.json | 739 +++++++++++++++++++
content/swagger/swagger.json | 67 +-
content/swagger/swaggerfunctions.json | 20 +-
46 files changed, 3064 insertions(+), 612 deletions(-)
diff --git a/content/docs/en/next/administration-zk-bk.html b/content/docs/en/next/administration-zk-bk.html
index 4bdb5f5..d9cde37 100644
--- a/content/docs/en/next/administration-zk-bk.html
+++ b/content/docs/en/next/administration-zk-bk.html
@@ -197,8 +197,11 @@ of these regions is unreachable.</p>
<p>BookKeeper bookies can be configured using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/en/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/en/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/en/next/administration-zk-bk/index.html b/content/docs/en/next/administration-zk-bk/index.html
index 4bdb5f5..d9cde37 100644
--- a/content/docs/en/next/administration-zk-bk/index.html
+++ b/content/docs/en/next/administration-zk-bk/index.html
@@ -197,8 +197,11 @@ of these regions is unreachable.</p>
<p>BookKeeper bookies can be configured using the <a href="/docs/en/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/en/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/en/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/en/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/en/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/en/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/en/next/functions-overview.html b/content/docs/en/next/functions-overview.html
index 75db7b7..38cb50a 100644
--- a/content/docs/en/next/functions-overview.html
+++ b/content/docs/en/next/functions-overview.html
@@ -265,7 +265,7 @@ Then <a href="#cluster-run-mode">deploy it</a> in your Pulsar cluster using the
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/en/next/functions-overview/index.html b/content/docs/en/next/functions-overview/index.html
index 75db7b7..38cb50a 100644
--- a/content/docs/en/next/functions-overview/index.html
+++ b/content/docs/en/next/functions-overview/index.html
@@ -265,7 +265,7 @@ Then <a href="#cluster-run-mode">deploy it</a> in your Pulsar cluster using the
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/en/next/io-cdc-debezium.html b/content/docs/en/next/io-cdc-debezium.html
index 8a4ee9b..da8e788 100644
--- a/content/docs/en/next/io-cdc-debezium.html
+++ b/content/docs/en/next/io-cdc-debezium.html
@@ -44,49 +44,37 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json">{
- <span class="hljs-attr">"tenant"</span>: <span class="hljs-string">"public"</span>,
- <span class="hljs-attr">"namespace"</span>: <span class="hljs-string">"default"</span>,
- <span class="hljs-attr">"name"</span>: <span class="hljs-string">"debezium-kafka-source"</span>,
- <span class="hljs-attr">"className"</span>: <span class="hljs-string">"org.apache.pulsar.io.kafka.connect.KafkaConnectSource"</span> ,
- <span class="hljs-attr">"topicName"</span>: <span class="hljs-string">"kafka-connect-topic"</span>,
- <span class="hljs-attr">"configs"</span>:
- {
- <span class="hljs-attr">"task.class"</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>,
- <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
- <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
- <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
- <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
- <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
- <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
- <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
- <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
- <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
- <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
- <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
- <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
- <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
- <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
- },
- <span class="hljs-attr">"archive"</span>: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
}
</code></pre>
-<p>You could also find the yaml example in this <a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml">file</a>, which has similar content below:</p>
-<pre><code class="hljs css language-$yaml"><span class="hljs-attribute">tenant</span>: <span class="hljs-string">"public"</span>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml"><span class="hljs-attribute">tenant</span>: <span class="hljs-string">"pubilc"</span>
<span class="hljs-attribute">namespace</span>: <span class="hljs-string">"default"</span>
-<span class="hljs-attribute">name</span>: <span class="hljs-string">"debezium-kafka-source"</span>
-<span class="hljs-attribute">topicName</span>: <span class="hljs-string">"kafka-connect-topic"</span>
+<span class="hljs-attribute">name</span>: <span class="hljs-string">"debezium-mysql-source"</span>
+<span class="hljs-attribute">topicName</span>: <span class="hljs-string">"debezium-mysql-topic"</span>
<span class="hljs-attribute">archive</span>: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-##<span class="hljs-attribute">autoAck</span>: true
<span class="hljs-attribute">parallelism</span>: <span class="hljs-number">1</span>
<span class="hljs-attribute">configs</span>:
- ## sourceTask
- task.<span class="hljs-attribute">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
## config for mysql, docker <span class="hljs-attribute">image</span>: debezium/<span class="hljs-attribute">example-mysql</span>:<span class="hljs-number">0.8</span>
database.<span class="hljs-attribute">hostname</span>: <span class="hljs-string">"localhost"</span>
database.<span class="hljs-attribute">port</span>: <span class="hljs-string">"3306"</span>
@@ -107,44 +95,126 @@
## OFFSET_STORAGE_TOPIC_CONFIG
offset.storage.<span class="hljs-attribute">topic</span>: <span class="hljs-string">"offset-topic"</span>
</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="usage-example"></a><a href="#usage-example" 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-.8 [...]
-<p>Here is a simple example to store MySQL change data using above example config.</p>
-<ul>
-<li>Start a MySQL server with an example database, from which Debezium can capture changes.</li>
-</ul>
+<h3><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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.42-1.64 1-2.09 [...]
+<p>This example shows how to store the data changes of a MySQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a MySQL server with an example database, from which Debezium can capture changes.</p>
<pre><code class="hljs css language-$bash"> docker <span class="hljs-builtin-name">run</span> -it --rm --name mysql -p 3306:3306 -e <span class="hljs-attribute">MYSQL_ROOT_PASSWORD</span>=debezium -e <span class="hljs-attribute">MYSQL_USER</span>=mysqluser -e <span class="hljs-attribute">MYSQL_PASSWORD</span>=mysqlpw debezium/example-mysql:0.8
-</code></pre>
-<ul>
-<li>Start a Pulsar service locally in standalone mode.</li>
-</ul>
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
<pre><code class="hljs css language-$bash"> <span class="hljs-keyword">bin/pulsar </span>standalone
+</code></pre></li>
+<li><p>Start pulsar debezium connector, with local run mode, and using above yaml config file. Please make sure that the nar file is available as configured in path <code>connectors/pulsar-io-debezium-mysql-2.3.2.nar</code>.</p>
+<pre><code class="hljs css language-$bash"> bin/pulsar-admin <span class="hljs-keyword">source</span> localrun --<span class="hljs-keyword">source</span>-config-<span class="hljs-keyword">file</span> debezium-mysql-<span class="hljs-keyword">source</span>-config.yaml
</code></pre>
-<ul>
-<li>Start pulsar debezium connector, with local run mode, and using above yaml config file. Please make sure that the nar file is available as configured in path <code>connectors/pulsar-io-debezium-mysql-2.3.2.nar</code>.</li>
-</ul>
-<pre><code class="hljs css language-$bash"> <span class="hljs-keyword">bin/pulsar-admin </span>sources localrun --sourceConfigFile debezium-mysql-source-<span class="hljs-built_in">config</span>.yaml
-</code></pre>
-<ul>
-<li>Subscribe the topic for table <code>inventory.products</code>.</li>
-</ul>
+<pre><code class="hljs css language-$bash">bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{<span class="hljs-attribute">pulsar</span>:version}}<span class="hljs-variable">.nar</span> --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{"database<span class="hljs-variable">.hostname</span>": "localhost","database<span class="hljs-variable">.port</span>": "3306","database<span class [...]
+</code></pre></li>
+<li><p>Subscribe the topic for table <code>inventory.products</code>.</p>
<pre><code class="hljs"> bin/pulsar-<span class="hljs-keyword">client</span> consume -s <span class="hljs-string">"sub-products"</span> <span class="hljs-keyword">public</span>/<span class="hljs-keyword">default</span>/dbserver1.inventory.products -n <span class="hljs-number">0</span>
-</code></pre>
-<ul>
-<li>start a MySQL cli docker connector, and use it we could change to the table <code>products</code> in MySQL server.</li>
-</ul>
+</code></pre></li>
+<li><p>start a MySQL cli docker connector, and use it we could change to the table <code>products</code> in MySQL server.</p>
<pre><code class="hljs css language-$bash"><span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string" [...]
-</code></pre>
-<p>This command will pop out MySQL cli, in this cli, we could do a change in table products, use commands below to change the name of 2 items in table products:</p>
+</code></pre></li>
+<li><p>This command will pop out MySQL cli, in this cli, we could do a change in table products, use commands below to change the name of 2 items in table products:</p>
<pre><code class="hljs">mysql> use inventory;
mysql> <span class="hljs-keyword">show</span> <span class="hljs-keyword">tables</span>;
mysql> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> products ;
mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> <span class="hljs-type">name</span>=<span class="hljs-string">'1111111111'</span> <span class="hljs-keyword">WHERE</span> id=<span class="hljs-number">101</span>;
mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> <span class="hljs-type">name</span>=<span class="hljs-string">'1111111111'</span> <span class="hljs-keyword">WHERE</span> id=<span class="hljs-number">107</span>;
+</code></pre></li>
+</ol>
+<p>In above subscribe topic terminal tab, we could find that 2 changes has been kept into products topic.</p>
+<h2><a class="anchor" aria-hidden="true" id="example-of-postgresql"></a><a href="#example-of-postgresql" 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 [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration-1"></a><a href="#configuration-1" 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 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-attr">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-postgres-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml</a>) below to the<code>debezium-postgres-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">tenant:</span> <span class="hljs-string">"public"</span>
+<span class="hljs-attr">namespace:</span> <span class="hljs-string">"default"</span>
+<span class="hljs-attr">name:</span> <span class="hljs-string">"debezium-postgres-source"</span>
+<span class="hljs-attr">topicName:</span> <span class="hljs-string">"debezium-postgres-topic"</span>
+<span class="hljs-attr">archive:</span> <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-<span class="hljs-template-variable">2.3.2</span>.nar"</span>
+
+<span class="hljs-attr">parallelism:</span> <span class="hljs-number">1</span>
+
+<span class="hljs-attr">configs:</span>
+ <span class="hljs-comment">## config for pg, docker image: debezium/example-postgress:0.8</span>
+ <span class="hljs-string">database.hostname:</span> <span class="hljs-string">"localhost"</span>
+ <span class="hljs-string">database.port:</span> <span class="hljs-string">"5432"</span>
+ <span class="hljs-string">database.user:</span> <span class="hljs-string">"postgres"</span>
+ <span class="hljs-string">database.password:</span> <span class="hljs-string">"postgres"</span>
+ <span class="hljs-string">database.dbname:</span> <span class="hljs-string">"postgres"</span>
+ <span class="hljs-string">database.server.name:</span> <span class="hljs-string">"dbserver1"</span>
+ <span class="hljs-string">schema.whitelist:</span> <span class="hljs-string">"inventory"</span>
+
+ <span class="hljs-comment">## PULSAR_SERVICE_URL_CONFIG</span>
+ <span class="hljs-string">pulsar.service.url:</span> <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="usage-1"></a><a href="#usage-1" 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.42-1.64 1- [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs css language-$bash">docker pull debezium/example-postgres:<span class="hljs-number">0.8</span>
+docker run -d -it --rm --name pulsar-postgresql -p <span class="hljs-number">5432</span>:<span class="hljs-number">5432</span> debezium/example-postgres:<span class="hljs-number">0.8</span>
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs css language-$bash"> <span class="hljs-keyword">bin/pulsar </span>standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs css language-$bash">bin/pulsar-admin <span class="hljs-keyword">source</span> localrun --<span class="hljs-keyword">source</span>-config-<span class="hljs-keyword">file</span> debezium-postgres-<span class="hljs-keyword">source</span>-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs">psql -U postgres postgres
+postgres=<span class="hljs-comment"># \c postgres;</span>
+You are now connected to database <span class="hljs-string">"postgres"</span> as user <span class="hljs-string">"postgres"</span>.
+postgres=<span class="hljs-comment"># SET search_path TO inventory;</span>
+SET
+postgres=<span class="hljs-comment"># select * from products;</span>
+ id |<span class="hljs-string"> name </span>|<span class="hljs-string"> description </span>|<span class="hljs-string"> weight
+-----+--------------------+---------------------------------------------------------+--------
+ 102 </span>|<span class="hljs-string"> car battery </span>|<span class="hljs-string"> 12V car battery </span>|<span class="hljs-string"> 8.1
+ 103 </span>|<span class="hljs-string"> 12-pack drill bits </span>|<span class="hljs-string"> 12-pack of drill bits with sizes ranging from #40 to #3 </span>|<span class="hljs-string"> 0.8
+ 104 </span>|<span class="hljs-string"> hammer </span>|<span class="hljs-string"> 12oz carpenter's hammer </span>|<span class="hljs-string"> 0.75
+ 105 </span>|<span class="hljs-string"> hammer </span>|<span class="hljs-string"> 14oz carpenter's hammer </span>|<span class="hljs-string"> 0.875
+ 106 </span>|<span class="hljs-string"> hammer </span>|<span class="hljs-string"> 16oz carpenter's hammer </span>|<span class="hljs-string"> 1
+ 107 </span>|<span class="hljs-string"> rocks </span>|<span class="hljs-string"> box of assorted rocks </span>|<span class="hljs-string"> 5.3
+ 108 </span>|<span class="hljs-string"> jacket </span>|<span class="hljs-string"> water resistent black wind breaker </span>|<span class="hljs-string"> 0.1
+ 109 </span>|<span class="hljs-string"> spare tire </span>|<span class="hljs-string"> 24 inch spare tire </span>|<span class="hljs-string"> 22.2
+ 101 </span>|<span class="hljs-string"> 1111111111 </span>|<span class="hljs-string"> Small 2-wheel scooter </span>|<span class="hljs-string"> 3.14
+(9 rows)
+
+postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+UPDATE 1
+</span></code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs">bin/pulsar-<span class="hljs-keyword">client</span> consume -s <span class="hljs-string">"sub-products"</span> <span class="hljs-keyword">public</span>/<span class="hljs-keyword">default</span>/dbserver1.inventory.products -n <span class="hljs-number">0</span>
</code></pre>
-<ul>
-<li>In above subscribe topic terminal tab, we could find that 2 changes has been kept into products topic.</li>
-</ul>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#usage">Usage</a></li></ul></li><li><a href="#example-of-postgresql">Example of PostgreSQL</a><ul class="toc-headings"><li><a href="#configuration-1">Configuration</a></li><li><a href="#usage-1">Usage</a></li></ul></li></ul></nav [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/en/next/io-cdc-debezium/index.html b/content/docs/en/next/io-cdc-debezium/index.html
index 8a4ee9b..da8e788 100644
--- a/content/docs/en/next/io-cdc-debezium/index.html
+++ b/content/docs/en/next/io-cdc-debezium/index.html
@@ -44,49 +44,37 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json">{
- <span class="hljs-attr">"tenant"</span>: <span class="hljs-string">"public"</span>,
- <span class="hljs-attr">"namespace"</span>: <span class="hljs-string">"default"</span>,
- <span class="hljs-attr">"name"</span>: <span class="hljs-string">"debezium-kafka-source"</span>,
- <span class="hljs-attr">"className"</span>: <span class="hljs-string">"org.apache.pulsar.io.kafka.connect.KafkaConnectSource"</span> ,
- <span class="hljs-attr">"topicName"</span>: <span class="hljs-string">"kafka-connect-topic"</span>,
- <span class="hljs-attr">"configs"</span>:
- {
- <span class="hljs-attr">"task.class"</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>,
- <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
- <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
- <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
- <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
- <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
- <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
- <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
- <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
- <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
- <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
- <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
- <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
- <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
- <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
- },
- <span class="hljs-attr">"archive"</span>: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
}
</code></pre>
-<p>You could also find the yaml example in this <a href="https://github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml">file</a>, which has similar content below:</p>
-<pre><code class="hljs css language-$yaml"><span class="hljs-attribute">tenant</span>: <span class="hljs-string">"public"</span>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml"><span class="hljs-attribute">tenant</span>: <span class="hljs-string">"pubilc"</span>
<span class="hljs-attribute">namespace</span>: <span class="hljs-string">"default"</span>
-<span class="hljs-attribute">name</span>: <span class="hljs-string">"debezium-kafka-source"</span>
-<span class="hljs-attribute">topicName</span>: <span class="hljs-string">"kafka-connect-topic"</span>
+<span class="hljs-attribute">name</span>: <span class="hljs-string">"debezium-mysql-source"</span>
+<span class="hljs-attribute">topicName</span>: <span class="hljs-string">"debezium-mysql-topic"</span>
<span class="hljs-attribute">archive</span>: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-##<span class="hljs-attribute">autoAck</span>: true
<span class="hljs-attribute">parallelism</span>: <span class="hljs-number">1</span>
<span class="hljs-attribute">configs</span>:
- ## sourceTask
- task.<span class="hljs-attribute">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
## config for mysql, docker <span class="hljs-attribute">image</span>: debezium/<span class="hljs-attribute">example-mysql</span>:<span class="hljs-number">0.8</span>
database.<span class="hljs-attribute">hostname</span>: <span class="hljs-string">"localhost"</span>
database.<span class="hljs-attribute">port</span>: <span class="hljs-string">"3306"</span>
@@ -107,44 +95,126 @@
## OFFSET_STORAGE_TOPIC_CONFIG
offset.storage.<span class="hljs-attribute">topic</span>: <span class="hljs-string">"offset-topic"</span>
</code></pre>
-<h3><a class="anchor" aria-hidden="true" id="usage-example"></a><a href="#usage-example" 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-.8 [...]
-<p>Here is a simple example to store MySQL change data using above example config.</p>
-<ul>
-<li>Start a MySQL server with an example database, from which Debezium can capture changes.</li>
-</ul>
+<h3><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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.42-1.64 1-2.09 [...]
+<p>This example shows how to store the data changes of a MySQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a MySQL server with an example database, from which Debezium can capture changes.</p>
<pre><code class="hljs css language-$bash"> docker <span class="hljs-builtin-name">run</span> -it --rm --name mysql -p 3306:3306 -e <span class="hljs-attribute">MYSQL_ROOT_PASSWORD</span>=debezium -e <span class="hljs-attribute">MYSQL_USER</span>=mysqluser -e <span class="hljs-attribute">MYSQL_PASSWORD</span>=mysqlpw debezium/example-mysql:0.8
-</code></pre>
-<ul>
-<li>Start a Pulsar service locally in standalone mode.</li>
-</ul>
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
<pre><code class="hljs css language-$bash"> <span class="hljs-keyword">bin/pulsar </span>standalone
+</code></pre></li>
+<li><p>Start pulsar debezium connector, with local run mode, and using above yaml config file. Please make sure that the nar file is available as configured in path <code>connectors/pulsar-io-debezium-mysql-2.3.2.nar</code>.</p>
+<pre><code class="hljs css language-$bash"> bin/pulsar-admin <span class="hljs-keyword">source</span> localrun --<span class="hljs-keyword">source</span>-config-<span class="hljs-keyword">file</span> debezium-mysql-<span class="hljs-keyword">source</span>-config.yaml
</code></pre>
-<ul>
-<li>Start pulsar debezium connector, with local run mode, and using above yaml config file. Please make sure that the nar file is available as configured in path <code>connectors/pulsar-io-debezium-mysql-2.3.2.nar</code>.</li>
-</ul>
-<pre><code class="hljs css language-$bash"> <span class="hljs-keyword">bin/pulsar-admin </span>sources localrun --sourceConfigFile debezium-mysql-source-<span class="hljs-built_in">config</span>.yaml
-</code></pre>
-<ul>
-<li>Subscribe the topic for table <code>inventory.products</code>.</li>
-</ul>
+<pre><code class="hljs css language-$bash">bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{<span class="hljs-attribute">pulsar</span>:version}}<span class="hljs-variable">.nar</span> --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{"database<span class="hljs-variable">.hostname</span>": "localhost","database<span class="hljs-variable">.port</span>": "3306","database<span class [...]
+</code></pre></li>
+<li><p>Subscribe the topic for table <code>inventory.products</code>.</p>
<pre><code class="hljs"> bin/pulsar-<span class="hljs-keyword">client</span> consume -s <span class="hljs-string">"sub-products"</span> <span class="hljs-keyword">public</span>/<span class="hljs-keyword">default</span>/dbserver1.inventory.products -n <span class="hljs-number">0</span>
-</code></pre>
-<ul>
-<li>start a MySQL cli docker connector, and use it we could change to the table <code>products</code> in MySQL server.</li>
-</ul>
+</code></pre></li>
+<li><p>start a MySQL cli docker connector, and use it we could change to the table <code>products</code> in MySQL server.</p>
<pre><code class="hljs css language-$bash"><span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string" [...]
-</code></pre>
-<p>This command will pop out MySQL cli, in this cli, we could do a change in table products, use commands below to change the name of 2 items in table products:</p>
+</code></pre></li>
+<li><p>This command will pop out MySQL cli, in this cli, we could do a change in table products, use commands below to change the name of 2 items in table products:</p>
<pre><code class="hljs">mysql> use inventory;
mysql> <span class="hljs-keyword">show</span> <span class="hljs-keyword">tables</span>;
mysql> <span class="hljs-keyword">SELECT</span> * <span class="hljs-keyword">FROM</span> products ;
mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> <span class="hljs-type">name</span>=<span class="hljs-string">'1111111111'</span> <span class="hljs-keyword">WHERE</span> id=<span class="hljs-number">101</span>;
mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> <span class="hljs-type">name</span>=<span class="hljs-string">'1111111111'</span> <span class="hljs-keyword">WHERE</span> id=<span class="hljs-number">107</span>;
+</code></pre></li>
+</ol>
+<p>In above subscribe topic terminal tab, we could find that 2 changes has been kept into products topic.</p>
+<h2><a class="anchor" aria-hidden="true" id="example-of-postgresql"></a><a href="#example-of-postgresql" 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 [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration-1"></a><a href="#configuration-1" 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 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-attr">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-postgres-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml</a>) below to the<code>debezium-postgres-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-yaml"><span class="hljs-attr">tenant:</span> <span class="hljs-string">"public"</span>
+<span class="hljs-attr">namespace:</span> <span class="hljs-string">"default"</span>
+<span class="hljs-attr">name:</span> <span class="hljs-string">"debezium-postgres-source"</span>
+<span class="hljs-attr">topicName:</span> <span class="hljs-string">"debezium-postgres-topic"</span>
+<span class="hljs-attr">archive:</span> <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-<span class="hljs-template-variable">2.3.2</span>.nar"</span>
+
+<span class="hljs-attr">parallelism:</span> <span class="hljs-number">1</span>
+
+<span class="hljs-attr">configs:</span>
+ <span class="hljs-comment">## config for pg, docker image: debezium/example-postgress:0.8</span>
+ <span class="hljs-string">database.hostname:</span> <span class="hljs-string">"localhost"</span>
+ <span class="hljs-string">database.port:</span> <span class="hljs-string">"5432"</span>
+ <span class="hljs-string">database.user:</span> <span class="hljs-string">"postgres"</span>
+ <span class="hljs-string">database.password:</span> <span class="hljs-string">"postgres"</span>
+ <span class="hljs-string">database.dbname:</span> <span class="hljs-string">"postgres"</span>
+ <span class="hljs-string">database.server.name:</span> <span class="hljs-string">"dbserver1"</span>
+ <span class="hljs-string">schema.whitelist:</span> <span class="hljs-string">"inventory"</span>
+
+ <span class="hljs-comment">## PULSAR_SERVICE_URL_CONFIG</span>
+ <span class="hljs-string">pulsar.service.url:</span> <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</code></pre>
+<h3><a class="anchor" aria-hidden="true" id="usage-1"></a><a href="#usage-1" 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.42-1.64 1- [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs css language-$bash">docker pull debezium/example-postgres:<span class="hljs-number">0.8</span>
+docker run -d -it --rm --name pulsar-postgresql -p <span class="hljs-number">5432</span>:<span class="hljs-number">5432</span> debezium/example-postgres:<span class="hljs-number">0.8</span>
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs css language-$bash"> <span class="hljs-keyword">bin/pulsar </span>standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs css language-$bash">bin/pulsar-admin <span class="hljs-keyword">source</span> localrun --<span class="hljs-keyword">source</span>-config-<span class="hljs-keyword">file</span> debezium-postgres-<span class="hljs-keyword">source</span>-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs">psql -U postgres postgres
+postgres=<span class="hljs-comment"># \c postgres;</span>
+You are now connected to database <span class="hljs-string">"postgres"</span> as user <span class="hljs-string">"postgres"</span>.
+postgres=<span class="hljs-comment"># SET search_path TO inventory;</span>
+SET
+postgres=<span class="hljs-comment"># select * from products;</span>
+ id |<span class="hljs-string"> name </span>|<span class="hljs-string"> description </span>|<span class="hljs-string"> weight
+-----+--------------------+---------------------------------------------------------+--------
+ 102 </span>|<span class="hljs-string"> car battery </span>|<span class="hljs-string"> 12V car battery </span>|<span class="hljs-string"> 8.1
+ 103 </span>|<span class="hljs-string"> 12-pack drill bits </span>|<span class="hljs-string"> 12-pack of drill bits with sizes ranging from #40 to #3 </span>|<span class="hljs-string"> 0.8
+ 104 </span>|<span class="hljs-string"> hammer </span>|<span class="hljs-string"> 12oz carpenter's hammer </span>|<span class="hljs-string"> 0.75
+ 105 </span>|<span class="hljs-string"> hammer </span>|<span class="hljs-string"> 14oz carpenter's hammer </span>|<span class="hljs-string"> 0.875
+ 106 </span>|<span class="hljs-string"> hammer </span>|<span class="hljs-string"> 16oz carpenter's hammer </span>|<span class="hljs-string"> 1
+ 107 </span>|<span class="hljs-string"> rocks </span>|<span class="hljs-string"> box of assorted rocks </span>|<span class="hljs-string"> 5.3
+ 108 </span>|<span class="hljs-string"> jacket </span>|<span class="hljs-string"> water resistent black wind breaker </span>|<span class="hljs-string"> 0.1
+ 109 </span>|<span class="hljs-string"> spare tire </span>|<span class="hljs-string"> 24 inch spare tire </span>|<span class="hljs-string"> 22.2
+ 101 </span>|<span class="hljs-string"> 1111111111 </span>|<span class="hljs-string"> Small 2-wheel scooter </span>|<span class="hljs-string"> 3.14
+(9 rows)
+
+postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+UPDATE 1
+</span></code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs">bin/pulsar-<span class="hljs-keyword">client</span> consume -s <span class="hljs-string">"sub-products"</span> <span class="hljs-keyword">public</span>/<span class="hljs-keyword">default</span>/dbserver1.inventory.products -n <span class="hljs-number">0</span>
</code></pre>
-<ul>
-<li>In above subscribe topic terminal tab, we could find that 2 changes has been kept into products topic.</li>
-</ul>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#usage">Usage</a></li></ul></li><li><a href="#example-of-postgresql">Example of PostgreSQL</a><ul class="toc-headings"><li><a href="#configuration-1">Configuration</a></li><li><a href="#usage-1">Usage</a></li></ul></li></ul></nav [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/en/next/reference-cli-tools.html b/content/docs/en/next/reference-cli-tools.html
index d032017..72503d0 100644
--- a/content/docs/en/next/reference-cli-tools.html
+++ b/content/docs/en/next/reference-cli-tools.html
@@ -471,7 +471,8 @@
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/en/next/reference-cli-tools/index.html b/content/docs/en/next/reference-cli-tools/index.html
index d032017..72503d0 100644
--- a/content/docs/en/next/reference-cli-tools/index.html
+++ b/content/docs/en/next/reference-cli-tools/index.html
@@ -471,7 +471,8 @@
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/en/next/security-kerberos.html b/content/docs/en/next/security-kerberos.html
index 868d8c2..ece6dc1 100644
--- a/content/docs/en/next/security-kerberos.html
+++ b/content/docs/en/next/security-kerberos.html
@@ -166,7 +166,14 @@ and the location of the keytab where the principal is stored. It allows the clie
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"><span class="xml"> <span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.apache.pulsar<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>pulsar-client-auth-sasl<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">version</span>></span>$</span><span class="hljs-template-variable">{pulsar.version}</span><span class="xml"><span class="hljs-tag"></<span class="hljs-name">version</span>></span>
+ <span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
+</span></code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/en/next/security-kerberos/index.html b/content/docs/en/next/security-kerberos/index.html
index 868d8c2..ece6dc1 100644
--- a/content/docs/en/next/security-kerberos/index.html
+++ b/content/docs/en/next/security-kerberos/index.html
@@ -166,7 +166,14 @@ and the location of the keytab where the principal is stored. It allows the clie
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"><span class="xml"> <span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.apache.pulsar<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>pulsar-client-auth-sasl<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
+ <span class="hljs-tag"><<span class="hljs-name">version</span>></span>$</span><span class="hljs-template-variable">{pulsar.version}</span><span class="xml"><span class="hljs-tag"></<span class="hljs-name">version</span>></span>
+ <span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
+</span></code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/fr/next/administration-zk-bk.html b/content/docs/fr/next/administration-zk-bk.html
index 438c19d..2e92bb5 100644
--- a/content/docs/fr/next/administration-zk-bk.html
+++ b/content/docs/fr/next/administration-zk-bk.html
@@ -190,8 +190,11 @@
<p>BookKeeper bookies can be configured using the <a href="/docs/fr/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/fr/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/fr/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/fr/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/fr/next/administration-zk-bk/index.html b/content/docs/fr/next/administration-zk-bk/index.html
index 438c19d..2e92bb5 100644
--- a/content/docs/fr/next/administration-zk-bk/index.html
+++ b/content/docs/fr/next/administration-zk-bk/index.html
@@ -190,8 +190,11 @@
<p>BookKeeper bookies can be configured using the <a href="/docs/fr/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/fr/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/fr/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/fr/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/fr/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/fr/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/fr/next/functions-overview.html b/content/docs/fr/next/functions-overview.html
index 5fe135d..ffef325 100644
--- a/content/docs/fr/next/functions-overview.html
+++ b/content/docs/fr/next/functions-overview.html
@@ -264,7 +264,7 @@
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/fr/next/functions-overview/index.html b/content/docs/fr/next/functions-overview/index.html
index 5fe135d..ffef325 100644
--- a/content/docs/fr/next/functions-overview/index.html
+++ b/content/docs/fr/next/functions-overview/index.html
@@ -264,7 +264,7 @@
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/fr/next/io-cdc-debezium.html b/content/docs/fr/next/io-cdc-debezium.html
index f7fec8f..798f6d0 100644
--- a/content/docs/fr/next/io-cdc-debezium.html
+++ b/content/docs/fr/next/io-cdc-debezium.html
@@ -44,80 +44,188 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json { "tenant": "public", "namespace": "default", "name": "debezium-kafka-source", "className": "org.apache.pulsar.io.kafka.connect.KafkaConnectSource" , "topicName": "kafka-connect-topic", "configs": { "task.class": "io.debezium.connector.mysql.MySqlConnectorTask", "database.hostname": "localhost", &qu [...]
- <<span class="hljs-keyword">br</span> />You could also find the yaml example <span class="hljs-keyword">in</span> this [<span class="hljs-keyword">file</span>](https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml), which has similar content below:</span>
-
- ```<span class="hljs-variable">$yaml</span>
- tenant: <span class="hljs-string">"public"</span>
- namespace: <span class="hljs-string">"default"</span>
- name: <span class="hljs-string">"debezium-kafka-source"</span>
- topicName: <span class="hljs-string">"kafka-connect-topic"</span>
- archive: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-
- ##autoAck: true
- parallelism: 1
-
- configs:
- ## sourceTask
- task.<span class="hljs-keyword">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
- ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8
- database.hostname: <span class="hljs-string">"localhost"</span>
- database.port: <span class="hljs-string">"3306"</span>
- database.user: <span class="hljs-string">"debezium"</span>
- database.password: <span class="hljs-string">"dbz"</span>
- database.server.id: <span class="hljs-string">"184054"</span>
- database.server.name: <span class="hljs-string">"dbserver1"</span>
- database.whitelist: <span class="hljs-string">"inventory"</span>
-
- database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>
- database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span>
- database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG
- key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- value.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- ## PULSAR_SERVICE_URL_CONFIG
- pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## OFFSET_STORAGE_TOPIC_CONFIG
- offset.storage.topic: <span class="hljs-string">"offset-topic"</span>
-
-
-### Usage example
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml tenant: "pubilc" namespace: "default" name: "debezium-mysql-source" topicName: "debezium-mysql-topic" archive: "connectors/pulsar-io-debezium-mysql-2.3.2.nar"">
+<span class="hljs-attribute">parallelism</span>: 1
-Here is a simple example to store MySQL change data using above example config.
+<span class="stata">configs: ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8 database.hostname: <span class="hljs-string">"localhost"</span> database.port: <span class="hljs-string">"3306"</span> database.user: <span class="hljs-string">"debezium"</span> database.password: <span class="hljs-string">"dbz"</span> database.server.id: <span class="hljs-string">"184054"</span> database.server.name: <span class="hljs-string">"dbserver1"</span> da [...]
-- Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes. ```<span class="hljs-variable">$bash</span> docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs [...]
+database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span> database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span> database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span> ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span> value.converter: <span class="hljs-string">"org.apache.ka [...]
- <<span class="hljs-keyword">br</span> />- Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
- ```<span class="hljs-variable">$bash</span>
- bin/pulsar standalone
+ <<span class="hljs-keyword">br</span> />### Usage
-
-- Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`. ```<span class="hljs-variable">$ [...]
-
- <<span class="hljs-keyword">br</span> />- Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+ This example shows how to store the data changes of a MySQL <span class="hljs-keyword">table</span> using the configuration <span class="hljs-keyword">file</span> <span class="hljs-keyword">in</span> the example above.
+
+ 1. Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes.
+
+ ```<span class="hljs-variable">$bash</span>
+ docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs-keyword">e</span> MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8
+ ```
+
+ 2. Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar standalone
+ ```
+
+ 3. Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --source-config-<span class="hljs-keyword">file</span> debezium-mysql-source-config.yaml
+ ```
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{<span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,<span class="hljs-string">"database.port"</span>: <span class="hljs-string">"3306"</span>,<span class="hljs-string">"dat [...]
+ ```
+
+ 4. Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+
+ ```
+ bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+ ```
+
+ 5. start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
+
+ ```<span class="hljs-variable">$bash</span>
+ <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
+ ```
+
+ 6. This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</spa [...]
+
+ ```
+ mysql&gt; <span class="hljs-keyword">use</span> inventory;
+ mysql&gt; show tables;
+ mysql&gt; SELECT * FROM products ;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
+ ```
+
+ <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.
+
+ ## Example of PostgreSQL
+
+ We need to create a configuration <span class="hljs-keyword">file</span> before using the Pulsar Debezium connector.
+
+ ### Configuration
+
+
+ Here is a JSON configuration example:
+
+ ```json
+ {
+ <span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-string">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-string">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-string">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-string">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+ }
-bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+Optionally, you can create a `debezium-postgres-source-config.yaml` <span class="hljs-keyword">file</span>, and <span class="hljs-keyword">copy</span> the \[contents\] (https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml) below to the`debezium-postgres-source-config.yaml` file.</span>
- <<span class="hljs-keyword">br</span> />- start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
- ```<span class="hljs-variable">$bash</span>
- <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
-
+```yaml
+tenant: <span class="hljs-string">"public"</span>
+namespace: <span class="hljs-string">"default"</span>
+name: <span class="hljs-string">"debezium-postgres-source"</span>
+topicName: <span class="hljs-string">"debezium-postgres-topic"</span>
+archive: <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-2.3.2.nar"</span>
-This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products:
+parallelism: 1
- mysql> <span class="hljs-keyword">use</span> inventory;
- mysql> show tables;
- mysql> SELECT * FROM products ;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
-
+configs:
+ ## config <span class="hljs-keyword">for</span> pg, docker image: debezium/example-postgress:0.8
+ database.hostname: <span class="hljs-string">"localhost"</span>
+ database.port: <span class="hljs-string">"5432"</span>
+ database.user: <span class="hljs-string">"postgres"</span>
+ database.password: <span class="hljs-string">"postgres"</span>
+ database.dbname: <span class="hljs-string">"postgres"</span>
+ database.server.name: <span class="hljs-string">"dbserver1"</span>
+ schema.whitelist: <span class="hljs-string">"inventory"</span>
-- <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+ ## PULSAR_SERVICE_URL_CONFIG
+ pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</span></code></pre>
+<h3><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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.42-1.64 1-2.09 [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs"> $bash
+ docker pull debezium/example-postgres:0.8
+ docker run -d -it --rm --name pulsar-postgresql -p 5432:5432 debezium/example-postgres:0.8
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar-admin source localrun --source-config-file debezium-postgres-source-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs"> psql -U postgres postgres
+ postgres=# \c postgres;
+ You are now connected to database "postgres" as user "postgres".
+ postgres=# SET search_path TO inventory;
+ SET
+ postgres=# select * from products;
+ id | name | description | weight
+ -----+--------------------+---------------------------------------------------------+--------
+ 102 | car battery | 12V car battery | 8.1
+ 103 | 12-pack drill bits | 12-pack of drill bits with sizes ranging from #40 to #3 | 0.8
+ 104 | hammer | 12oz carpenter's hammer | 0.75
+ 105 | hammer | 14oz carpenter's hammer | 0.875
+ 106 | hammer | 16oz carpenter's hammer | 1
+ 107 | rocks | box of assorted rocks | 5.3
+ 108 | jacket | water resistent black wind breaker | 0.1
+ 109 | spare tire | 24 inch spare tire | 22.2
+ 101 | 1111111111 | Small 2-wheel scooter | 3.14
+ (9 rows)
+
+ postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+ UPDATE 1
+</code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs"> bin/pulsar-client consume -s "sub-products" public/default/dbserver1.inventory.products -n 0
+</code></pre>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#usage">Usage</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/fr/next/io-cdc-debezium/index.html b/content/docs/fr/next/io-cdc-debezium/index.html
index f7fec8f..798f6d0 100644
--- a/content/docs/fr/next/io-cdc-debezium/index.html
+++ b/content/docs/fr/next/io-cdc-debezium/index.html
@@ -44,80 +44,188 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json { "tenant": "public", "namespace": "default", "name": "debezium-kafka-source", "className": "org.apache.pulsar.io.kafka.connect.KafkaConnectSource" , "topicName": "kafka-connect-topic", "configs": { "task.class": "io.debezium.connector.mysql.MySqlConnectorTask", "database.hostname": "localhost", &qu [...]
- <<span class="hljs-keyword">br</span> />You could also find the yaml example <span class="hljs-keyword">in</span> this [<span class="hljs-keyword">file</span>](https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml), which has similar content below:</span>
-
- ```<span class="hljs-variable">$yaml</span>
- tenant: <span class="hljs-string">"public"</span>
- namespace: <span class="hljs-string">"default"</span>
- name: <span class="hljs-string">"debezium-kafka-source"</span>
- topicName: <span class="hljs-string">"kafka-connect-topic"</span>
- archive: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-
- ##autoAck: true
- parallelism: 1
-
- configs:
- ## sourceTask
- task.<span class="hljs-keyword">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
- ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8
- database.hostname: <span class="hljs-string">"localhost"</span>
- database.port: <span class="hljs-string">"3306"</span>
- database.user: <span class="hljs-string">"debezium"</span>
- database.password: <span class="hljs-string">"dbz"</span>
- database.server.id: <span class="hljs-string">"184054"</span>
- database.server.name: <span class="hljs-string">"dbserver1"</span>
- database.whitelist: <span class="hljs-string">"inventory"</span>
-
- database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>
- database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span>
- database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG
- key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- value.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- ## PULSAR_SERVICE_URL_CONFIG
- pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## OFFSET_STORAGE_TOPIC_CONFIG
- offset.storage.topic: <span class="hljs-string">"offset-topic"</span>
-
-
-### Usage example
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml tenant: "pubilc" namespace: "default" name: "debezium-mysql-source" topicName: "debezium-mysql-topic" archive: "connectors/pulsar-io-debezium-mysql-2.3.2.nar"">
+<span class="hljs-attribute">parallelism</span>: 1
-Here is a simple example to store MySQL change data using above example config.
+<span class="stata">configs: ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8 database.hostname: <span class="hljs-string">"localhost"</span> database.port: <span class="hljs-string">"3306"</span> database.user: <span class="hljs-string">"debezium"</span> database.password: <span class="hljs-string">"dbz"</span> database.server.id: <span class="hljs-string">"184054"</span> database.server.name: <span class="hljs-string">"dbserver1"</span> da [...]
-- Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes. ```<span class="hljs-variable">$bash</span> docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs [...]
+database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span> database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span> database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span> ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span> value.converter: <span class="hljs-string">"org.apache.ka [...]
- <<span class="hljs-keyword">br</span> />- Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
- ```<span class="hljs-variable">$bash</span>
- bin/pulsar standalone
+ <<span class="hljs-keyword">br</span> />### Usage
-
-- Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`. ```<span class="hljs-variable">$ [...]
-
- <<span class="hljs-keyword">br</span> />- Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+ This example shows how to store the data changes of a MySQL <span class="hljs-keyword">table</span> using the configuration <span class="hljs-keyword">file</span> <span class="hljs-keyword">in</span> the example above.
+
+ 1. Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes.
+
+ ```<span class="hljs-variable">$bash</span>
+ docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs-keyword">e</span> MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8
+ ```
+
+ 2. Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar standalone
+ ```
+
+ 3. Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --source-config-<span class="hljs-keyword">file</span> debezium-mysql-source-config.yaml
+ ```
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{<span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,<span class="hljs-string">"database.port"</span>: <span class="hljs-string">"3306"</span>,<span class="hljs-string">"dat [...]
+ ```
+
+ 4. Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+
+ ```
+ bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+ ```
+
+ 5. start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
+
+ ```<span class="hljs-variable">$bash</span>
+ <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
+ ```
+
+ 6. This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</spa [...]
+
+ ```
+ mysql&gt; <span class="hljs-keyword">use</span> inventory;
+ mysql&gt; show tables;
+ mysql&gt; SELECT * FROM products ;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
+ ```
+
+ <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.
+
+ ## Example of PostgreSQL
+
+ We need to create a configuration <span class="hljs-keyword">file</span> before using the Pulsar Debezium connector.
+
+ ### Configuration
+
+
+ Here is a JSON configuration example:
+
+ ```json
+ {
+ <span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-string">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-string">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-string">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-string">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+ }
-bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+Optionally, you can create a `debezium-postgres-source-config.yaml` <span class="hljs-keyword">file</span>, and <span class="hljs-keyword">copy</span> the \[contents\] (https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml) below to the`debezium-postgres-source-config.yaml` file.</span>
- <<span class="hljs-keyword">br</span> />- start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
- ```<span class="hljs-variable">$bash</span>
- <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
-
+```yaml
+tenant: <span class="hljs-string">"public"</span>
+namespace: <span class="hljs-string">"default"</span>
+name: <span class="hljs-string">"debezium-postgres-source"</span>
+topicName: <span class="hljs-string">"debezium-postgres-topic"</span>
+archive: <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-2.3.2.nar"</span>
-This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products:
+parallelism: 1
- mysql> <span class="hljs-keyword">use</span> inventory;
- mysql> show tables;
- mysql> SELECT * FROM products ;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
-
+configs:
+ ## config <span class="hljs-keyword">for</span> pg, docker image: debezium/example-postgress:0.8
+ database.hostname: <span class="hljs-string">"localhost"</span>
+ database.port: <span class="hljs-string">"5432"</span>
+ database.user: <span class="hljs-string">"postgres"</span>
+ database.password: <span class="hljs-string">"postgres"</span>
+ database.dbname: <span class="hljs-string">"postgres"</span>
+ database.server.name: <span class="hljs-string">"dbserver1"</span>
+ schema.whitelist: <span class="hljs-string">"inventory"</span>
-- <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+ ## PULSAR_SERVICE_URL_CONFIG
+ pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</span></code></pre>
+<h3><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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.42-1.64 1-2.09 [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs"> $bash
+ docker pull debezium/example-postgres:0.8
+ docker run -d -it --rm --name pulsar-postgresql -p 5432:5432 debezium/example-postgres:0.8
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar-admin source localrun --source-config-file debezium-postgres-source-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs"> psql -U postgres postgres
+ postgres=# \c postgres;
+ You are now connected to database "postgres" as user "postgres".
+ postgres=# SET search_path TO inventory;
+ SET
+ postgres=# select * from products;
+ id | name | description | weight
+ -----+--------------------+---------------------------------------------------------+--------
+ 102 | car battery | 12V car battery | 8.1
+ 103 | 12-pack drill bits | 12-pack of drill bits with sizes ranging from #40 to #3 | 0.8
+ 104 | hammer | 12oz carpenter's hammer | 0.75
+ 105 | hammer | 14oz carpenter's hammer | 0.875
+ 106 | hammer | 16oz carpenter's hammer | 1
+ 107 | rocks | box of assorted rocks | 5.3
+ 108 | jacket | water resistent black wind breaker | 0.1
+ 109 | spare tire | 24 inch spare tire | 22.2
+ 101 | 1111111111 | Small 2-wheel scooter | 3.14
+ (9 rows)
+
+ postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+ UPDATE 1
+</code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs"> bin/pulsar-client consume -s "sub-products" public/default/dbserver1.inventory.products -n 0
+</code></pre>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#usage">Usage</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/fr/next/reference-cli-tools.html b/content/docs/fr/next/reference-cli-tools.html
index 82e21f2..799e942 100644
--- a/content/docs/fr/next/reference-cli-tools.html
+++ b/content/docs/fr/next/reference-cli-tools.html
@@ -445,7 +445,8 @@ $ pulsar command
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/fr/next/reference-cli-tools/index.html b/content/docs/fr/next/reference-cli-tools/index.html
index 82e21f2..799e942 100644
--- a/content/docs/fr/next/reference-cli-tools/index.html
+++ b/content/docs/fr/next/reference-cli-tools/index.html
@@ -445,7 +445,8 @@ $ pulsar command
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/fr/next/security-kerberos.html b/content/docs/fr/next/security-kerberos.html
index cb1cb66..4dbfa5a 100644
--- a/content/docs/fr/next/security-kerberos.html
+++ b/content/docs/fr/next/security-kerberos.html
@@ -162,7 +162,14 @@ saslJaasBrokerSectionName=PulsarBroker</p></li>
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"> <dependency>
+ <groupId>org.apache.pulsar</groupId>
+ <artifactId>pulsar-client-auth-sasl</artifactId>
+ <version>${pulsar.version}</version>
+ </dependency>
+</code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/fr/next/security-kerberos/index.html b/content/docs/fr/next/security-kerberos/index.html
index cb1cb66..4dbfa5a 100644
--- a/content/docs/fr/next/security-kerberos/index.html
+++ b/content/docs/fr/next/security-kerberos/index.html
@@ -162,7 +162,14 @@ saslJaasBrokerSectionName=PulsarBroker</p></li>
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"> <dependency>
+ <groupId>org.apache.pulsar</groupId>
+ <artifactId>pulsar-client-auth-sasl</artifactId>
+ <version>${pulsar.version}</version>
+ </dependency>
+</code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/ja/next/administration-zk-bk.html b/content/docs/ja/next/administration-zk-bk.html
index 3edeb52..9837329 100644
--- a/content/docs/ja/next/administration-zk-bk.html
+++ b/content/docs/ja/next/administration-zk-bk.html
@@ -190,8 +190,11 @@
<p>BookKeeper bookies can be configured using the <a href="/docs/ja/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/ja/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/ja/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/ja/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/ja/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/ja/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/ja/next/administration-zk-bk/index.html b/content/docs/ja/next/administration-zk-bk/index.html
index 3edeb52..9837329 100644
--- a/content/docs/ja/next/administration-zk-bk/index.html
+++ b/content/docs/ja/next/administration-zk-bk/index.html
@@ -190,8 +190,11 @@
<p>BookKeeper bookies can be configured using the <a href="/docs/ja/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/ja/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/ja/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/ja/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/ja/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/ja/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/ja/next/functions-overview.html b/content/docs/ja/next/functions-overview.html
index c2358c9..daa2829 100644
--- a/content/docs/ja/next/functions-overview.html
+++ b/content/docs/ja/next/functions-overview.html
@@ -264,7 +264,7 @@
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/ja/next/functions-overview/index.html b/content/docs/ja/next/functions-overview/index.html
index c2358c9..daa2829 100644
--- a/content/docs/ja/next/functions-overview/index.html
+++ b/content/docs/ja/next/functions-overview/index.html
@@ -264,7 +264,7 @@
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/ja/next/io-cdc-debezium.html b/content/docs/ja/next/io-cdc-debezium.html
index 96564fd..9275b03 100644
--- a/content/docs/ja/next/io-cdc-debezium.html
+++ b/content/docs/ja/next/io-cdc-debezium.html
@@ -44,80 +44,188 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json { "tenant": "public", "namespace": "default", "name": "debezium-kafka-source", "className": "org.apache.pulsar.io.kafka.connect.KafkaConnectSource" , "topicName": "kafka-connect-topic", "configs": { "task.class": "io.debezium.connector.mysql.MySqlConnectorTask", "database.hostname": "localhost", &qu [...]
- <<span class="hljs-keyword">br</span> />You could also find the yaml example <span class="hljs-keyword">in</span> this [<span class="hljs-keyword">file</span>](https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml), which has similar content below:</span>
-
- ```<span class="hljs-variable">$yaml</span>
- tenant: <span class="hljs-string">"public"</span>
- namespace: <span class="hljs-string">"default"</span>
- name: <span class="hljs-string">"debezium-kafka-source"</span>
- topicName: <span class="hljs-string">"kafka-connect-topic"</span>
- archive: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-
- ##autoAck: true
- parallelism: 1
-
- configs:
- ## sourceTask
- task.<span class="hljs-keyword">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
- ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8
- database.hostname: <span class="hljs-string">"localhost"</span>
- database.port: <span class="hljs-string">"3306"</span>
- database.user: <span class="hljs-string">"debezium"</span>
- database.password: <span class="hljs-string">"dbz"</span>
- database.server.id: <span class="hljs-string">"184054"</span>
- database.server.name: <span class="hljs-string">"dbserver1"</span>
- database.whitelist: <span class="hljs-string">"inventory"</span>
-
- database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>
- database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span>
- database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG
- key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- value.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- ## PULSAR_SERVICE_URL_CONFIG
- pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## OFFSET_STORAGE_TOPIC_CONFIG
- offset.storage.topic: <span class="hljs-string">"offset-topic"</span>
-
-
-### Usage example
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml tenant: "pubilc" namespace: "default" name: "debezium-mysql-source" topicName: "debezium-mysql-topic" archive: "connectors/pulsar-io-debezium-mysql-2.3.2.nar"">
+<span class="hljs-attribute">parallelism</span>: 1
-Here is a simple example to store MySQL change data using above example config.
+<span class="stata">configs: ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8 database.hostname: <span class="hljs-string">"localhost"</span> database.port: <span class="hljs-string">"3306"</span> database.user: <span class="hljs-string">"debezium"</span> database.password: <span class="hljs-string">"dbz"</span> database.server.id: <span class="hljs-string">"184054"</span> database.server.name: <span class="hljs-string">"dbserver1"</span> da [...]
-- Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes. ```<span class="hljs-variable">$bash</span> docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs [...]
+database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span> database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span> database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span> ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span> value.converter: <span class="hljs-string">"org.apache.ka [...]
- <<span class="hljs-keyword">br</span> />- Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
- ```<span class="hljs-variable">$bash</span>
- bin/pulsar standalone
+ <<span class="hljs-keyword">br</span> />### Usage
-
-- Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`. ```<span class="hljs-variable">$ [...]
-
- <<span class="hljs-keyword">br</span> />- Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+ This example shows how to store the data changes of a MySQL <span class="hljs-keyword">table</span> using the configuration <span class="hljs-keyword">file</span> <span class="hljs-keyword">in</span> the example above.
+
+ 1. Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes.
+
+ ```<span class="hljs-variable">$bash</span>
+ docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs-keyword">e</span> MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8
+ ```
+
+ 2. Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar standalone
+ ```
+
+ 3. Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --source-config-<span class="hljs-keyword">file</span> debezium-mysql-source-config.yaml
+ ```
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{<span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,<span class="hljs-string">"database.port"</span>: <span class="hljs-string">"3306"</span>,<span class="hljs-string">"dat [...]
+ ```
+
+ 4. Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+
+ ```
+ bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+ ```
+
+ 5. start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
+
+ ```<span class="hljs-variable">$bash</span>
+ <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
+ ```
+
+ 6. This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</spa [...]
+
+ ```
+ mysql&gt; <span class="hljs-keyword">use</span> inventory;
+ mysql&gt; show tables;
+ mysql&gt; SELECT * FROM products ;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
+ ```
+
+ <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.
+
+ ## Example of PostgreSQL
+
+ We need to create a configuration <span class="hljs-keyword">file</span> before using the Pulsar Debezium connector.
+
+ ### Configuration
+
+
+ Here is a JSON configuration example:
+
+ ```json
+ {
+ <span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-string">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-string">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-string">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-string">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+ }
-bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+Optionally, you can create a `debezium-postgres-source-config.yaml` <span class="hljs-keyword">file</span>, and <span class="hljs-keyword">copy</span> the \[contents\] (https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml) below to the`debezium-postgres-source-config.yaml` file.</span>
- <<span class="hljs-keyword">br</span> />- start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
- ```<span class="hljs-variable">$bash</span>
- <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
-
+```yaml
+tenant: <span class="hljs-string">"public"</span>
+namespace: <span class="hljs-string">"default"</span>
+name: <span class="hljs-string">"debezium-postgres-source"</span>
+topicName: <span class="hljs-string">"debezium-postgres-topic"</span>
+archive: <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-2.3.2.nar"</span>
-This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products:
+parallelism: 1
- mysql> <span class="hljs-keyword">use</span> inventory;
- mysql> show tables;
- mysql> SELECT * FROM products ;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
-
+configs:
+ ## config <span class="hljs-keyword">for</span> pg, docker image: debezium/example-postgress:0.8
+ database.hostname: <span class="hljs-string">"localhost"</span>
+ database.port: <span class="hljs-string">"5432"</span>
+ database.user: <span class="hljs-string">"postgres"</span>
+ database.password: <span class="hljs-string">"postgres"</span>
+ database.dbname: <span class="hljs-string">"postgres"</span>
+ database.server.name: <span class="hljs-string">"dbserver1"</span>
+ schema.whitelist: <span class="hljs-string">"inventory"</span>
-- <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+ ## PULSAR_SERVICE_URL_CONFIG
+ pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</span></code></pre>
+<h3><a class="anchor" aria-hidden="true" id="使い方"></a><a href="#使い方" 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.42-1.64 1-2.09V6.2 [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs"> $bash
+ docker pull debezium/example-postgres:0.8
+ docker run -d -it --rm --name pulsar-postgresql -p 5432:5432 debezium/example-postgres:0.8
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar-admin source localrun --source-config-file debezium-postgres-source-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs"> psql -U postgres postgres
+ postgres=# \c postgres;
+ You are now connected to database "postgres" as user "postgres".
+ postgres=# SET search_path TO inventory;
+ SET
+ postgres=# select * from products;
+ id | name | description | weight
+ -----+--------------------+---------------------------------------------------------+--------
+ 102 | car battery | 12V car battery | 8.1
+ 103 | 12-pack drill bits | 12-pack of drill bits with sizes ranging from #40 to #3 | 0.8
+ 104 | hammer | 12oz carpenter's hammer | 0.75
+ 105 | hammer | 14oz carpenter's hammer | 0.875
+ 106 | hammer | 16oz carpenter's hammer | 1
+ 107 | rocks | box of assorted rocks | 5.3
+ 108 | jacket | water resistent black wind breaker | 0.1
+ 109 | spare tire | 24 inch spare tire | 22.2
+ 101 | 1111111111 | Small 2-wheel scooter | 3.14
+ (9 rows)
+
+ postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+ UPDATE 1
+</code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs"> bin/pulsar-client consume -s "sub-products" public/default/dbserver1.inventory.products -n 0
+</code></pre>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#使い方">使い方</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather log [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/ja/next/io-cdc-debezium/index.html b/content/docs/ja/next/io-cdc-debezium/index.html
index 96564fd..9275b03 100644
--- a/content/docs/ja/next/io-cdc-debezium/index.html
+++ b/content/docs/ja/next/io-cdc-debezium/index.html
@@ -44,80 +44,188 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json { "tenant": "public", "namespace": "default", "name": "debezium-kafka-source", "className": "org.apache.pulsar.io.kafka.connect.KafkaConnectSource" , "topicName": "kafka-connect-topic", "configs": { "task.class": "io.debezium.connector.mysql.MySqlConnectorTask", "database.hostname": "localhost", &qu [...]
- <<span class="hljs-keyword">br</span> />You could also find the yaml example <span class="hljs-keyword">in</span> this [<span class="hljs-keyword">file</span>](https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml), which has similar content below:</span>
-
- ```<span class="hljs-variable">$yaml</span>
- tenant: <span class="hljs-string">"public"</span>
- namespace: <span class="hljs-string">"default"</span>
- name: <span class="hljs-string">"debezium-kafka-source"</span>
- topicName: <span class="hljs-string">"kafka-connect-topic"</span>
- archive: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-
- ##autoAck: true
- parallelism: 1
-
- configs:
- ## sourceTask
- task.<span class="hljs-keyword">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
- ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8
- database.hostname: <span class="hljs-string">"localhost"</span>
- database.port: <span class="hljs-string">"3306"</span>
- database.user: <span class="hljs-string">"debezium"</span>
- database.password: <span class="hljs-string">"dbz"</span>
- database.server.id: <span class="hljs-string">"184054"</span>
- database.server.name: <span class="hljs-string">"dbserver1"</span>
- database.whitelist: <span class="hljs-string">"inventory"</span>
-
- database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>
- database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span>
- database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG
- key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- value.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- ## PULSAR_SERVICE_URL_CONFIG
- pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## OFFSET_STORAGE_TOPIC_CONFIG
- offset.storage.topic: <span class="hljs-string">"offset-topic"</span>
-
-
-### Usage example
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml tenant: "pubilc" namespace: "default" name: "debezium-mysql-source" topicName: "debezium-mysql-topic" archive: "connectors/pulsar-io-debezium-mysql-2.3.2.nar"">
+<span class="hljs-attribute">parallelism</span>: 1
-Here is a simple example to store MySQL change data using above example config.
+<span class="stata">configs: ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8 database.hostname: <span class="hljs-string">"localhost"</span> database.port: <span class="hljs-string">"3306"</span> database.user: <span class="hljs-string">"debezium"</span> database.password: <span class="hljs-string">"dbz"</span> database.server.id: <span class="hljs-string">"184054"</span> database.server.name: <span class="hljs-string">"dbserver1"</span> da [...]
-- Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes. ```<span class="hljs-variable">$bash</span> docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs [...]
+database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span> database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span> database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span> ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span> value.converter: <span class="hljs-string">"org.apache.ka [...]
- <<span class="hljs-keyword">br</span> />- Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
- ```<span class="hljs-variable">$bash</span>
- bin/pulsar standalone
+ <<span class="hljs-keyword">br</span> />### Usage
-
-- Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`. ```<span class="hljs-variable">$ [...]
-
- <<span class="hljs-keyword">br</span> />- Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+ This example shows how to store the data changes of a MySQL <span class="hljs-keyword">table</span> using the configuration <span class="hljs-keyword">file</span> <span class="hljs-keyword">in</span> the example above.
+
+ 1. Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes.
+
+ ```<span class="hljs-variable">$bash</span>
+ docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs-keyword">e</span> MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8
+ ```
+
+ 2. Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar standalone
+ ```
+
+ 3. Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --source-config-<span class="hljs-keyword">file</span> debezium-mysql-source-config.yaml
+ ```
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{<span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,<span class="hljs-string">"database.port"</span>: <span class="hljs-string">"3306"</span>,<span class="hljs-string">"dat [...]
+ ```
+
+ 4. Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+
+ ```
+ bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+ ```
+
+ 5. start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
+
+ ```<span class="hljs-variable">$bash</span>
+ <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
+ ```
+
+ 6. This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</spa [...]
+
+ ```
+ mysql&gt; <span class="hljs-keyword">use</span> inventory;
+ mysql&gt; show tables;
+ mysql&gt; SELECT * FROM products ;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
+ ```
+
+ <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.
+
+ ## Example of PostgreSQL
+
+ We need to create a configuration <span class="hljs-keyword">file</span> before using the Pulsar Debezium connector.
+
+ ### Configuration
+
+
+ Here is a JSON configuration example:
+
+ ```json
+ {
+ <span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-string">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-string">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-string">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-string">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+ }
-bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+Optionally, you can create a `debezium-postgres-source-config.yaml` <span class="hljs-keyword">file</span>, and <span class="hljs-keyword">copy</span> the \[contents\] (https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml) below to the`debezium-postgres-source-config.yaml` file.</span>
- <<span class="hljs-keyword">br</span> />- start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
- ```<span class="hljs-variable">$bash</span>
- <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
-
+```yaml
+tenant: <span class="hljs-string">"public"</span>
+namespace: <span class="hljs-string">"default"</span>
+name: <span class="hljs-string">"debezium-postgres-source"</span>
+topicName: <span class="hljs-string">"debezium-postgres-topic"</span>
+archive: <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-2.3.2.nar"</span>
-This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products:
+parallelism: 1
- mysql> <span class="hljs-keyword">use</span> inventory;
- mysql> show tables;
- mysql> SELECT * FROM products ;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
-
+configs:
+ ## config <span class="hljs-keyword">for</span> pg, docker image: debezium/example-postgress:0.8
+ database.hostname: <span class="hljs-string">"localhost"</span>
+ database.port: <span class="hljs-string">"5432"</span>
+ database.user: <span class="hljs-string">"postgres"</span>
+ database.password: <span class="hljs-string">"postgres"</span>
+ database.dbname: <span class="hljs-string">"postgres"</span>
+ database.server.name: <span class="hljs-string">"dbserver1"</span>
+ schema.whitelist: <span class="hljs-string">"inventory"</span>
-- <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+ ## PULSAR_SERVICE_URL_CONFIG
+ pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</span></code></pre>
+<h3><a class="anchor" aria-hidden="true" id="使い方"></a><a href="#使い方" 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.42-1.64 1-2.09V6.2 [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs"> $bash
+ docker pull debezium/example-postgres:0.8
+ docker run -d -it --rm --name pulsar-postgresql -p 5432:5432 debezium/example-postgres:0.8
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar-admin source localrun --source-config-file debezium-postgres-source-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs"> psql -U postgres postgres
+ postgres=# \c postgres;
+ You are now connected to database "postgres" as user "postgres".
+ postgres=# SET search_path TO inventory;
+ SET
+ postgres=# select * from products;
+ id | name | description | weight
+ -----+--------------------+---------------------------------------------------------+--------
+ 102 | car battery | 12V car battery | 8.1
+ 103 | 12-pack drill bits | 12-pack of drill bits with sizes ranging from #40 to #3 | 0.8
+ 104 | hammer | 12oz carpenter's hammer | 0.75
+ 105 | hammer | 14oz carpenter's hammer | 0.875
+ 106 | hammer | 16oz carpenter's hammer | 1
+ 107 | rocks | box of assorted rocks | 5.3
+ 108 | jacket | water resistent black wind breaker | 0.1
+ 109 | spare tire | 24 inch spare tire | 22.2
+ 101 | 1111111111 | Small 2-wheel scooter | 3.14
+ (9 rows)
+
+ postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+ UPDATE 1
+</code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs"> bin/pulsar-client consume -s "sub-products" public/default/dbserver1.inventory.products -n 0
+</code></pre>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#使い方">使い方</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather log [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/ja/next/reference-cli-tools.html b/content/docs/ja/next/reference-cli-tools.html
index b6bf217..7a1efa3 100644
--- a/content/docs/ja/next/reference-cli-tools.html
+++ b/content/docs/ja/next/reference-cli-tools.html
@@ -445,7 +445,8 @@ $ pulsar command
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/ja/next/reference-cli-tools/index.html b/content/docs/ja/next/reference-cli-tools/index.html
index b6bf217..7a1efa3 100644
--- a/content/docs/ja/next/reference-cli-tools/index.html
+++ b/content/docs/ja/next/reference-cli-tools/index.html
@@ -445,7 +445,8 @@ $ pulsar command
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/ja/next/security-kerberos.html b/content/docs/ja/next/security-kerberos.html
index dc1b847..57edcaf 100644
--- a/content/docs/ja/next/security-kerberos.html
+++ b/content/docs/ja/next/security-kerberos.html
@@ -162,7 +162,14 @@ saslJaasBrokerSectionName=PulsarBroker</p></li>
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"> <dependency>
+ <groupId>org.apache.pulsar</groupId>
+ <artifactId>pulsar-client-auth-sasl</artifactId>
+ <version>${pulsar.version}</version>
+ </dependency>
+</code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/ja/next/security-kerberos/index.html b/content/docs/ja/next/security-kerberos/index.html
index dc1b847..57edcaf 100644
--- a/content/docs/ja/next/security-kerberos/index.html
+++ b/content/docs/ja/next/security-kerberos/index.html
@@ -162,7 +162,14 @@ saslJaasBrokerSectionName=PulsarBroker</p></li>
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"> <dependency>
+ <groupId>org.apache.pulsar</groupId>
+ <artifactId>pulsar-client-auth-sasl</artifactId>
+ <version>${pulsar.version}</version>
+ </dependency>
+</code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/zh-CN/next/administration-zk-bk.html b/content/docs/zh-CN/next/administration-zk-bk.html
index 44749ac..70fb092 100644
--- a/content/docs/zh-CN/next/administration-zk-bk.html
+++ b/content/docs/zh-CN/next/administration-zk-bk.html
@@ -190,8 +190,11 @@
<p>BookKeeper bookies can be configured using the <a href="/docs/zh-CN/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/zh-CN/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/zh-CN/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/zh-CN/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/zh-CN/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/zh-CN/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/zh-CN/next/administration-zk-bk/index.html b/content/docs/zh-CN/next/administration-zk-bk/index.html
index 44749ac..70fb092 100644
--- a/content/docs/zh-CN/next/administration-zk-bk/index.html
+++ b/content/docs/zh-CN/next/administration-zk-bk/index.html
@@ -190,8 +190,11 @@
<p>BookKeeper bookies can be configured using the <a href="/docs/zh-CN/next/reference-configuration#bookkeeper"><code>conf/bookkeeper.conf</code></a> configuration file. The most important aspect of configuring each bookie is ensuring that the <a href="/docs/zh-CN/next/reference-configuration#bookkeeper-zkServers"><code>zkServers</code></a> parameter is set to the connection string for the Pulsar cluster's local ZooKeeper.</p>
<h3><a class="anchor" aria-hidden="true" id="starting-up-bookies"></a><a href="#starting-up-bookies" 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.2 [...]
<p>You can start up a bookie in two ways: in the foreground or as a background daemon.</p>
-<p>To start up a bookie in the foreground, use the <a href="/docs/zh-CN/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a></p>
-<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-daemon start bookie</span>
+<p>To start up a bookie in the foreground, use the <a href="/docs/zh-CN/next/reference-cli-tools#bookkeeper"><code>bookeeper</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/bookkeeper bookie
+</code></pre>
+<p>To start a bookie in the background, use the <a href="/docs/zh-CN/next/reference-cli-tools#pulsar-daemon"><code>pulsar-daemon</code></a> CLI tool:</p>
+<pre><code class="hljs css language-bash">$ bin/pulsar-daemon start bookie
</code></pre>
<p>You can verify that the bookie is working properly using the <code>bookiesanity</code> command for the <a href="/docs/zh-CN/next/reference-cli-tools#bookkeeper-shell">BookKeeper shell</a>:</p>
<pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/bookkeeper shell bookiesanity</span>
diff --git a/content/docs/zh-CN/next/functions-overview.html b/content/docs/zh-CN/next/functions-overview.html
index f3bf90e..8f94150 100644
--- a/content/docs/zh-CN/next/functions-overview.html
+++ b/content/docs/zh-CN/next/functions-overview.html
@@ -266,7 +266,7 @@
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/zh-CN/next/functions-overview/index.html b/content/docs/zh-CN/next/functions-overview/index.html
index f3bf90e..8f94150 100644
--- a/content/docs/zh-CN/next/functions-overview/index.html
+++ b/content/docs/zh-CN/next/functions-overview/index.html
@@ -266,7 +266,7 @@
Logger LOG = context.getLogger();
String functionTenant = context.getTenant();
String functionNamespace = context.getNamespace();
- String functionName = context.getName();
+ String functionName = context.getFunctionName();
LOG.info(<span class="hljs-string">"Function tenant/namespace/name: {}/{}/{}"</span>, functionTenant, functionNamespace, functionName);
<span class="hljs-keyword">return</span> <span class="hljs-keyword">null</span>;
}
diff --git a/content/docs/zh-CN/next/io-cdc-debezium.html b/content/docs/zh-CN/next/io-cdc-debezium.html
index ce18d8f..ca6eded 100644
--- a/content/docs/zh-CN/next/io-cdc-debezium.html
+++ b/content/docs/zh-CN/next/io-cdc-debezium.html
@@ -44,80 +44,188 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json { "tenant": "public", "namespace": "default", "name": "debezium-kafka-source", "className": "org.apache.pulsar.io.kafka.connect.KafkaConnectSource" , "topicName": "kafka-connect-topic", "configs": { "task.class": "io.debezium.connector.mysql.MySqlConnectorTask", "database.hostname": "localhost", &qu [...]
- <<span class="hljs-keyword">br</span> />You could also find the yaml example <span class="hljs-keyword">in</span> this [<span class="hljs-keyword">file</span>](https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml), which has similar content below:</span>
-
- ```<span class="hljs-variable">$yaml</span>
- tenant: <span class="hljs-string">"public"</span>
- namespace: <span class="hljs-string">"default"</span>
- name: <span class="hljs-string">"debezium-kafka-source"</span>
- topicName: <span class="hljs-string">"kafka-connect-topic"</span>
- archive: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-
- ##autoAck: true
- parallelism: 1
-
- configs:
- ## sourceTask
- task.<span class="hljs-keyword">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
- ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8
- database.hostname: <span class="hljs-string">"localhost"</span>
- database.port: <span class="hljs-string">"3306"</span>
- database.user: <span class="hljs-string">"debezium"</span>
- database.password: <span class="hljs-string">"dbz"</span>
- database.server.id: <span class="hljs-string">"184054"</span>
- database.server.name: <span class="hljs-string">"dbserver1"</span>
- database.whitelist: <span class="hljs-string">"inventory"</span>
-
- database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>
- database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span>
- database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG
- key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- value.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- ## PULSAR_SERVICE_URL_CONFIG
- pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## OFFSET_STORAGE_TOPIC_CONFIG
- offset.storage.topic: <span class="hljs-string">"offset-topic"</span>
-
-
-### Usage example
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml tenant: "pubilc" namespace: "default" name: "debezium-mysql-source" topicName: "debezium-mysql-topic" archive: "connectors/pulsar-io-debezium-mysql-2.3.2.nar"">
+<span class="hljs-attribute">parallelism</span>: 1
-Here is a simple example to store MySQL change data using above example config.
+<span class="stata">configs: ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8 database.hostname: <span class="hljs-string">"localhost"</span> database.port: <span class="hljs-string">"3306"</span> database.user: <span class="hljs-string">"debezium"</span> database.password: <span class="hljs-string">"dbz"</span> database.server.id: <span class="hljs-string">"184054"</span> database.server.name: <span class="hljs-string">"dbserver1"</span> da [...]
-- Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes. ```<span class="hljs-variable">$bash</span> docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs [...]
+database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span> database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span> database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span> ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span> value.converter: <span class="hljs-string">"org.apache.ka [...]
- <<span class="hljs-keyword">br</span> />- Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
- ```<span class="hljs-variable">$bash</span>
- bin/pulsar standalone
+ <<span class="hljs-keyword">br</span> />### Usage
-
-- Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`. ```<span class="hljs-variable">$ [...]
-
- <<span class="hljs-keyword">br</span> />- Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+ This example shows how to store the data changes of a MySQL <span class="hljs-keyword">table</span> using the configuration <span class="hljs-keyword">file</span> <span class="hljs-keyword">in</span> the example above.
+
+ 1. Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes.
+
+ ```<span class="hljs-variable">$bash</span>
+ docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs-keyword">e</span> MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8
+ ```
+
+ 2. Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar standalone
+ ```
+
+ 3. Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --source-config-<span class="hljs-keyword">file</span> debezium-mysql-source-config.yaml
+ ```
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{<span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,<span class="hljs-string">"database.port"</span>: <span class="hljs-string">"3306"</span>,<span class="hljs-string">"dat [...]
+ ```
+
+ 4. Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+
+ ```
+ bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+ ```
+
+ 5. start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
+
+ ```<span class="hljs-variable">$bash</span>
+ <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
+ ```
+
+ 6. This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</spa [...]
+
+ ```
+ mysql&gt; <span class="hljs-keyword">use</span> inventory;
+ mysql&gt; show tables;
+ mysql&gt; SELECT * FROM products ;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
+ ```
+
+ <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.
+
+ ## Example of PostgreSQL
+
+ We need to create a configuration <span class="hljs-keyword">file</span> before using the Pulsar Debezium connector.
+
+ ### Configuration
+
+
+ Here is a JSON configuration example:
+
+ ```json
+ {
+ <span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-string">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-string">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-string">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-string">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+ }
-bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+Optionally, you can create a `debezium-postgres-source-config.yaml` <span class="hljs-keyword">file</span>, and <span class="hljs-keyword">copy</span> the \[contents\] (https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml) below to the`debezium-postgres-source-config.yaml` file.</span>
- <<span class="hljs-keyword">br</span> />- start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
- ```<span class="hljs-variable">$bash</span>
- <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
-
+```yaml
+tenant: <span class="hljs-string">"public"</span>
+namespace: <span class="hljs-string">"default"</span>
+name: <span class="hljs-string">"debezium-postgres-source"</span>
+topicName: <span class="hljs-string">"debezium-postgres-topic"</span>
+archive: <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-2.3.2.nar"</span>
-This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products:
+parallelism: 1
- mysql> <span class="hljs-keyword">use</span> inventory;
- mysql> show tables;
- mysql> SELECT * FROM products ;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
-
+configs:
+ ## config <span class="hljs-keyword">for</span> pg, docker image: debezium/example-postgress:0.8
+ database.hostname: <span class="hljs-string">"localhost"</span>
+ database.port: <span class="hljs-string">"5432"</span>
+ database.user: <span class="hljs-string">"postgres"</span>
+ database.password: <span class="hljs-string">"postgres"</span>
+ database.dbname: <span class="hljs-string">"postgres"</span>
+ database.server.name: <span class="hljs-string">"dbserver1"</span>
+ schema.whitelist: <span class="hljs-string">"inventory"</span>
-- <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+ ## PULSAR_SERVICE_URL_CONFIG
+ pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</span></code></pre>
+<h3><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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.42-1.64 1-2.09 [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs"> $bash
+ docker pull debezium/example-postgres:0.8
+ docker run -d -it --rm --name pulsar-postgresql -p 5432:5432 debezium/example-postgres:0.8
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar-admin source localrun --source-config-file debezium-postgres-source-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs"> psql -U postgres postgres
+ postgres=# \c postgres;
+ You are now connected to database "postgres" as user "postgres".
+ postgres=# SET search_path TO inventory;
+ SET
+ postgres=# select * from products;
+ id | name | description | weight
+ -----+--------------------+---------------------------------------------------------+--------
+ 102 | car battery | 12V car battery | 8.1
+ 103 | 12-pack drill bits | 12-pack of drill bits with sizes ranging from #40 to #3 | 0.8
+ 104 | hammer | 12oz carpenter's hammer | 0.75
+ 105 | hammer | 14oz carpenter's hammer | 0.875
+ 106 | hammer | 16oz carpenter's hammer | 1
+ 107 | rocks | box of assorted rocks | 5.3
+ 108 | jacket | water resistent black wind breaker | 0.1
+ 109 | spare tire | 24 inch spare tire | 22.2
+ 101 | 1111111111 | Small 2-wheel scooter | 3.14
+ (9 rows)
+
+ postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+ UPDATE 1
+</code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs"> bin/pulsar-client consume -s "sub-products" public/default/dbserver1.inventory.products -n 0
+</code></pre>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#usage">Usage</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/zh-CN/next/io-cdc-debezium/index.html b/content/docs/zh-CN/next/io-cdc-debezium/index.html
index ce18d8f..ca6eded 100644
--- a/content/docs/zh-CN/next/io-cdc-debezium/index.html
+++ b/content/docs/zh-CN/next/io-cdc-debezium/index.html
@@ -44,80 +44,188 @@
<tr><td><code>offset.storage.topic</code></td><td><code>true</code></td><td><code>null</code></td><td>Record the last committed offsets that the connector successfully completed.</td></tr>
</tbody>
</table>
-<h3><a class="anchor" aria-hidden="true" id="configuration-example"></a><a href="#configuration-example" 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 [...]
-<p>Here is a configuration Json example:</p>
-<pre><code class="hljs css language-$json { "tenant": "public", "namespace": "default", "name": "debezium-kafka-source", "className": "org.apache.pulsar.io.kafka.connect.KafkaConnectSource" , "topicName": "kafka-connect-topic", "configs": { "task.class": "io.debezium.connector.mysql.MySqlConnectorTask", "database.hostname": "localhost", &qu [...]
- <<span class="hljs-keyword">br</span> />You could also find the yaml example <span class="hljs-keyword">in</span> this [<span class="hljs-keyword">file</span>](https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/kafka-connect-adaptor/src/main/resources/debezium-mysql-source-config.yaml), which has similar content below:</span>
-
- ```<span class="hljs-variable">$yaml</span>
- tenant: <span class="hljs-string">"public"</span>
- namespace: <span class="hljs-string">"default"</span>
- name: <span class="hljs-string">"debezium-kafka-source"</span>
- topicName: <span class="hljs-string">"kafka-connect-topic"</span>
- archive: <span class="hljs-string">"connectors/pulsar-io-debezium-mysql-2.3.2.nar"</span>
-
- ##autoAck: true
- parallelism: 1
-
- configs:
- ## sourceTask
- task.<span class="hljs-keyword">class</span>: <span class="hljs-string">"io.debezium.connector.mysql.MySqlConnectorTask"</span>
-
- ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8
- database.hostname: <span class="hljs-string">"localhost"</span>
- database.port: <span class="hljs-string">"3306"</span>
- database.user: <span class="hljs-string">"debezium"</span>
- database.password: <span class="hljs-string">"dbz"</span>
- database.server.id: <span class="hljs-string">"184054"</span>
- database.server.name: <span class="hljs-string">"dbserver1"</span>
- database.whitelist: <span class="hljs-string">"inventory"</span>
-
- database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>
- database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span>
- database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG
- key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- value.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>
- ## PULSAR_SERVICE_URL_CONFIG
- pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
- ## OFFSET_STORAGE_TOPIC_CONFIG
- offset.storage.topic: <span class="hljs-string">"offset-topic"</span>
-
-
-### Usage example
+<h2><a class="anchor" aria-hidden="true" id="example-of-mysql"></a><a href="#example-of-mysql" 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. [...]
+<p>We need to create a configuration file before using the Pulsar Debezium connector.</p>
+<h3><a class="anchor" aria-hidden="true" id="configuration"></a><a href="#configuration" 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-.8 [...]
+<p>Here is a JSON configuration example:</p>
+<pre><code class="hljs css language-json">{
+ <span class="hljs-attr">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-attr">"database.port"</span>: <span class="hljs-string">"3306"</span>,
+ <span class="hljs-attr">"database.user"</span>: <span class="hljs-string">"debezium"</span>,
+ <span class="hljs-attr">"database.password"</span>: <span class="hljs-string">"dbz"</span>,
+ <span class="hljs-attr">"database.server.id"</span>: <span class="hljs-string">"184054"</span>,
+ <span class="hljs-attr">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-attr">"database.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-attr">"database.history"</span>: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span>,
+ <span class="hljs-attr">"database.history.pulsar.topic"</span>: <span class="hljs-string">"history-topic"</span>,
+ <span class="hljs-attr">"database.history.pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"key.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"value.converter"</span>: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span>,
+ <span class="hljs-attr">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>,
+ <span class="hljs-attr">"offset.storage.topic"</span>: <span class="hljs-string">"offset-topic"</span>
+}
+</code></pre>
+<p>Optionally, you can create a <code>debezium-mysql-source-config.yaml</code> file, and copy the [contents] (<a href="https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml">https://github.com/apache/pulsar/blob/master/pulsar-io/debezium/mysql/src/main/resources/debezium-mysql-source-config.yaml</a>) below to the <code>debezium-mysql-source-config.yaml</code> file.</p>
+<pre><code class="hljs css language-$yaml tenant: "pubilc" namespace: "default" name: "debezium-mysql-source" topicName: "debezium-mysql-topic" archive: "connectors/pulsar-io-debezium-mysql-2.3.2.nar"">
+<span class="hljs-attribute">parallelism</span>: 1
-Here is a simple example to store MySQL change data using above example config.
+<span class="stata">configs: ## config <span class="hljs-keyword">for</span> mysql, docker image: debezium/example-mysql:0.8 database.hostname: <span class="hljs-string">"localhost"</span> database.port: <span class="hljs-string">"3306"</span> database.user: <span class="hljs-string">"debezium"</span> database.password: <span class="hljs-string">"dbz"</span> database.server.id: <span class="hljs-string">"184054"</span> database.server.name: <span class="hljs-string">"dbserver1"</span> da [...]
-- Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes. ```<span class="hljs-variable">$bash</span> docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs [...]
+database.history: <span class="hljs-string">"org.apache.pulsar.io.debezium.PulsarDatabaseHistory"</span> database.history.pulsar.topic: <span class="hljs-string">"history-topic"</span> database.history.pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span> ## KEY_CONVERTER_CLASS_CONFIG, VALUE_CONVERTER_CLASS_CONFIG key.converter: <span class="hljs-string">"org.apache.kafka.connect.json.JsonConverter"</span> value.converter: <span class="hljs-string">"org.apache.ka [...]
- <<span class="hljs-keyword">br</span> />- Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
- ```<span class="hljs-variable">$bash</span>
- bin/pulsar standalone
+ <<span class="hljs-keyword">br</span> />### Usage
-
-- Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`. ```<span class="hljs-variable">$ [...]
-
- <<span class="hljs-keyword">br</span> />- Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+ This example shows how to store the data changes of a MySQL <span class="hljs-keyword">table</span> using the configuration <span class="hljs-keyword">file</span> <span class="hljs-keyword">in</span> the example above.
+
+ 1. Start a MySQL server with <span class="hljs-keyword">an</span> example database, from <span class="hljs-keyword">which</span> Debezium can <span class="hljs-keyword">capture</span> changes.
+
+ ```<span class="hljs-variable">$bash</span>
+ docker <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysql -p 3306:3306 -<span class="hljs-keyword">e</span> MYSQL_ROOT_PASSWORD=debezium -<span class="hljs-keyword">e</span> MYSQL_USER=mysqluser -<span class="hljs-keyword">e</span> MYSQL_PASSWORD=mysqlpw debezium/example-mysql:0.8
+ ```
+
+ 2. Start a Pulsar service locally <span class="hljs-keyword">in</span> standalone mode.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar standalone
+ ```
+
+ 3. Start pulsar debezium connector, with <span class="hljs-keyword">local</span> <span class="hljs-keyword">run</span> mode, and using above yaml config <span class="hljs-keyword">file</span>. Please make sure that the nar <span class="hljs-keyword">file</span> is available <span class="hljs-keyword">as</span> configured <span class="hljs-keyword">in</span> path `connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar`.
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --source-config-<span class="hljs-keyword">file</span> debezium-mysql-source-config.yaml
+ ```
+
+ ```<span class="hljs-variable">$bash</span>
+ bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-mysql-{{pulsar:<span class="hljs-keyword">version</span>}}.nar --name debezium-mysql-source --destination-topic-name debezium-mysql-topic --tenant public --namespace default --source-config '{<span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,<span class="hljs-string">"database.port"</span>: <span class="hljs-string">"3306"</span>,<span class="hljs-string">"dat [...]
+ ```
+
+ 4. Subscribe the topic <span class="hljs-keyword">for</span> <span class="hljs-keyword">table</span> `inventory.products`.
+
+ ```
+ bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+ ```
+
+ 5. start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
+
+ ```<span class="hljs-variable">$bash</span>
+ <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
+ ```
+
+ 6. This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</spa [...]
+
+ ```
+ mysql&gt; <span class="hljs-keyword">use</span> inventory;
+ mysql&gt; show tables;
+ mysql&gt; SELECT * FROM products ;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
+ mysql&gt; <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
+ ```
+
+ <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.
+
+ ## Example of PostgreSQL
+
+ We need to create a configuration <span class="hljs-keyword">file</span> before using the Pulsar Debezium connector.
+
+ ### Configuration
+
+
+ Here is a JSON configuration example:
+
+ ```json
+ {
+ <span class="hljs-string">"database.hostname"</span>: <span class="hljs-string">"localhost"</span>,
+ <span class="hljs-string">"database.port"</span>: <span class="hljs-string">"5432"</span>,
+ <span class="hljs-string">"database.user"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.password"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.dbname"</span>: <span class="hljs-string">"postgres"</span>,
+ <span class="hljs-string">"database.server.name"</span>: <span class="hljs-string">"dbserver1"</span>,
+ <span class="hljs-string">"schema.whitelist"</span>: <span class="hljs-string">"inventory"</span>,
+ <span class="hljs-string">"pulsar.service.url"</span>: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+ }
-bin/pulsar-client consume -s <span class="hljs-string">"sub-products"</span> public/default/dbserver1.inventory.products -<span class="hljs-keyword">n</span> 0
+Optionally, you can create a `debezium-postgres-source-config.yaml` <span class="hljs-keyword">file</span>, and <span class="hljs-keyword">copy</span> the \[contents\] (https:<span class="hljs-comment">//github.com/apache/pulsar/blob/master/pulsar-io/debezium/postgres/src/main/resources/debezium-postgres-source-config.yaml) below to the`debezium-postgres-source-config.yaml` file.</span>
- <<span class="hljs-keyword">br</span> />- start a MySQL <span class="hljs-keyword">cli</span> docker connector, and <span class="hljs-keyword">use</span> it we could change to the <span class="hljs-keyword">table</span> `products` <span class="hljs-keyword">in</span> MySQL server.
- ```<span class="hljs-variable">$bash</span>
- <span class="hljs-variable">$docker</span> <span class="hljs-keyword">run</span> -it --<span class="hljs-keyword">rm</span> --name mysqlterm --link mysql --<span class="hljs-keyword">rm</span> mysql:5.7 <span class="hljs-keyword">sh</span> -c 'exec mysql -<span class="hljs-keyword">h</span><span class="hljs-string">"$MYSQL_PORT_3306_TCP_ADDR"</span> -P<span class="hljs-string">"$MYSQL_PORT_3306_TCP_PORT"</span> -uroot -p<span class="hljs-string">"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"</span>'
-
+```yaml
+tenant: <span class="hljs-string">"public"</span>
+namespace: <span class="hljs-string">"default"</span>
+name: <span class="hljs-string">"debezium-postgres-source"</span>
+topicName: <span class="hljs-string">"debezium-postgres-topic"</span>
+archive: <span class="hljs-string">"connectors/pulsar-io-debezium-postgres-2.3.2.nar"</span>
-This command will pop <span class="hljs-keyword">out</span> MySQL <span class="hljs-keyword">cli</span>, <span class="hljs-keyword">in</span> this <span class="hljs-keyword">cli</span>, we could <span class="hljs-keyword">do</span> a change <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products, <span class="hljs-keyword">use</span> commands below to change the name of 2 items <span class="hljs-keyword">in</span> <span class="hljs-keyword">table</span> products:
+parallelism: 1
- mysql> <span class="hljs-keyword">use</span> inventory;
- mysql> show tables;
- mysql> SELECT * FROM products ;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=101;
- mysql> <span class="hljs-keyword">UPDATE</span> products <span class="hljs-keyword">SET</span> name='1111111111' WHERE id=107;
-
+configs:
+ ## config <span class="hljs-keyword">for</span> pg, docker image: debezium/example-postgress:0.8
+ database.hostname: <span class="hljs-string">"localhost"</span>
+ database.port: <span class="hljs-string">"5432"</span>
+ database.user: <span class="hljs-string">"postgres"</span>
+ database.password: <span class="hljs-string">"postgres"</span>
+ database.dbname: <span class="hljs-string">"postgres"</span>
+ database.server.name: <span class="hljs-string">"dbserver1"</span>
+ schema.whitelist: <span class="hljs-string">"inventory"</span>
-- <span class="hljs-keyword">In</span> above subscribe topic terminal <span class="hljs-keyword">tab</span>, we could find that 2 changes has been kept into products topic.</code></pre>
-</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather logo are trademarks of The Apache Software Foundation.</section><span><script>
+ ## PULSAR_SERVICE_URL_CONFIG
+ pulsar.service.url: <span class="hljs-string">"pulsar://127.0.0.1:6650"</span>
+</span></code></pre>
+<h3><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" 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.42-1.64 1-2.09 [...]
+<p>This example shows how to store the data changes of a PostgreSQL table using the configuration file in the example above.</p>
+<ol>
+<li><p>Start a PostgreSQL server with an example database, from which Debezium can capture changes.</p>
+<pre><code class="hljs"> $bash
+ docker pull debezium/example-postgres:0.8
+ docker run -d -it --rm --name pulsar-postgresql -p 5432:5432 debezium/example-postgres:0.8
+</code></pre></li>
+<li><p>Start a Pulsar service locally in standalone mode.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar standalone
+</code></pre></li>
+<li><p>Start the Pulsar Debezium connector in local run mode and use the JSON or YAML configuration file in the example above. Make sure the nar file is available at <code>connectors/pulsar-io-debezium-postgres-2.3.2.nar</code>.</p>
+<pre><code class="hljs"> $bash
+ bin/pulsar-admin source localrun --source-config-file debezium-postgres-source-config.yaml
+</code></pre></li>
+</ol>
+<p>Optionally, start Pulsar Debezium connector in local run mode and use the JSON config file in the example above.</p>
+<pre><code class="hljs">```$bash
+bin/pulsar-admin source localrun --archive connectors/pulsar-io-debezium-postgres-2.3.2.nar --name debezium-postgres-source --destination-topic-name debezium-postgres-topic --tenant public --namespace default --source-config '{"database.hostname": "localhost","database.port": "5432","database.user": "postgres","database.password": "postgres","database.dbname": "postgres","database.ser [...]
+```
+</code></pre>
+<ol start="4">
+<li><p>PostgreSQL CLI appears after this command is executed. Use the commands below to update the <code>products</code> table.</p>
+<pre><code class="hljs css language-bash">docker <span class="hljs-built_in">exec</span> -it pulsar-postgresql /bin/bash
+</code></pre>
+<pre><code class="hljs"> psql -U postgres postgres
+ postgres=# \c postgres;
+ You are now connected to database "postgres" as user "postgres".
+ postgres=# SET search_path TO inventory;
+ SET
+ postgres=# select * from products;
+ id | name | description | weight
+ -----+--------------------+---------------------------------------------------------+--------
+ 102 | car battery | 12V car battery | 8.1
+ 103 | 12-pack drill bits | 12-pack of drill bits with sizes ranging from #40 to #3 | 0.8
+ 104 | hammer | 12oz carpenter's hammer | 0.75
+ 105 | hammer | 14oz carpenter's hammer | 0.875
+ 106 | hammer | 16oz carpenter's hammer | 1
+ 107 | rocks | box of assorted rocks | 5.3
+ 108 | jacket | water resistent black wind breaker | 0.1
+ 109 | spare tire | 24 inch spare tire | 22.2
+ 101 | 1111111111 | Small 2-wheel scooter | 3.14
+ (9 rows)
+
+ postgres=# UPDATE products SET name='1111111111' WHERE id=107;
+ UPDATE 1
+</code></pre></li>
+<li><p>Subscribe the topic for the <code>inventory.products</code> table.</p>
+<pre><code class="hljs"> bin/pulsar-client consume -s "sub-products" public/default/dbserver1.inventory.products -n 0
+</code></pre>
+<p>At this time, you will receive the following information:</p>
+<pre><code class="hljs css language-bash">----- got message -----
+{<span class="hljs-string">"schema"</span>:{<span class="hljs-string">"type"</span>:<span class="hljs-string">"struct"</span>,<span class="hljs-string">"fields"</span>:[{<span class="hljs-string">"type"</span>:<span class="hljs-string">"int32"</span>,<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false</span>,<span class="hljs-string">"field"</span>:<span class="hljs-string">"id"</span>}],<span class="hljs-string">"optional"</span>:<span class="hljs-literal">false [...]
+</code></pre></li>
+</ol>
+</span></div></article></div><div class="docs-prevnext"></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#example-of-mysql">Example of MySQL</a><ul class="toc-headings"><li><a href="#configuration">Configuration</a></li><li><a href="#usage">Usage</a></li></ul></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019 The Apache Software Foundation. All Rights Reserved. Apache, Apache Pulsar and the Apache feather [...]
const community = document.querySelector("a[href='#community']").parentNode;
const communityMenu =
'<li>' +
diff --git a/content/docs/zh-CN/next/reference-cli-tools.html b/content/docs/zh-CN/next/reference-cli-tools.html
index a30136e..6302d1b 100644
--- a/content/docs/zh-CN/next/reference-cli-tools.html
+++ b/content/docs/zh-CN/next/reference-cli-tools.html
@@ -445,7 +445,8 @@ $ pulsar command
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/zh-CN/next/reference-cli-tools/index.html b/content/docs/zh-CN/next/reference-cli-tools/index.html
index a30136e..6302d1b 100644
--- a/content/docs/zh-CN/next/reference-cli-tools/index.html
+++ b/content/docs/zh-CN/next/reference-cli-tools/index.html
@@ -445,7 +445,8 @@ $ pulsar command
<tr><td><code>-m</code>, <code>--num-messages</code></td><td>Number of messages to publish in total. If set to 0, it will keep publishing.</td><td>0</td></tr>
<tr><td><code>-n</code>, <code>--num-producers</code></td><td>The number of producers (per topic)</td><td>1</td></tr>
<tr><td><code>-t</code>, <code>--num-topic</code></td><td>The number of topics</td><td>1</td></tr>
-<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from a file instead of an empty buffer</td><td></td></tr>
+<tr><td><code>-f</code>, <code>--payload-file</code></td><td>Use payload from an UTF-8 encoded text file and a payload will be randomly selected when publishing messages</td><td></td></tr>
+<tr><td><code>-e</code>, <code>--payload-delimiter</code></td><td>The delimiter used to split lines when using payload from a file</td><td>\n</td></tr>
<tr><td><code>-r</code>, <code>--rate</code></td><td>Publish rate msg/s across topics</td><td>100</td></tr>
<tr><td><code>-u</code>, <code>--service-url</code></td><td>Pulsar service URL</td><td></td></tr>
<tr><td><code>-s</code>, <code>--size</code></td><td>Message size (in bytes)</td><td>1024</td></tr>
diff --git a/content/docs/zh-CN/next/security-kerberos.html b/content/docs/zh-CN/next/security-kerberos.html
index df2a174..1bb6e0b 100644
--- a/content/docs/zh-CN/next/security-kerberos.html
+++ b/content/docs/zh-CN/next/security-kerberos.html
@@ -162,7 +162,14 @@ saslJaasBrokerSectionName=PulsarBroker</p></li>
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"> <dependency>
+ <groupId>org.apache.pulsar</groupId>
+ <artifactId>pulsar-client-auth-sasl</artifactId>
+ <version>${pulsar.version}</version>
+ </dependency>
+</code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/docs/zh-CN/next/security-kerberos/index.html b/content/docs/zh-CN/next/security-kerberos/index.html
index df2a174..1bb6e0b 100644
--- a/content/docs/zh-CN/next/security-kerberos/index.html
+++ b/content/docs/zh-CN/next/security-kerberos/index.html
@@ -162,7 +162,14 @@ saslJaasBrokerSectionName=PulsarBroker</p></li>
<p>You can add this at the end of <code>PULSAR_EXTRA_OPTS</code> in the file <a href="https://github.com/apache/pulsar/blob/master/conf/pulsar_env.sh"><code>pulsar_env.sh</code></a></p>
<p>Make sure that the keytabs configured in the <code>pulsar_jaas.conf</code> file and kdc server in the <code>krb5.conf</code> file are reachable by the operating system user who is starting broker.</p>
<h3><a class="anchor" aria-hidden="true" id="kerberos-configuration-for-clients"></a><a href="#kerberos-configuration-for-clients" 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.5 [...]
-<p>In client, we need to configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
+<p>In client application, include <code>pulsar-client-auth-sasl</code> in your project dependency.</p>
+<pre><code class="hljs"> <dependency>
+ <groupId>org.apache.pulsar</groupId>
+ <artifactId>pulsar-client-auth-sasl</artifactId>
+ <version>${pulsar.version}</version>
+ </dependency>
+</code></pre>
+<p>configure the authentication type to use <code>AuthenticationSasl</code>, and also provide the authentication parameters to it.</p>
<p>There are 2 parameters needed:</p>
<ul>
<li><code>saslJaasClientSectionName</code> is corresponding to the section in JAAS configuration file for client;</li>
diff --git a/content/swagger/swagger.json b/content/swagger/2.4.0-SNAPSHOT/swagger.json
similarity index 99%
copy from content/swagger/swagger.json
copy to content/swagger/2.4.0-SNAPSHOT/swagger.json
index eba7d32..645a3f2 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/2.4.0-SNAPSHOT/swagger.json
@@ -6602,7 +6602,7 @@
"/tenants" : {
"get" : {
"tags" : [ "tenants" ],
- "summary" : "Get the list of tenants.",
+ "summary" : "Get the list of existing tenants.",
"description" : "",
"operationId" : "getTenants",
"consumes" : [ "application/json" ],
@@ -6637,6 +6637,7 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
} ],
@@ -6665,8 +6666,17 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "TenantInfo",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/TenantInfo"
+ }
} ],
"responses" : {
"403" : {
@@ -6693,8 +6703,17 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "TenantInfo",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/TenantInfo"
+ }
} ],
"responses" : {
"403" : {
@@ -6718,6 +6737,7 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
} ],
@@ -7270,25 +7290,23 @@
"type" : "number",
"format" : "double"
},
- "underLoaded" : {
- "type" : "boolean"
+ "cpu" : {
+ "$ref" : "#/definitions/ResourceUsage"
},
- "overLoaded" : {
- "type" : "boolean"
+ "directMemory" : {
+ "$ref" : "#/definitions/ResourceUsage"
},
- "loadReportType" : {
- "type" : "string"
+ "lastUpdate" : {
+ "type" : "integer",
+ "format" : "int64"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
- "lastUpdate" : {
- "type" : "integer",
- "format" : "int64"
- },
- "cpu" : {
- "$ref" : "#/definitions/ResourceUsage"
+ "msgThroughputOut" : {
+ "type" : "number",
+ "format" : "double"
},
"bandwidthIn" : {
"$ref" : "#/definitions/ResourceUsage"
@@ -7299,12 +7317,14 @@
"memory" : {
"$ref" : "#/definitions/ResourceUsage"
},
- "directMemory" : {
- "$ref" : "#/definitions/ResourceUsage"
+ "underLoaded" : {
+ "type" : "boolean"
},
- "msgThroughputOut" : {
- "type" : "number",
- "format" : "double"
+ "overLoaded" : {
+ "type" : "boolean"
+ },
+ "loadReportType" : {
+ "type" : "string"
}
}
},
@@ -8302,11 +8322,11 @@
"ResourceUnit" : {
"type" : "object",
"properties" : {
- "resourceId" : {
- "type" : "string"
- },
"availableResource" : {
"$ref" : "#/definitions/ResourceDescription"
+ },
+ "resourceId" : {
+ "type" : "string"
}
}
},
@@ -8429,6 +8449,7 @@
"properties" : {
"adminRoles" : {
"type" : "array",
+ "description" : "Comma separated list of auth principal allowed to administrate the tenant.",
"uniqueItems" : true,
"items" : {
"type" : "string"
@@ -8436,12 +8457,14 @@
},
"allowedClusters" : {
"type" : "array",
+ "description" : "Comma separated allowed clusters.",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
- }
+ },
+ "description" : "Information of adminRoles and allowedClusters for tenant"
},
"TopicStats" : {
"type" : "object",
diff --git a/content/swagger/swaggerfunctions.json b/content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json
similarity index 99%
copy from content/swagger/swaggerfunctions.json
copy to content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json
index 580bd92..5ec27fb 100644
--- a/content/swagger/swaggerfunctions.json
+++ b/content/swagger/2.4.0-SNAPSHOT/swaggerfunctions.json
@@ -1263,6 +1263,16 @@
"type" : "integer",
"format" : "int32"
},
+ "schemaVersion" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string",
+ "format" : "byte"
+ }
+ },
+ "producerName" : {
+ "type" : "string"
+ },
"publishTime" : {
"type" : "integer",
"format" : "int64"
@@ -1274,16 +1284,6 @@
"topicName" : {
"type" : "string"
},
- "producerName" : {
- "type" : "string"
- },
- "schemaVersion" : {
- "type" : "array",
- "items" : {
- "type" : "string",
- "format" : "byte"
- }
- },
"data" : {
"type" : "array",
"items" : {
diff --git a/content/swagger/2.4.0-SNAPSHOT/swaggersink.json b/content/swagger/2.4.0-SNAPSHOT/swaggersink.json
new file mode 100644
index 0000000..1f93fb7
--- /dev/null
+++ b/content/swagger/2.4.0-SNAPSHOT/swaggersink.json
@@ -0,0 +1,791 @@
+{
+ "swagger" : "2.0",
+ "info" : {
+ "description" : "This provides the REST API for Pulsar Sink operations",
+ "version" : "v3",
+ "title" : "Pulsar Sink REST API",
+ "license" : {
+ "name" : "Apache 2.0",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0.html"
+ }
+ },
+ "basePath" : "/admin/v3",
+ "tags" : [ {
+ "name" : "sinks"
+ } ],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/sinks/builtinsinks" : {
+ "get" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Fetches a list of supported Pulsar IO sink connectors currently running in cluster mode",
+ "description" : "",
+ "operationId" : "getSinkList",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object"
+ }
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}" : {
+ "get" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Lists all Pulsar Sinks currently deployed in a given namespace",
+ "description" : "",
+ "operationId" : "listSinks",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}" : {
+ "get" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Fetches information about a Pulsar Sink currently running in cluster mode",
+ "description" : "",
+ "operationId" : "getSinkInfo",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/SinkConfig"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The function doesn't exist"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ },
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Creates a new Pulsar Sink in cluster mode",
+ "description" : "",
+ "operationId" : "registerSink",
+ "consumes" : [ "multipart/form-data" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Pulsar Function successfully created"
+ },
+ "400" : {
+ "description" : "Invalid request (function already exists, etc.)"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Updates a Pulsar Sink currently running in cluster mode",
+ "description" : "",
+ "operationId" : "updateSink",
+ "consumes" : [ "multipart/form-data" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Pulsar Function successfully updated"
+ },
+ "400" : {
+ "description" : "Invalid request (function doesn't exist, etc.)"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Deletes a Pulsar Sink currently running in cluster mode",
+ "description" : "",
+ "operationId" : "deregisterSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "The function was successfully deleted"
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The function doesn't exist"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/restart" : {
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Restart all sink instances",
+ "description" : "",
+ "operationId" : "restartSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/start" : {
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Start all sink instances",
+ "description" : "",
+ "operationId" : "startSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/status" : {
+ "get" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Displays the status of a Pulsar Sink running in cluster mode",
+ "description" : "",
+ "operationId" : "getSinkStatus",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/SinkStatus"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The sink doesn't exist"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/stop" : {
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Stop all sink instances",
+ "description" : "",
+ "operationId" : "stopSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/restart" : {
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Restart sink instance",
+ "description" : "",
+ "operationId" : "restartSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/start" : {
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Start sink instance",
+ "description" : "",
+ "operationId" : "startSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/status" : {
+ "get" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Displays the status of a Pulsar Sink instance",
+ "description" : "",
+ "operationId" : "getSinkInstanceStatus",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/SinkInstanceStatusData"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The sink doesn't exist"
+ }
+ }
+ }
+ },
+ "/sinks/{tenant}/{namespace}/{sinkName}/{instanceId}/stop" : {
+ "post" : {
+ "tags" : [ "sinks" ],
+ "summary" : "Stop sink instance",
+ "description" : "",
+ "operationId" : "stopSink",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sinkName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "ConsumerConfig" : {
+ "type" : "object",
+ "properties" : {
+ "schemaType" : {
+ "type" : "string"
+ },
+ "serdeClassName" : {
+ "type" : "string"
+ },
+ "receiverQueueSize" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "regexPattern" : {
+ "type" : "boolean"
+ }
+ }
+ },
+ "ExceptionInformation" : {
+ "type" : "object",
+ "properties" : {
+ "exceptionString" : {
+ "type" : "string"
+ },
+ "timestampMs" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ },
+ "Resources" : {
+ "type" : "object",
+ "properties" : {
+ "cpu" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "ram" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "disk" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ },
+ "SinkConfig" : {
+ "type" : "object",
+ "properties" : {
+ "tenant" : {
+ "type" : "string"
+ },
+ "namespace" : {
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "className" : {
+ "type" : "string"
+ },
+ "sourceSubscriptionName" : {
+ "type" : "string"
+ },
+ "inputs" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "topicToSerdeClassName" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "topicsPattern" : {
+ "type" : "string"
+ },
+ "topicToSchemaType" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ },
+ "inputSpecs" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/definitions/ConsumerConfig"
+ }
+ },
+ "configs" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object"
+ }
+ },
+ "secrets" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object"
+ }
+ },
+ "parallelism" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "processingGuarantees" : {
+ "type" : "string",
+ "enum" : [ "ATLEAST_ONCE", "ATMOST_ONCE", "EFFECTIVELY_ONCE" ]
+ },
+ "retainOrdering" : {
+ "type" : "boolean"
+ },
+ "resources" : {
+ "$ref" : "#/definitions/Resources"
+ },
+ "autoAck" : {
+ "type" : "boolean"
+ },
+ "timeoutMs" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "archive" : {
+ "type" : "string"
+ },
+ "cleanupSubscription" : {
+ "type" : "boolean"
+ },
+ "runtimeFlags" : {
+ "type" : "string"
+ }
+ }
+ },
+ "SinkInstanceStatus" : {
+ "type" : "object",
+ "properties" : {
+ "instanceId" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "status" : {
+ "$ref" : "#/definitions/SinkInstanceStatusData"
+ }
+ }
+ },
+ "SinkInstanceStatusData" : {
+ "type" : "object",
+ "properties" : {
+ "running" : {
+ "type" : "boolean"
+ },
+ "error" : {
+ "type" : "string"
+ },
+ "numRestarts" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "numReadFromPulsar" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "numSystemExceptions" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "latestSystemExceptions" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ExceptionInformation"
+ }
+ },
+ "numSinkExceptions" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "latestSinkExceptions" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ExceptionInformation"
+ }
+ },
+ "numWrittenToSink" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "lastReceivedTime" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "workerId" : {
+ "type" : "string"
+ }
+ }
+ },
+ "SinkStatus" : {
+ "type" : "object",
+ "properties" : {
+ "numInstances" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "numRunning" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "instances" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/SinkInstanceStatus"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/content/swagger/2.4.0-SNAPSHOT/swaggersource.json b/content/swagger/2.4.0-SNAPSHOT/swaggersource.json
new file mode 100644
index 0000000..3e0f658
--- /dev/null
+++ b/content/swagger/2.4.0-SNAPSHOT/swaggersource.json
@@ -0,0 +1,739 @@
+{
+ "swagger" : "2.0",
+ "info" : {
+ "description" : "This provides the REST API for Pulsar Source operations",
+ "version" : "v3",
+ "title" : "Pulsar Source REST API",
+ "license" : {
+ "name" : "Apache 2.0",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0.html"
+ }
+ },
+ "basePath" : "/admin/v3",
+ "tags" : [ {
+ "name" : "sources"
+ } ],
+ "schemes" : [ "http", "https" ],
+ "paths" : {
+ "/sources/builtinsources" : {
+ "get" : {
+ "tags" : [ "sources" ],
+ "summary" : "Fetches a list of supported Pulsar IO source connectors currently running in cluster mode",
+ "description" : "",
+ "operationId" : "getSourceList",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "type" : "object"
+ }
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}" : {
+ "get" : {
+ "tags" : [ "sources" ],
+ "summary" : "Lists all Pulsar Sources currently deployed in a given namespace",
+ "description" : "",
+ "operationId" : "listSources",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}" : {
+ "get" : {
+ "tags" : [ "sources" ],
+ "summary" : "Fetches information about a Pulsar Source currently running in cluster mode",
+ "description" : "",
+ "operationId" : "getSourceInfo",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/SourceConfig"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The function doesn't exist"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ },
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Creates a new Pulsar Source in cluster mode",
+ "description" : "",
+ "operationId" : "registerSource",
+ "consumes" : [ "multipart/form-data" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Pulsar Function successfully created"
+ },
+ "400" : {
+ "description" : "Invalid request (function already exists, etc.)"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "sources" ],
+ "summary" : "Updates a Pulsar Source currently running in cluster mode",
+ "description" : "",
+ "operationId" : "updateSource",
+ "consumes" : [ "multipart/form-data" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Pulsar Function successfully updated"
+ },
+ "400" : {
+ "description" : "Invalid request (function doesn't exist, etc.)"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "sources" ],
+ "summary" : "Deletes a Pulsar Source currently running in cluster mode",
+ "description" : "",
+ "operationId" : "deregisterSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "The function was successfully deleted"
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The function doesn't exist"
+ },
+ "408" : {
+ "description" : "Request timeout"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/restart" : {
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Restart all source instances",
+ "description" : "",
+ "operationId" : "restartSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/start" : {
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Start all source instances",
+ "description" : "",
+ "operationId" : "startSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/status" : {
+ "get" : {
+ "tags" : [ "sources" ],
+ "summary" : "Displays the status of a Pulsar Source running in cluster mode",
+ "description" : "",
+ "operationId" : "getSourceStatus",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/SourceStatus"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The source doesn't exist"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/stop" : {
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Stop all source instances",
+ "description" : "",
+ "operationId" : "stopSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/restart" : {
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Restart source instance",
+ "description" : "",
+ "operationId" : "restartSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/start" : {
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Start source instance",
+ "description" : "",
+ "operationId" : "startSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/status" : {
+ "get" : {
+ "tags" : [ "sources" ],
+ "summary" : "Displays the status of a Pulsar Source instance",
+ "description" : "",
+ "operationId" : "getSourceInstanceStatus",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/SourceInstanceStatusData"
+ }
+ },
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "403" : {
+ "description" : "The requester doesn't have admin permissions"
+ },
+ "404" : {
+ "description" : "The source doesn't exist"
+ }
+ }
+ }
+ },
+ "/sources/{tenant}/{namespace}/{sourceName}/{instanceId}/stop" : {
+ "post" : {
+ "tags" : [ "sources" ],
+ "summary" : "Stop source instance",
+ "description" : "",
+ "operationId" : "stopSource",
+ "consumes" : [ "application/json" ],
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "tenant",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "namespace",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "sourceName",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "name" : "instanceId",
+ "in" : "path",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "400" : {
+ "description" : "Invalid request"
+ },
+ "404" : {
+ "description" : "The function does not exist"
+ },
+ "500" : {
+ "description" : "Internal server error"
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "ExceptionInformation" : {
+ "type" : "object",
+ "properties" : {
+ "exceptionString" : {
+ "type" : "string"
+ },
+ "timestampMs" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ },
+ "Resources" : {
+ "type" : "object",
+ "properties" : {
+ "cpu" : {
+ "type" : "number",
+ "format" : "double"
+ },
+ "ram" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "disk" : {
+ "type" : "integer",
+ "format" : "int64"
+ }
+ }
+ },
+ "SourceConfig" : {
+ "type" : "object",
+ "properties" : {
+ "tenant" : {
+ "type" : "string"
+ },
+ "namespace" : {
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "className" : {
+ "type" : "string"
+ },
+ "topicName" : {
+ "type" : "string"
+ },
+ "serdeClassName" : {
+ "type" : "string"
+ },
+ "schemaType" : {
+ "type" : "string"
+ },
+ "configs" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object"
+ }
+ },
+ "secrets" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object"
+ }
+ },
+ "parallelism" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "processingGuarantees" : {
+ "type" : "string",
+ "enum" : [ "ATLEAST_ONCE", "ATMOST_ONCE", "EFFECTIVELY_ONCE" ]
+ },
+ "resources" : {
+ "$ref" : "#/definitions/Resources"
+ },
+ "archive" : {
+ "type" : "string"
+ },
+ "runtimeFlags" : {
+ "type" : "string"
+ }
+ }
+ },
+ "SourceInstanceStatus" : {
+ "type" : "object",
+ "properties" : {
+ "instanceId" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "status" : {
+ "$ref" : "#/definitions/SourceInstanceStatusData"
+ }
+ }
+ },
+ "SourceInstanceStatusData" : {
+ "type" : "object",
+ "properties" : {
+ "running" : {
+ "type" : "boolean"
+ },
+ "error" : {
+ "type" : "string"
+ },
+ "numRestarts" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "numReceivedFromSource" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "numSystemExceptions" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "latestSystemExceptions" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ExceptionInformation"
+ }
+ },
+ "numSourceExceptions" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "latestSourceExceptions" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/ExceptionInformation"
+ }
+ },
+ "numWritten" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "lastReceivedTime" : {
+ "type" : "integer",
+ "format" : "int64"
+ },
+ "workerId" : {
+ "type" : "string"
+ }
+ }
+ },
+ "SourceStatus" : {
+ "type" : "object",
+ "properties" : {
+ "numInstances" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "numRunning" : {
+ "type" : "integer",
+ "format" : "int32"
+ },
+ "instances" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/SourceInstanceStatus"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index eba7d32..645a3f2 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -6602,7 +6602,7 @@
"/tenants" : {
"get" : {
"tags" : [ "tenants" ],
- "summary" : "Get the list of tenants.",
+ "summary" : "Get the list of existing tenants.",
"description" : "",
"operationId" : "getTenants",
"consumes" : [ "application/json" ],
@@ -6637,6 +6637,7 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
} ],
@@ -6665,8 +6666,17 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "TenantInfo",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/TenantInfo"
+ }
} ],
"responses" : {
"403" : {
@@ -6693,8 +6703,17 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "TenantInfo",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/TenantInfo"
+ }
} ],
"responses" : {
"403" : {
@@ -6718,6 +6737,7 @@
"parameters" : [ {
"name" : "tenant",
"in" : "path",
+ "description" : "The tenant name",
"required" : true,
"type" : "string"
} ],
@@ -7270,25 +7290,23 @@
"type" : "number",
"format" : "double"
},
- "underLoaded" : {
- "type" : "boolean"
+ "cpu" : {
+ "$ref" : "#/definitions/ResourceUsage"
},
- "overLoaded" : {
- "type" : "boolean"
+ "directMemory" : {
+ "$ref" : "#/definitions/ResourceUsage"
},
- "loadReportType" : {
- "type" : "string"
+ "lastUpdate" : {
+ "type" : "integer",
+ "format" : "int64"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
- "lastUpdate" : {
- "type" : "integer",
- "format" : "int64"
- },
- "cpu" : {
- "$ref" : "#/definitions/ResourceUsage"
+ "msgThroughputOut" : {
+ "type" : "number",
+ "format" : "double"
},
"bandwidthIn" : {
"$ref" : "#/definitions/ResourceUsage"
@@ -7299,12 +7317,14 @@
"memory" : {
"$ref" : "#/definitions/ResourceUsage"
},
- "directMemory" : {
- "$ref" : "#/definitions/ResourceUsage"
+ "underLoaded" : {
+ "type" : "boolean"
},
- "msgThroughputOut" : {
- "type" : "number",
- "format" : "double"
+ "overLoaded" : {
+ "type" : "boolean"
+ },
+ "loadReportType" : {
+ "type" : "string"
}
}
},
@@ -8302,11 +8322,11 @@
"ResourceUnit" : {
"type" : "object",
"properties" : {
- "resourceId" : {
- "type" : "string"
- },
"availableResource" : {
"$ref" : "#/definitions/ResourceDescription"
+ },
+ "resourceId" : {
+ "type" : "string"
}
}
},
@@ -8429,6 +8449,7 @@
"properties" : {
"adminRoles" : {
"type" : "array",
+ "description" : "Comma separated list of auth principal allowed to administrate the tenant.",
"uniqueItems" : true,
"items" : {
"type" : "string"
@@ -8436,12 +8457,14 @@
},
"allowedClusters" : {
"type" : "array",
+ "description" : "Comma separated allowed clusters.",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
- }
+ },
+ "description" : "Information of adminRoles and allowedClusters for tenant"
},
"TopicStats" : {
"type" : "object",
diff --git a/content/swagger/swaggerfunctions.json b/content/swagger/swaggerfunctions.json
index 580bd92..5ec27fb 100644
--- a/content/swagger/swaggerfunctions.json
+++ b/content/swagger/swaggerfunctions.json
@@ -1263,6 +1263,16 @@
"type" : "integer",
"format" : "int32"
},
+ "schemaVersion" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string",
+ "format" : "byte"
+ }
+ },
+ "producerName" : {
+ "type" : "string"
+ },
"publishTime" : {
"type" : "integer",
"format" : "int64"
@@ -1274,16 +1284,6 @@
"topicName" : {
"type" : "string"
},
- "producerName" : {
- "type" : "string"
- },
- "schemaVersion" : {
- "type" : "array",
- "items" : {
- "type" : "string",
- "format" : "byte"
- }
- },
"data" : {
"type" : "array",
"items" : {