zyx 2 жил өмнө
commit
328f0ad086

+ 7 - 0
.gitignore

@@ -0,0 +1,7 @@
+.gradle
+.idea
+build
+gradle
+out
+gradlew
+gradlew.bat

+ 24 - 0
build.gradle

@@ -0,0 +1,24 @@
+plugins {
+    id 'java'
+}
+
+group 'org.example'
+version '1.0-SNAPSHOT'
+sourceCompatibility = 17
+
+repositories {
+    maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
+}
+
+dependencies {
+    implementation 'commons-io:commons-io:2.11.0'
+    implementation 'mysql:mysql-connector-java:8.0.30'
+    implementation 'ru.yandex.clickhouse:clickhouse-jdbc:0.3.2'
+    compileOnly 'org.projectlombok:lombok:1.18.22'
+    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
+    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
+}
+
+test {
+    useJUnitPlatform()
+}

+ 2 - 0
settings.gradle

@@ -0,0 +1,2 @@
+rootProject.name = 'tidb-ck'
+

+ 54 - 0
src/main/java/com/smcic/Main.java

@@ -0,0 +1,54 @@
+package com.smcic;
+
+
+import lombok.Cleanup;
+import lombok.SneakyThrows;
+
+import java.sql.DriverManager;
+
+public class Main {
+
+    @SneakyThrows
+    public static void main(String[] args) {
+        @Cleanup
+        var mysqlConn = DriverManager.getConnection("jdbc:mysql://172.16.101.1:4000/youmei?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&nullCatalogMeansCurrent=true",
+                "root", "msstar");
+        @Cleanup
+        var ckConn = DriverManager.getConnection("jdbc:clickhouse://baidu06:8123/default");
+        @Cleanup
+        var statement = mysqlConn.prepareStatement("""
+                select publish_time,title,content,offset
+                from youmei_data
+                where offset >= ?
+                order by offset limit 5000
+                """);
+        long offset = 4642461L;
+        while (true) {
+            statement.setObject(1, offset);
+            @Cleanup
+            var resultSet = statement.executeQuery();
+
+            @Cleanup
+            var stmt = ckConn.prepareStatement("insert into youmei_data(publish_time,title,content) values (?,?,?)");
+            var find = false;
+            while (resultSet.next()) {
+                find = true;
+                var publishTime = resultSet.getString(1);
+                var title = resultSet.getString(2);
+                var content = resultSet.getString(3);
+                offset = resultSet.getLong(4) + 1;
+
+                stmt.setObject(1, publishTime);
+                stmt.setObject(2, title);
+                stmt.setObject(3, content);
+                stmt.addBatch();
+            }
+            stmt.executeBatch();
+            if (!find) {
+                break;
+            }
+        }
+
+
+    }
+}