linjianchang commented on code in PR #3995:
URL: https://github.com/apache/flink-cdc/pull/3995#discussion_r2610525616


##########
docs/content/docs/connectors/pipeline-connectors/oracle.md:
##########
@@ -0,0 +1,462 @@
+---
+title: "ORACLE"
+weight: 2
+type: docs
+aliases:
+- /connectors/pipeline-connectors/oracle
+---
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Oracle Connector
+
+Oracle connector allows reading snapshot data and incremental data from Oracle 
database and provides end-to-end full-database data synchronization 
capabilities.
+This document describes how to setup the Oracle connector.
+
+
+## Example
+
+An example of the pipeline for reading data from Oracle and sink to Doris can 
be defined as follows:
+
+```yaml
+source:
+   type: oracle
+   name: Oracle Source
+   hostname: 127.0.0.1
+   port: 1521
+   username: debezium
+   password: password
+   database: ORCLDB
+   tables: testdb.\.*, testdb.user_table_[0-9]+, [app|web].order_\.*
+
+sink:
+  type: doris
+  name: Doris Sink
+  fenodes: 127.0.0.1:8030
+  username: root
+  password: password
+
+pipeline:
+   name: Oracle to Doris Pipeline
+   parallelism: 4
+```
+
+## Connector Options
+
+<div class="highlight">
+<table class="colwidths-auto docutils">
+    <thead>
+      <tr>
+        <th class="text-left" style="width: 10%">Option</th>
+        <th class="text-left" style="width: 8%">Required</th>
+        <th class="text-left" style="width: 7%">Default</th>
+        <th class="text-left" style="width: 10%">Type</th>
+        <th class="text-left" style="width: 65%">Description</th>
+      </tr>
+    </thead>
+    <tbody>
+    <tr>
+      <td>hostname</td>
+      <td>required</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>String</td>
+      <td> IP address or hostname of the Oracle database server.</td>
+    </tr>
+    <tr>
+      <td>port</td>
+      <td>required</td>
+      <td style="word-wrap: break-word;">1521</td>
+      <td>Integer</td>
+      <td>Integer port number of the Oracle database server.</td>
+    </tr>
+    <tr>
+      <td>username</td>
+      <td>required</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>String</td>
+      <td>Name of the Oracle database to use when connecting to the Oracle 
database server.</td>
+    </tr>
+    <tr>
+      <td>password</td>
+      <td>required</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>String</td>
+      <td>Password to use when connecting to the Oracle database server.</td>
+    </tr>
+    <tr>
+      <td>tables</td>
+      <td>required</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>String</td>
+      <td>Table name of the Oracle database to monitor. The table-name also 
supports regular expressions to monitor multiple tables that satisfy the 
regular expressions. <br>
+          It is important to note that the dot (.) is treated as a delimiter 
for database and table names. 
+          If there is a need to use a dot (.) in a regular expression to match 
any character, it is necessary to escape the dot with a backslash.<br>
+          eg. db0.\.*, db1.user_table_[0-9]+, db[1-2].[app|web]order_\.*</td>
+    </tr>
+    <tr>
+      <td>schema-change.enabled</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">true</td>
+      <td>Boolean</td>
+      <td>Whether to send schema change events, so that downstream sinks can 
respond to schema changes and achieve table structure synchronization.</td>
+    </tr>
+    <tr>
+      <td>scan.incremental.snapshot.chunk.size</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">8096</td>
+      <td>Integer</td>
+      <td>The chunk size (number of rows) of table snapshot, captured tables 
are split into multiple chunks when read the snapshot of table.</td>
+    </tr>
+    <tr>
+      <td>scan.snapshot.fetch.size</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">1024</td>
+      <td>Integer</td>
+      <td>The maximum fetch size for per poll when read table snapshot.</td>
+    </tr>
+    <tr>
+      <td>scan.startup.mode</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">initial</td>
+      <td>String</td>
+      <td>Optional startup mode for Oracle CDC consumer, valid enumerations 
are "initial","latest-offset".</td>
+    </tr>
+    <tr>
+      <td>debezium.*</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>String</td>
+      <td>Pass-through Debezium's properties to Debezium Embedded Engine which 
is used to capture data changes from Oracle server.
+          For example: <code>'debezium.snapshot.mode' = 'never'</code>.
+          See more about the <a 
href="https://debezium.io/documentation/reference/1.9/connectors/oracle.html#oracle-connector-properties";>Debezium's
 Oracle Connector properties</a></td> 
+    </tr>
+    <tr>
+      <td>scan.incremental.close-idle-reader.enabled</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">false</td>
+      <td>Boolean</td>
+      <td>Whether to close idle readers at the end of the snapshot phase. <br>
+          The flink version is required to be greater than or equal to 1.14 
when 'execution.checkpointing.checkpoints-after-tasks-finish.enabled' is set to 
true.<br>
+          If the flink version is greater than or equal to 1.15, the default 
value of 'execution.checkpointing.checkpoints-after-tasks-finish.enabled' has 
been changed to true,
+          so it does not need to be explicitly configured 
'execution.checkpointing.checkpoints-after-tasks-finish.enabled' = 'true'</td>
+    </tr>
+    <tr>
+      <td>metadata.list</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">false</td>
+      <td>String</td>
+      <td>
+        List of readable metadata from SourceRecord to be passed to downstream 
and could be used in transform module, split by `,`. Available readable 
metadata are: op_ts.
+      </td>
+    <tr>
+      <td>jdbc.url</td>
+      <td>optional</td>
+      <td style="word-wrap: break-word;">(none)</td>
+      <td>String</td>
+      <td> The url for oracle jdbc ,the url will be used preferentially,if no 
url is configured, then use "jdbc:oracle:thin:@localhost:1521:orcl",but oracle 
19c url is "jdbc:oracle:thin:@//localhost:1521/pdb1",so the url property is 
option to adapt to different versions of Oracle.</td>

Review Comment:
   > If the hostname and port parameter is configured, the URL is concatenated 
by hostname port database-name in SID format by default?
   
   Because this logic is implemented in Oracle Source, I just follow the 
original logic. If the URL is not matched, I will concatenate the hostname and 
port to form the URL. Otherwise, I will directly use the configured URL



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to