You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by GitBox <gi...@apache.org> on 2022/04/28 12:48:36 UTC

[GitHub] [incubator-inlong] EMsnap opened a new pull request, #4010: [INLONG-3996][Sort] Sort support all migrate for database

EMsnap opened a new pull request, #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010

   ### Title Name: [INLONG-3996][Sort] Sort support all migrate for database
   
   Fixes #3996 
   
   ### Motivation
   
   Sort support all migrate for database
   
   ### Modifications
   
   Sort support all migrate for database
   
   ### Verifying this change
   
   
   ### Documentation
   
     - Does this pull request introduce a new feature? (yes)
   


-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-inlong] healchow commented on a diff in pull request #4010: [INLONG-3996][Sort] Sort support all migrate for database

Posted by GitBox <gi...@apache.org>.
healchow commented on code in PR #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010#discussion_r861435107


##########
inlong-sort/sort-formats/format-json/src/main/java/org/apache/inlong/sort/formats/json/canal/CanalJson.java:
##########
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+package org.apache.inlong.sort.formats.json.canal;
+
+import java.util.List;
+import java.util.Map;
+import lombok.Builder;
+
+@Builder
+public class CanalJson {
+
+    public List<Map<String, Object>> data;
+    public long es;
+    public String table;
+    public String type;
+    public String database;
+    public long ts;
+    public String sql;
+    public Map<String, String> mysqlType;
+    public boolean isDdl;
+    public List<String> pkNames;
+
+    public List<Map<String, Object>> getData() {

Review Comment:
   OK, I got it.



-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-inlong] healchow commented on a diff in pull request #4010: [INLONG-3996][Sort] Sort support all migrate for database

Posted by GitBox <gi...@apache.org>.
healchow commented on code in PR #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010#discussion_r860886230


##########
inlong-sort/sort-formats/format-json/src/main/java/org/apache/inlong/sort/formats/json/canal/CanalJson.java:
##########
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+package org.apache.inlong.sort.formats.json.canal;
+
+import java.util.List;
+import java.util.Map;
+import lombok.Builder;
+
+@Builder
+public class CanalJson {
+
+    public List<Map<String, Object>> data;
+    public long es;
+    public String table;
+    public String type;
+    public String database;
+    public long ts;
+    public String sql;
+    public Map<String, String> mysqlType;
+    public boolean isDdl;
+    public List<String> pkNames;
+
+    public List<Map<String, Object>> getData() {

Review Comment:
   Using `lombok.Data` to replace these get and set methods, will it be easy to expand?



-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-inlong] EMsnap commented on a diff in pull request #4010: [INLONG-3996][Sort] Sort support all migrate for database

Posted by GitBox <gi...@apache.org>.
EMsnap commented on code in PR #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010#discussion_r861424177


##########
inlong-sort/sort-single-tenant/src/main/java/org/apache/inlong/sort/singletenant/flink/cdc/mysql/table/MySqlReadableMetadata.java:
##########
@@ -96,26 +96,60 @@ public Object read(SourceRecord record) {
             }),
 
     DATA(
-            "meta.data",
-            DataTypes.BIGINT(),
-            new MetadataConverter() {
-                private static final long serialVersionUID = 1L;
-
-                @Override
-                public Object read(SourceRecord record) {
-                    record.value().toString();
-                    Struct messageStruct = (Struct) record.value();
-                    Struct sourceStruct = messageStruct.getStruct(Envelope.FieldName.SOURCE);
-                    return TimestampData.fromEpochMillis(
-                            (Long) sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY));
+        "meta.data",
+        DataTypes.STRING(),
+        new MetadataConverter() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public Object read(SourceRecord record) {
+                record.value().toString();
+                Struct messageStruct = (Struct) record.value();
+                Struct sourceStruct = messageStruct.getStruct(FieldName.TIMESTAMP);
+                sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY);
+                return TimestampData.fromEpochMillis(
+                    (Long) sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY));
+            }
+
+            @Override
+            public Object read(SourceRecord record,
+                @org.jetbrains.annotations.Nullable TableChanges.TableChange tableSchema, RowData rowData) {
+
+                Struct messageStruct = (Struct) record.value();
+                Struct sourceStruct = messageStruct.getStruct(FieldName.SOURCE);
+                // tableName
+                String tableName = getMetaData(record, AbstractSourceInfo.TABLE_NAME_KEY);
+                // databaseName
+                String databaseName = getMetaData(record, AbstractSourceInfo.DATABASE_NAME_KEY);
+                // op_ts
+                long op_ts = (Long) sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY);

Review Comment:
   thx, make sense



-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-inlong] EMsnap merged pull request #4010: [INLONG-3996][Sort] Sort support all migrate for database

Posted by GitBox <gi...@apache.org>.
EMsnap merged PR #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010


-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-inlong] EMsnap commented on a diff in pull request #4010: [INLONG-3996][Sort] Sort support all migrate for database

Posted by GitBox <gi...@apache.org>.
EMsnap commented on code in PR #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010#discussion_r861424122


##########
inlong-sort/sort-formats/format-json/src/main/java/org/apache/inlong/sort/formats/json/canal/CanalJson.java:
##########
@@ -0,0 +1,115 @@
+/*
+ * 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.
+ */
+
+package org.apache.inlong.sort.formats.json.canal;
+
+import java.util.List;
+import java.util.Map;
+import lombok.Builder;
+
+@Builder
+public class CanalJson {
+
+    public List<Map<String, Object>> data;
+    public long es;
+    public String table;
+    public String type;
+    public String database;
+    public long ts;
+    public String sql;
+    public Map<String, String> mysqlType;
+    public boolean isDdl;
+    public List<String> pkNames;
+
+    public List<Map<String, Object>> getData() {

Review Comment:
   lombok will create get method for boolean and jackson will then add a (ddl) property (should be isDdl so I did not use it 



-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-inlong] healchow commented on a diff in pull request #4010: [INLONG-3996][Sort] Sort support all migrate for database

Posted by GitBox <gi...@apache.org>.
healchow commented on code in PR #4010:
URL: https://github.com/apache/incubator-inlong/pull/4010#discussion_r860876623


##########
inlong-sort/sort-single-tenant/src/main/java/org/apache/inlong/sort/singletenant/flink/cdc/mysql/table/MySqlReadableMetadata.java:
##########
@@ -96,26 +96,60 @@ public Object read(SourceRecord record) {
             }),
 
     DATA(
-            "meta.data",
-            DataTypes.BIGINT(),
-            new MetadataConverter() {
-                private static final long serialVersionUID = 1L;
-
-                @Override
-                public Object read(SourceRecord record) {
-                    record.value().toString();
-                    Struct messageStruct = (Struct) record.value();
-                    Struct sourceStruct = messageStruct.getStruct(Envelope.FieldName.SOURCE);
-                    return TimestampData.fromEpochMillis(
-                            (Long) sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY));
+        "meta.data",
+        DataTypes.STRING(),
+        new MetadataConverter() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public Object read(SourceRecord record) {
+                record.value().toString();
+                Struct messageStruct = (Struct) record.value();
+                Struct sourceStruct = messageStruct.getStruct(FieldName.TIMESTAMP);
+                sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY);
+                return TimestampData.fromEpochMillis(
+                    (Long) sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY));
+            }
+
+            @Override
+            public Object read(SourceRecord record,
+                @org.jetbrains.annotations.Nullable TableChanges.TableChange tableSchema, RowData rowData) {
+
+                Struct messageStruct = (Struct) record.value();
+                Struct sourceStruct = messageStruct.getStruct(FieldName.SOURCE);
+                // tableName
+                String tableName = getMetaData(record, AbstractSourceInfo.TABLE_NAME_KEY);
+                // databaseName
+                String databaseName = getMetaData(record, AbstractSourceInfo.DATABASE_NAME_KEY);
+                // op_ts
+                long op_ts = (Long) sourceStruct.get(AbstractSourceInfo.TIMESTAMP_KEY);

Review Comment:
   Maybe using the `opTs` is better?



-- 
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: commits-unsubscribe@inlong.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org