TDH社区版基础能力演示(一):数据库方言支持与CRUD能力
前言
TDH社区版产品配备了星环科技自主研发的、具备极强竞争力和高度成熟的关系型分析引擎——Inceptor。该引擎不仅在性能与扩展性方面表现出色,同时实现了对传统关系型数据库语法的高度兼容,支持包括 Oracle、DB2 和 Teradata 等主流数据库方言,能够帮助用户平滑迁移已有业务系统,降低改造成本。
此外,Inceptor 支持完整的 PL/SQL 存储过程功能,为复杂业务逻辑的实现提供了强大支持,进一步增强了其在企业级数据分析场景中的适用性。在基础的数据操作方面,Inceptor 完全支持 CRUD(创建 Create、读取 Read、更新 Update、删除 Delete)操作,并提供对 MERGE 等高级数据操作语句的支持,满足多样化的数据处理需求。通过这些能力,Inceptor 不仅可以作为传统关系型数据库的替代方案,也能够在大数据环境下提供高效、可靠、兼容性强的查询与分析能力,适用于各类数据分析场景。
SQL兼容性能力演示
下面的示例将以orc事务表为例,数据内容仅用作演示,具体建表过程中需要注意的实现以及其他细节请参考Inceptor开发者指南。
!set plsqlUseSlash true DROP PROCEDURE IF EXISTS merge_from_increment; SET transaction.type = inceptor; CREATE OR REPLACE PROCEDURE merge_from_increment(var_in IN NUMBER, var_out OUT NUMBER) IS BEGIN BEGIN TRANSACTION; DBMS_OUTPUT.PUT_LINE('启动 merge_from_increment: ' || var_in); -- 变量赋值 var_out := var_in + 10; -- 插入初始员工数据 INSERT INTO ce_demo.employee VALUES (1, 'Tom', 2000, 1, '2014-3-20', '公司创始人'); INSERT INTO ce_demo.employee VALUES (2, 'Jack', 6000, 0, '2015-6-1', '一个好人'); INSERT INTO ce_demo.employee VALUES (3, 'Lucy', 1500, 0, '2017-6-1', '麻烦制造者'); INSERT INTO ce_demo.employee VALUES (4, '离职', 1500, 0, '2017-6-2', '待删除'); INSERT INTO ce_demo.employee(id, name, salary, bouns, enroll_time, note) VALUES (5, '', 10000, 0, '2017-8-28', '空ID'); -- 更新员工备注 UPDATE ce_demo.employee SET note = '干得好!' WHERE id = 2; -- 删除特定员工记录 DELETE FROM ce_demo.employee WHERE id = 4; -- 插入增量数据 INSERT INTO ce_demo.employee_increment VALUES (2, NULL, 6500, 1); INSERT INTO ce_demo.employee_increment VALUES (3, '离职', 0, 0); INSERT INTO ce_demo.employee_increment VALUES (4, 'Rob', 12000, 0); INSERT INTO ce_demo.employee_increment(id, salary, bouns) VALUES ('', 10000, 0); -- 使用 MERGE 语句合并主表与增量表 MERGE INTO ce_demo.employee dest USING ce_demo.employee_increment src ON (dest.id = src.id) WHEN MATCHED THEN UPDATE SET name = CASE WHEN src.name IS NULL THEN dest.name ELSE src.name END, salary = CASE WHEN src.salary IS NULL THEN dest.salary ELSE src.salary END, bouns = CASE WHEN src.bouns IS NULL THEN dest.bouns ELSE src.bouns END WHEN NOT MATCHED THEN INSERT (id, name, salary, bouns, enroll_time, note) VALUES (src.id, src.name, src.salary, src.bouns, SYSDATE, '欢迎新员工!'); -- 删除离职员工 DELETE FROM ce_demo.employee WHERE name = '离职'; -- 提交事务 COMMIT; -- 输出完成信息 DBMS_OUTPUT.PUT_LINE('update_from_increment 完成.'); END merge_from_increment; / -- 调用存储过程,执行涨薪操作 SET transaction.type = inceptor; DECLARE v_out NUMBER; BEGIN merge_from_increment(1, v_out); DBMS_OUTPUT.PUT_LINE('out merge_from_increment: ' || v_out); END; / -- 查询员工表以验证数据更新结果 SELECT * FROM ce_demo.employee; -- 如需再次运行,请先清空相关表数据 DELETE FROM ce_demo.employee_increment WHERE 1 = 1; DELETE FROM ce_demo.employee WHERE 1 = 1;
通过上述示例,您可以清晰地看到 Inceptor 在 SQL 兼容性、事务控制以及复杂逻辑处理方面的强大能力。无论是传统数据库的迁移适配,还是大数据环境下高性能查询与分析,Inceptor 都能提供稳定、高效的解决方案。如果您对 Transwarp Data Hub (TDH) 社区版感兴趣,并希望进一步了解或体验其强大的功能,请访问我们的官方网站前往获取最新版本的产品。
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号