【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】使用sqoop和datax将hive上的同一个表导入tidb和mysql
【遇到的问题:导入tidb的速度较慢只有1.2MB/s, mysql这边有2.5MB/S, 有什么参数配置可以优化写入速度吗
【资源配置】
【附件:截图/日志/监控】
都是单线程测试, sqoop脚步如截图1, 导入速度如图2
【 TiDB 使用环境】生产环境
【 TiDB 版本】
【复现路径】使用sqoop和datax将hive上的同一个表导入tidb和mysql
【遇到的问题:导入tidb的速度较慢只有1.2MB/s, mysql这边有2.5MB/S, 有什么参数配置可以优化写入速度吗
【资源配置】
【附件:截图/日志/监控】
都是单线程测试, sqoop脚步如截图1, 导入速度如图2
tidb需要500并发速度才快
请问下这个速度是正常的吗 还是我有什么优化没搞好?
应该是正常的
tidb我理解是用空间换时间的。
表结构能发一下吗?
CREATE TABLE t_test_100withfid
(
fid
bigint(20) NOT NULL COMMENT ‘fid’,
cust_id
varchar(200) DEFAULT NULL COMMENT ‘客户id’,
cust_number
varchar(400) DEFAULT NULL COMMENT ‘客户编号’,
cust_name
varchar(400) DEFAULT NULL COMMENT ‘签约客户’,
rec_customer_id
varchar(200) DEFAULT NULL COMMENT ‘使用客户id’,
rec_cust_number
varchar(200) DEFAULT NULL COMMENT ‘使用客户编码’,
rec_cust_name
varchar(400) DEFAULT NULL COMMENT ‘使用客户’,
cust_level
varchar(200) DEFAULT NULL COMMENT ‘客户等级’,
cust_address
varchar(400) DEFAULT NULL COMMENT ‘客户联系地址’,
customer_type_str
varchar(200) DEFAULT NULL COMMENT ‘客户类型’,
listed_company
varchar(200) DEFAULT NULL COMMENT ‘上市公司’,
zjtx
varchar(200) DEFAULT NULL COMMENT ‘专精特新’,
industry
varchar(200) DEFAULT NULL COMMENT ‘客户行业’,
second_industry
varchar(200) DEFAULT NULL COMMENT ‘客户二级行业’,
kd_industry
varchar(200) DEFAULT NULL COMMENT ‘金蝶行业’,
industry_name_std1
varchar(200) DEFAULT NULL COMMENT ‘国标行业’,
cust_last_comp_number
varchar(200) DEFAULT NULL COMMENT ‘客户最后的新购合同编号’,
chance_code
varchar(200) DEFAULT NULL COMMENT ‘商机编号’,
enterprise_nature
varchar(200) DEFAULT NULL COMMENT ‘企业性质’,
sales_channel
varchar(200) DEFAULT NULL COMMENT ‘销售渠道’,
business_line1
varchar(200) DEFAULT NULL COMMENT ‘业务线1’,
business_line2
varchar(200) DEFAULT NULL COMMENT ‘业务线2’,
business_line3
varchar(200) DEFAULT NULL COMMENT ‘业务线3’,
business_line4
varchar(200) DEFAULT NULL COMMENT ‘业务线4’,
comp_status
varchar(200) DEFAULT NULL COMMENT ‘合同状态’,
bill_type
varchar(200) DEFAULT NULL COMMENT ‘单据类型’,
comp_file_type
varchar(200) DEFAULT NULL COMMENT ‘合同文件类型’,
order_status
varchar(200) DEFAULT NULL COMMENT ‘订货状态’,
corp_id
bigint(20) DEFAULT NULL COMMENT ‘子公司id’,
corp_name
varchar(200) DEFAULT NULL COMMENT ‘子公司名称’,
area_id
bigint(20) DEFAULT NULL COMMENT ‘责任单位ID’,
area_name
varchar(200) DEFAULT NULL COMMENT ‘责任单位名称’,
area_short_name
varchar(200) DEFAULT NULL COMMENT ‘责任单位简称’,
organ_id
bigint(20) DEFAULT NULL COMMENT ‘销售机构ID’,
kbc_organ_id
bigint(20) DEFAULT NULL COMMENT ‘kbc销售机构ID(ICRM的合同为空)’,
organ_name
varchar(200) DEFAULT NULL COMMENT ‘销售机构名称’,
organ_class
varchar(200) DEFAULT NULL COMMENT ‘销售机构等级’,
organ_short_name
varchar(200) DEFAULT NULL COMMENT ‘销售机构简称’,
organ_full_number
varchar(200) DEFAULT NULL COMMENT ‘机构编号’,
dept_id
bigint(20) DEFAULT NULL COMMENT ‘销售部门ID’,
dept_name
varchar(200) DEFAULT NULL COMMENT ‘销售部门’,
salesman_id
bigint(20) DEFAULT NULL COMMENT ‘客户经理ID’,
salesman
varchar(200) DEFAULT NULL COMMENT ‘客户经理’,
partner_id
bigint(20) DEFAULT NULL COMMENT ‘合作伙伴ID’,
partner_name
varchar(200) DEFAULT NULL COMMENT ‘合作伙伴’,
partner_number
varchar(200) DEFAULT NULL COMMENT ‘伙伴编码’,
partner_salesman_id
varchar(200) DEFAULT NULL COMMENT ‘伙伴负责人ID’,
parterner_salesman
varchar(200) DEFAULT NULL COMMENT ‘伙伴负责人’,
is_mixed
varchar(200) DEFAULT NULL COMMENT ‘是否为混签合同’,
comp_id
varchar(200) DEFAULT NULL COMMENT ‘主合同id’,
comp_number
varchar(200) DEFAULT NULL COMMENT ‘合同编号’,
agent_sign
varchar(200) DEFAULT NULL COMMENT ‘是否项目代签’,
sign_unit
varchar(200) DEFAULT NULL COMMENT ‘签约单位’,
sign_id
varchar(200) DEFAULT NULL COMMENT ‘签订人id’,
sign_real_name
varchar(200) DEFAULT NULL COMMENT ‘签订人’,
audit_date
datetime DEFAULT NULL COMMENT ‘审核日期’,
sign_degree
varchar(200) DEFAULT NULL COMMENT ‘签约接触程度’,
comp_sign_date
varchar(200) DEFAULT NULL COMMENT ‘主合同签订时间’,
sign_op_time
varchar(200) DEFAULT NULL COMMENT ‘签订操作时间’,
comp_std_amt
double DEFAULT NULL COMMENT ‘主合同标准金额’,
comp_real_amt
double DEFAULT NULL COMMENT ‘主合同实际金额’,
comp_addup_cash
double DEFAULT NULL COMMENT ‘主合同累计收款’,
comp_receivable
double DEFAULT NULL COMMENT ‘主合同总应收’,
comp_product
varchar(400) DEFAULT NULL COMMENT ‘所购产品’,
realbt_product_name
varchar(300) DEFAULT NULL COMMENT ‘实际归属产品名称’,
no_product
varchar(200) DEFAULT NULL COMMENT ‘是否无产品合同’,
is_new_cust
varchar(200) DEFAULT NULL COMMENT ‘是否新客户’,
is_new_cust_prod
varchar(200) DEFAULT NULL COMMENT ‘是否产品线的新客户’,
subcomp_id
varchar(200) DEFAULT NULL COMMENT ‘子合同id’,
subcomp_number
varchar(200) DEFAULT NULL COMMENT ‘子合同编号’,
cost_project_no
varchar(200) DEFAULT NULL COMMENT ‘预算项目号’,
cloud_product
varchar(200) DEFAULT NULL COMMENT ‘是否云订阅’,
subcomp_std_amt
double DEFAULT NULL COMMENT ‘子合同标准金额’,
subcomp_real_amt
double DEFAULT NULL COMMENT ‘子合同实际金额’,
subcomp_addup_cash
double DEFAULT NULL COMMENT ‘子合同累计收款’,
subcomp_receivable
double DEFAULT NULL COMMENT ‘子合同应收’,
subcomp_type_number
varchar(200) DEFAULT NULL COMMENT ‘子合同类型编码’,
type_desc
varchar(200) DEFAULT NULL COMMENT ‘子合同类型’,
comp_business_type
varchar(200) DEFAULT NULL COMMENT ‘子合同业务类型’,
sign_date
date DEFAULT NULL COMMENT ‘子合同签订日期’,
prod_sid
varchar(200) DEFAULT NULL COMMENT ‘标准产品id’,
prod_no
varchar(200) DEFAULT NULL COMMENT ‘产品序列号’,
link_custpro_number
varchar(200) DEFAULT NULL COMMENT ‘关联资产KBC产品序列号’,
icrm_link_custpro_number
varchar(200) DEFAULT NULL COMMENT ‘关联资产ICRM产品序列号’,
product_status
varchar(200) DEFAULT NULL COMMENT ‘产品状态’,
product_long_number
varchar(400) DEFAULT NULL COMMENT ‘当前产品长编码’,
parent_product_long_number
varchar(400) DEFAULT NULL COMMENT ‘当前产品长编码’,
subcomp_prod_name
varchar(200) DEFAULT NULL COMMENT ‘子合同产品名称’,
prod_version
varchar(200) DEFAULT NULL COMMENT ‘产品版本’,
subcomp_adjust_prod
varchar(400) DEFAULT NULL COMMENT ‘子合同核算产品’,
subcomp_assessment_prod
varchar(400) DEFAULT NULL COMMENT ‘子合同考核产品’,
tax_rate_name
varchar(200) DEFAULT NULL COMMENT ‘税率(名称)’,
product_type
varchar(200) DEFAULT NULL COMMENT ‘产品大类’,
product_series
varchar(200) DEFAULT NULL COMMENT ‘产品序列’,
product_line1
varchar(200) DEFAULT NULL COMMENT ‘产品线1’,
product_line2
varchar(200) DEFAULT NULL COMMENT ‘产品线2’,
bi_product_line1
varchar(200) DEFAULT NULL COMMENT ‘BI产品线1’,
bi_product_line2
varchar(200) DEFAULT NULL COMMENT ‘BI产品线2’,
bi_product_line3
varchar(200) DEFAULT NULL COMMENT ‘BI产品线3’,
adjust_product_line
varchar(200) DEFAULT NULL COMMENT ‘核算产品线’,
prod_standard_sum
double DEFAULT NULL COMMENT ‘产品标准报价’,
prod_real_sum
double DEFAULT NULL COMMENT ‘产品实际报价’,
prod_distribute_sum
double DEFAULT NULL COMMENT ‘产品分摊金额’,
prod_real_amt
double DEFAULT NULL COMMENT ‘产品最终金额’,
prod_begin_date
date DEFAULT NULL COMMENT ‘产品开始时间’,
prod_end_date
date DEFAULT NULL COMMENT ‘产品结束时间’,
prod_age_limit
double DEFAULT NULL COMMENT ‘产品购买年限’,
quote_number
varchar(200) DEFAULT NULL COMMENT ‘报价单编号’,
quote_id
varchar(200) DEFAULT NULL COMMENT ‘报价单ID’,
prod_quote_id
varchar(200) DEFAULT NULL COMMENT ‘产品报价单ID’,
module_quote_id
varchar(200) DEFAULT NULL COMMENT ‘模块报价ID’,
module_id
varchar(200) DEFAULT NULL COMMENT ‘模块ID’,
module_type
varchar(200) DEFAULT NULL COMMENT ‘模块类型’,
material_group
varchar(200) DEFAULT NULL COMMENT ‘模块分组’,
system
varchar(200) DEFAULT NULL COMMENT ‘模块子系统’,
product_domain
varchar(200) DEFAULT NULL COMMENT ‘产品领域’,
cust_product_domain
varchar(200) DEFAULT NULL COMMENT ‘客户购买的所有产品领域’,
module_group
varchar(200) DEFAULT NULL COMMENT ‘模块分组(用于区分模块是否属于专业应用组)’,
module_name
varchar(200) DEFAULT NULL COMMENT ‘模块名称’,
original_module_name
varchar(200) DEFAULT NULL COMMENT ‘原始模块名称’,
csut_module_name
text DEFAULT NULL COMMENT ‘客户购买的所有模块’,
origin_stations
int(11) DEFAULT NULL COMMENT '原站点数 ',
buy_stations
int(11) DEFAULT NULL COMMENT ‘购买站点数’,
standard_sum
double DEFAULT NULL COMMENT ‘累计标准报价’,
real_sum
double DEFAULT NULL COMMENT ‘累计实际报价’,
standard_price
double DEFAULT NULL COMMENT ‘单年标准报价’,
real_price
double DEFAULT NULL COMMENT ‘单年实际报价’,
addup_cash
double DEFAULT NULL COMMENT ‘累计收款金额’,
distribute_sum
double DEFAULT NULL COMMENT ‘模块分摊金额’,
module_real_amt
double DEFAULT NULL COMMENT ‘模块实际报价’,
module_amt_ratio
double DEFAULT NULL COMMENT ‘整体合同模块分摊比率’,
subcomp_mod_amt_ratio
double DEFAULT NULL COMMENT ‘子合同模块分摊比率’,
real_quote_amt
double DEFAULT NULL COMMENT ‘子合同模块实际报价分摊金额’,
gathering_amt
double DEFAULT NULL COMMENT ‘子合同模块收款分摊金额’,
comp_begin_date
date DEFAULT NULL COMMENT ‘约定服务开始日期’,
comp_end_date
date DEFAULT NULL COMMENT ‘约定服务到期日期’,
age_limit
double DEFAULT NULL COMMENT ‘租赁年限’,
dw_source
varchar(200) DEFAULT NULL COMMENT ‘数据来源’,
update_time
datetime DEFAULT NULL COMMENT ‘数据更新日期’,
PRIMARY KEY (fid
) /*T![clustered_index] NONCLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
批量导入,差距会小
非聚簇索引表的话,肯定是有写热点的,建议你按照
https://docs.pingcap.com/zh/tidb/stable/high-concurrency-best-practices#更复杂的热点问题,
进行一下region预打散和拆分
比较新的版本tidb 非聚簇表写入性能只有聚簇表一半,你考虑换聚簇表吧
TiDB在高并发小批量插入会是最佳场景。
在DataX内部,每个Channel会有速度控制,可以设置每秒同步的记录数或字节数。默认的速度限制是1MB/s,但可以根据硬件情况调整这个速度限制。例如,可以将单个Channel的速度上限配置为5MB/s。这样可以提升每个channel的数据传输速度
有设置主键fid这不是聚簇索引吗
*T![clustered_index] NONCLUSTERED * 这个注释是说不用聚簇表
压测一下磁盘,有时候是磁盘问题,咋优化也没用