使用seatunnel往oracle模式的oceanbase写数据慢

使用seatunnel的insert模式 速度300k/s,目标表有2000万数据的upsert 速度只有10k/s。

这是我的建表语句
CREATE TABLE “GAOJ”.“T01_P_CUST_INFO”

(“PARTY_ID” VARCHAR2(48),

“CUST_ID” VARCHAR2(13),

“VERSION_ID” VARCHAR2(30),

“CUST_PID” VARCHAR2(48),

“NAME” VARCHAR2(240),

“FIRST_NAME” VARCHAR2(60),

“LAST_NAME” VARCHAR2(60),

“NATION” VARCHAR2(4),

“GENDER” VARCHAR2(1),

“ETHNIC” VARCHAR2(3),

“BIRTH_DT” VARCHAR2(60),

“EDU_DEG” VARCHAR2(3),

“ACADEM_DEG” VARCHAR2(4),

“MARRI_SITU” VARCHAR2(3),

“DWLG_SITU” VARCHAR2(4),

“EMPL_SITU_CD” VARCHAR2(3),

“INDV_ANL_INCOME” NUMBER(22, 2),

“FAMILY_ANL_INCOME” NUMBER(22, 2),

“CURR_EMPLYER_NAME” VARCHAR2(600),

“EMPLYER_PROPTY_CD” VARCHAR2(6),

“EMPLYER_INDS_CD” VARCHAR2(7),

“ENTER_CURR_UNIT_WORK_DT” VARCHAR2(60),

“CAREER” VARCHAR2(7),

“POSITION_CD” VARCHAR2(4),

“TITLE” VARCHAR2(4),

“INDV_CUST_APPLTN” VARCHAR2(3),

“DEPSTR_TYPE_CD” VARCHAR2(6),

“RESDNT_ATTR_CD” VARCHAR2(4),

“EMAIL” VARCHAR2(120),

“ID_CARD_ONLINE_VER_RESULT_CD” VARCHAR2(9),

“ONLINE_VERI_DT” VARCHAR2(60),

“STATUS_VERIFY_RESLT_CD” VARCHAR2(3),

“MAIN_TM_CUST_STATUS_IDTFY_MODE_CD” VARCHAR2(3),

“UNABLE_VERIFY_STATUS_RSN_CD” VARCHAR2(3),

“STATUS_VERIFY_RESLT_DISP_METHOD_CD” VARCHAR2(3),

“TAX_RESDNT_STATUS_INFO_CD” VARCHAR2(3),

“CUST_STATUS_CD” VARCHAR2(4),

“CUST_MODAL_CHG_DT” VARCHAR2(60),

“CUST_MODAL_CD” VARCHAR2(4),

“CUST_MODAL_CHG_TM” VARCHAR2(60),

“CUST_CREATE_DT” VARCHAR2(60),

“CUST_CREATE_ORG_NO” VARCHAR2(9),

“CUST_CREATE_EMPLY_NO” VARCHAR2(30),

“CUST_CREATE_TM_BIZ_SCENE_CD” VARCHAR2(6),

“CUST_CREATE_SYS_CD” VARCHAR2(3),

“CREATE_TM_CUST_STATUS_IDTFY_MODE_CD” VARCHAR2(3),

“NOT_QUERY_FLG” VARCHAR2(1),

“CUST_IMAGE_NO” VARCHAR2(768),

“PAYOFF_SALARY_CUST_FLAG” VARCHAR2(1),

“LATST_MOBILE_NO” VARCHAR2(30),

“LATST_MOBILE_NO_UPDATE_TM” VARCHAR2(60),

“RESV_MOBILE_NO” VARCHAR2(30),

“RESV_MOBILE_NO_UPDATE_TM” VARCHAR2(60),

“CUST_TYP_CD” VARCHAR2(3),

“NOT_HAP_BUS_STA_TIME” VARCHAR2(60),

“PER_RES_PER_NET_VER_REL” VARCHAR2(1),

“LAST_MODI_TS” VARCHAR2(60),

“LAST_DATA_TS” VARCHAR2(60),

“VALID_TS” VARCHAR2(60),

“LAST_SYSTEM_ID” VARCHAR2(15),

“LAST_MODI_ORG” VARCHAR2(15),

“LAST_MODI_TELLER” VARCHAR2(30),

“LAST_MODI_BUSI_SCEN” VARCHAR2(15),

“GMT_CREATE” VARCHAR2(60),

“GMT_MODIFIED” VARCHAR2(60))

ALTER TABLE “GAOJ”.“T01_P_CUST_INFO” ADD PRIMARY KEY (“PARTY_ID”)

1 个赞

请问数据库的cpu和内存是多大呢

CPU:64C
ob有3个节点,内存是足够的

而且我发现在使用jdbc的时候"auto_commit"=false 效率会比"auto_commit"=true快几倍

1 个赞

有安装odc吗?可以看一下io消耗情况,查看一些监控信息。直接使用inert into和update执行速度怎么样?根据描述来看可能是数据库的配置和资源问题,或者是数据库压力较大导致的

1 个赞

insert 方式是优于 MERGE INTO方式的,如果我想实现更新,是不是可以先插入临时表,再merge临时表的数据到目标表,这个方案推荐吗?

1 个赞

不推荐使用这种,MERGE INTO要做判断,符合的insert,不符合的update,而且本身就是一个大事物

1 个赞

有道理,学一下