首页 > 其他分享 >通义千问测试

通义千问测试

时间:2023-10-10 23:45:38浏览次数:25  
标签:String 通义 private static 测试 props data CLICKHOUSE 千问

 

https://qianwen.aliyun.com/?chatId=5c0d24e5abc14cfa91165c6ad4a1638f

以下是一个简单的Java程序示例,用于从Kafka消费数据并将数据批量插入到ClickHouse数据库。在这个示例中,我们使用了Kafka的消费者API来消费数据,然后使用ClickHouse的Java JDBC驱动来插入数据。在插入数据之前,我们使用一个HashSet来检查数据是否已经存在,以避免重复插入。


public class KafkaClickHouseConsumer {
    private static final String KAFKA_BROKER_LIST = "localhost:9092";
    private static final String KAFKA_TOPIC = "test_topic";
    private static final String CLICKHOUSE_HOST = "localhost";
    private static final String CLICKHOUSE_PORT = "9000";
    private static final String CLICKHOUSE_DATABASE = "default";
    private static final String CLICKHOUSE_TABLE = "test_table";
    private static final String CLICKHOUSE_USERNAME = "default";
    private static final String CLICKHOUSE_PASSWORD = "default";

    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", KAFKA_BROKER_LIST);
        props.put("group.id", "clickhouse-consumer");
        props.put("enable.auto.commit", "true");
        props.put("auto.commit.interval.ms", "1000");
        props.put("key.deserializer", StringDeserializer.class.getName());
        props.put("value.deserializer", StringDeserializer.class.getName());

        KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
        consumer.subscribe(Collections.singletonList(KAFKA_TOPIC));

        try {
            while (true) {
                ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
                for (ConsumerRecord<String, String> record : records) {
                    String data = record.value();
                    insertToClickHouse(data);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            consumer.close();
        }
    }

    private static void insertToClickHouse(String data) {
        try (Connection conn = DriverManager.getConnection(
                String.format("jdbc:clickhouse://%s:%s/%s", CLICKHOUSE_HOST, CLICKHOUSE_PORT, CLICKHOUSE_DATABASE),
                CLICKHOUSE_USERNAME, CLICKHOUSE_PASSWORD);
             PreparedStatement pstmt = conn.prepareStatement("INSERT INTO " + CLICKHOUSE_TABLE + " (data) VALUES (?)")) {

            pstmt.setString(1, data);
            pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
注意:你需要在你的项目中添加ClickHouse的Java JDBC驱动依赖。如果你使用的是Maven,你可以在pom.xml文件中添加以下依赖:

xml
Copy code
<dependency>
    <groupId>ru.yandex.clickhouse</groupId>
    <artifactId>clickhouse-jdbc</artifactId>
    <version>0.2.6</version>
</dependency>
在上述Java程序示例中,我们使用了一个HashSet来检查数据是否已经存在,避免重复插入。在insertToClickHouse方法中,我们首先检查数据是否已经在HashSet中,如果已经在,我们就跳过插入操作。否则,我们就将数据插入到ClickHouse数据库中。
以下是如何使用HashSet来检查数据是否已经存在的示例代码:

java
Copy code
private static void insertToClickHouse(String data) {
    if (dataSet.contains(data)) {
        return;
    }
    try (Connection conn = DriverManager.getConnection(
            String.format("jdbc:clickhouse://%s:%s/%s", CLICKHOUSE_HOST, CLICKHOUSE_PORT, CLICKHOUSE_DATABASE),
            CLICKHOUSE_USERNAME, CLICKHOUSE_PASSWORD);
         PreparedStatement pstmt = conn.prepareStatement("INSERT INTO " + CLICKHOUSE_TABLE + " (data) VALUES (?)")) {

        pstmt.setString(1, data);
        pstmt.executeUpdate();
        dataSet.add(data);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
在这个示例中,我们首先检查数据是否已经在dataSet中,如果已经在,我们就直接返回,不执行插入操作。否则,我们就将数据插入到ClickHouse数据库中,并将数据添加到dataSet中。这样,下次我们再次尝试插入相同的数据时,就会跳过插入操作,因为数据已经在HashSet中了。

 

标签:String,通义,private,static,测试,props,data,CLICKHOUSE,千问
From: https://www.cnblogs.com/qsds/p/17756038.html

相关文章

  • python读取excel测试用例数据
     #excel_readUtil.pyfromopenpyxlimportload_workbookimportpandasclassHandleExcel:"""封装excel文件处理类"""def__init__(self,filename,sheetname=None):"""定义构造方法:p......
  • postgre压力测试
    postgre压力测试基于SysBench介绍SysBench是一个开源的跨平台系统性能基准测试工具,可以这样安装和使用:SysBench支持CPU、内存、磁盘IO、网络IO等系统测试,以及MySQL、PostgreSQL等数据库测试。安装可以从GitHub下载SysBench源码并编译安装:gitclonehttps://......
  • Unittest测试框架基础及进阶
    需求假设领导让你开发一个接口测试框架。领导提出了一些新的需求,你如何实现?支持用例优先级、标签,支持通过优先级或标签筛选用例支持用例负责人、迭代,及通过负责人或迭代筛选用例支持多环境配置支持超时及重试机制,防止不稳定用例并发执行用例以提高用例回归效率Unitt......
  • Pytest测试框架基础及进阶
    Pytest测试框架基础Pytest测试框架介绍Pytest是Python一款三方测试框架,用于编写和运行单元测试、集成测试和功能测试。Pytest测试框架具有简单、灵活、易于扩展等特点,被广泛应用于Python项目的测试工作中。Pytest主要特点:简单易用:Pytest测试框架的API简单易用,可以快速编写测......
  • 若不经过MD组件进行接地,无法测试出漏电流数值
    因为漏电流测试仪自带接地保护,所以需要将产品仪器的地线单独拆出来,只接火零线,通过把地线连接到MD(hi)测试组件进行接地。注意:若不经过MD组件进行接地,无法测试出漏电流数值根据仪器技术需求,这里未接S10和S12的线路。需要在加权和无频率加权各测试一次正常状态和单一故障状态的漏电流......
  • 【安规测试之漏电流测试方法】
    漏电流测试:对地漏电流、外壳漏电流1、对地漏电流: 按上图电路将,网电--漏电流测试仪--产品仪器,进行一个连接(不会连线先学电路图)。因为漏电流测试仪自带接地保护,所以需要将产品仪器的地线单独拆出来,只接火零线,通过把地线连接到MD(hi)测试组件进行接地。注意:若不经过MD组件进行接地,无法......
  • 【接口测试】如何在 Eolink Apilkit 中使用 cookie ?
    什么是Cookie?Cookie是一种在网站之间传递的小型文本文件,用于存储用户的个人信息和偏好设置。当您访问一个网站时,网站会将Cookie存储在您的浏览器中,并在您下次访问该网站时读取该Cookie。这样,网站可以记住您的登录状态、购物车内容以及其他个性化设置。在编写接口自动化测试用......
  • QECon大会亮相产品,更合适的企业级测试平台:RunnerGo
    在当今这个数字化时代,应用程序的性能至关重要。一款可靠的性能测试工具,能够为企业带来无数的好处。最近,一款名为RunnerGo的开源性能测试工具备受瞩目。本文将详细介绍RunnerGo的特点、优势以及如何解决性能测试中的痛点。 RunnerGo产品介绍RunnerGo是一款由国内开发者自主研......
  • QECon大会亮相产品,全栈测试平台推荐:RunnerGo
    最近在gitee上看见一款获得GVP(最有价值开源项目)的测试平台RunnerGo,看他们官网介绍包含了接口测试、性能测试、自动化测试。知道他们有saas版可以试用,果断使用了一下,对其中场景管理和性能测试印象深刻,之后也在公司自己安装使用,接下来和大家介绍一下RunnerGo的整体使用情况。登录后......
  • Jenkins+sonar+jacoco 实现代码扫描,接口测试,代码覆盖
    sonar配置参照往期博文jacoco+自动化测试参照往期博文sonar+jacoco覆盖报告配置# jacoco生成的exec文件sonar.jacoco.reportPaths=/home/jacoco/lXXXXXXXX/lXXXXXXXXX.exec #代码覆盖率插件sonar.java.coveragePlugin=jacoco#jacoco插件版本jacoco.version=0.8.8#s......