本章节为使用者提供最简单的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); }
注意
etlDirector.run()中需要访问源数据库和目标数据库,并持有数据库连接,因此多线程并发执行etlDirector.run时,可能会由于数据库连接资源不够导致运行失败。etlDirector.run()运行结束后根据功能场景会生成对应的报告数据,报告文件目前精确到秒级别,大并发执行可能会存在报告文件覆盖。示例场景中的
globalConfig的值的含义,functions功能的含义可以参考配置选项说明。部分依赖的数据库驱动需要从etl制品库下载,放到{程序工作目录}/config配置目录下。