本章节为使用者提供最简单的lightdb-etl SDK的快速集成。

3. 快速集成

3.1. JAVA集成

SDK是标准的Maven依赖,直接通过 pom.xml 配置即可,如下示例。

<dependency>
    <groupId>com.hundsun.lightdb</groupId>
    <artifactId>lightdb-etl-core</artifactId>
    <version>25.3.1-SNAPSHOT</version>
</dependency>

3.2. 使用说明

示例代码

public static void runTask(Integer taskId) {
    DbConfig sourceDbConfig = new DbConfig();
    sourceDbConfig.setUrl("jdbc:oracle:thin:@//ip:port/test");
    sourceDbConfig.setUsername("etl");
    sourceDbConfig.setPassword("etl");

    DbConfig targetDbConfig = new DbConfig();
    targetDbConfig.setUrl("jdbc:dm://ip:port");
    targetDbConfig.setUsername("ETL");
    targetDbConfig.setPassword("aaAA11__");


    GlobalConfig globalConfig = new GlobalConfig();
    List<String> functions = new ArrayList<>();
    functions.add(FunctionConstants.COMPARE_SQL_RESULT);
    globalConfig.setEnableFunctions(String.join(",", functions));
    globalConfig.setSourceDatabase(DatabaseConstants.ORACLE);
    globalConfig.setTargetDatabase(DatabaseConstants.DM);
    globalConfig.setPwdEncrypted(false);
    globalConfig.setTransferSchemas("xxxx");
    globalConfig.setTargetSchemas("xxxx");
    globalConfig.setIncludeTableRegexp("mytable");
    SqlDataCompareConfig sqlDataCompareConfig = new SqlDataCompareConfig();
    sqlDataCompareConfig.appendCompareSql(String.format("key%d", taskId),String.format("select %d from dual"
            , taskId),String.format("select %d from dual", taskId));
    EtlDirectorConfig config = new EtlDirectorConfig(sourceDbConfig, targetDbConfig, globalConfig, sqlDataCompareConfig);
    EtlDirector etlDirector = new EtlDirectorBuilder(config).build();
    System.out.println("开始执行任务:" + taskId);
    try {
        etlDirector.run();
    } catch (Exception e) {
        System.out.println(e.getStackTrace());
    }
    System.out.println("结束执行任务: " + taskId);
}

注意

  1. etlDirector.run() 中需要访问源数据库和目标数据库,并持有数据库连接,因此多线程并发执行etlDirector.run时,可能会由于数据库连接资源不够导致运行失败。

  2. etlDirector.run() 运行结束后根据功能场景会生成对应的报告数据,报告文件目前精确到秒级别,大并发执行可能会存在报告文件覆盖。

  3. 示例场景中的 globalConfig 的值的含义, functions 功能的含义可以参考配置选项说明。

  4. 部分依赖的数据库驱动需要从etl制品库下载,放到{程序工作目录}/config配置目录下。