You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2019/09/09 07:19:25 UTC

[GitHub] [rocketmq-externals] duhenglucky commented on a change in pull request #370: [ISSUE #371]Develop Jdbc Source Connector

duhenglucky commented on a change in pull request #370: [ISSUE #371]Develop Jdbc Source Connector
URL: https://github.com/apache/rocketmq-externals/pull/370#discussion_r322093904
 
 

 ##########
 File path: rocketmq-connect-jdbc/README.md
 ##########
 @@ -1 +1,235 @@
 # RocketMQ-connect-jdbc
+
+### Directory Structure Description
+
+```web-idl
+│  pom.xml
+│  README.md
+└─src
+    ├─main
+    │  └─java
+    │      └─org
+    │          └─apache
+    │              └─rocketmq
+    │                  └─connect
+    │                      └─jdbc
+    │                          │  Config.java
+    │                          ├─connector
+    │                          │      JdbcSourceConnector.java
+    │                          │      JdbcSourceTask.java
+    │                          ├─dialect
+    │                          ├─schema
+    │                          │  │  Database.java
+    │                          │  │  Schema.java
+    │                          │  │  Table.java
+    │                          │  │
+    │                          │  └─column
+    │                          │          BigIntColumnParser.java
+    │                          │          ColumnParser.java
+    │                          │          DateTimeColumnParser.java
+    │                          │          DefaultColumnParser.java
+    │                          │          EnumColumnParser.java
+    │                          │          IntColumnParser.java
+    │                          │          SetColumnParser.java
+    │                          │          StringColumnParser.java
+    │                          │          TimeColumnParser.java
+    │                          │          YearColumnParser.java
+    │                          ├─sink
+    │                          └─source
+    │                                  Querier.java
+    └─test
+        └─java
+            └─org
+                └─apache
+                    └─rocketmq
+                        └─connect
+                            └─jdbc
+                                └─connector
+                                        JdbcSourceConnectorTest.java
+                                        JdbcSourceTaskTest.java
+```
+
+### Some Result of Testing JdbcSourceTask
+
+
+
+#### Data Type:SourceDataEntry
+
+{sourcePartition,sourcePosition,DataEntry{timestamp,entryType=CREATE,queueName,shardingKey,schema.schema=Schema{dataSource=DATABASE_NAME,name=TABLE_NAME,fields=[Field{index,name,type}]},payloading}}
+
+- For example
+
+```javascript
+    SourceDataEntry{sourcePartition=java.nio.HeapByteBuffer[pos=0 lim=14 cap=14], sourcePosition=java.nio.HeapByteBuffer[pos=0 lim=44 cap=44]} DataEntry{timestamp=1564397062419, entryType=CREATE, queueName='student', shardingKey='null', 
+    schema=Schema{dataSource='jdbc_db', name='student', fields=[Field{index=0, name='id', type=INT32}, Field{index=1, name='first', type=STRING}, 
+    Field{index=2, name='last', type=STRING}, Field{index=3, name='age', type=INT32}]}, payload=[102121, "Python", "Py", 25]}
+```
+
+#### Mentioned DataBase Information and all SourceDataEntry
+
+- For example
+
+![database.png](https://github.com/yuchenlichuck/picture/blob/master/database.png?raw=true)
+
+![sourcedataentry.png](https://github.com/yuchenlichuck/picture/blob/master/sourcedataentry.png?raw=true)
+
+**启动Connector**
+
+[http://127.0.0.1:8081/connectors/connector-name?config={"connector-class":"org.apache.rocketmq.connect.kafka.connector.KafkaSourceConnector","oms-driver-url":"oms](http://127.0.0.1:8081/connectors/connector-name?config=%7B%22connector-class%22:%22org.apache.rocketmq.connect.kafka.connector.KafkaSourceConnector%22,%22oms-driver-url%22:%22oms): rocketmq://127.0.0.1:9876/default:default","tasks.num":"1","kafka.topics":"test1,test2","kafka.group.id":"group0","kafka.bootstrap.server":"127.0.0.1:9092","source-record-converter":"io.openmessaging.connect.runtime.converter.JsonConverter"}
+
+**查看Connector运行状态**
+
+<http://127.0.0.1:8081/connectors/connector-name/status>
+
+**查看Connector配置**
+
+<http://127.0.0.1:8081/connectors/connector-name/config>
+
+**关闭Connector**
+
+<http://127.0.0.1:8081/connectors/connector-name/stop>
+
+
+
+
+
+
+
+# JDBC Connector 构建
+
+![dataflow](https://github.com/openmessaging/openmessaging-connect/raw/master/flow.png)
+
+#### 一、下载rocketmq-connect-runtime
+
+```
+1、git clone https://github.com/apache/rocketmq-externals.git
+
+2、cd rocketmq-externals/rocketmq-connect-runtime
+
+3、mvn -Dmaven.test.skip=true package
+
+4、cd target/distribution/conf
+```
+
+- a、修改connect.conf配置文件
+
+```
+#1、rocketmq 配置
+namesrvAddr=127.0.0.1:9876
+   
+#2、file-connect jar包路径
+pluginPaths=/home/connect/file-connect/target
+   
+#3、runtime持久化文件目录
+storePathRootDir=/home/connect/storeRoot
+   
+#4、http服务端口
+httpPort=8081
+```
+
+b、日志相关配置在logback.xml中修改
+
+```
+注:rocketmq需要先创建cluster-topic,config-topic,offset-topic,position-topic
+4个topic,并且为了保证消息有序,每个topic可以只一个queue
+```
+
+### 二、启动Connector
+
+1、启动runtime
+回到rocketmq-externals/rocketmq-connect-runtime目录
+
+```
+./run_worker.sh
+```
+
+看到日志目录查看connect_runtime.log
+
+windows用户可以用CMD到程序根目录下再输入:
+
+```
+cd target/distribution/
+
+java -cp .;./conf/;./lib/* org.apache.rocketmq.connect.runtime.ConnectStartup -c conf/connect.conf
+```
+
+如果看到以下日志说明runttiime启动成功了
 
 Review comment:
   runttiime -> runtime

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services