Sample Header Ad - 728x90

How to quickly load a large amount of data from a CSV file and write it to a database?

-2 votes
1 answer
117 views
**Product name** >OceanBase V4.2.5-Community version **Problem description** >obd deployment cluster: >three machines 1-1-1, 16c64G, memory_limit=32G >Import csv file, 100 million data, 100 partitions by time field, no primary key set >I use this method to import data: >**load data/*+ parallel(9) load_batch_size(18)*/** **The result is very time-consuming** How to deal with it to quickly import 100 million data? --- **System built-in tenant settings:**
alter system set system_memory=‘15g’; 
alter resource unit sys_unit_config max_memory=‘15g’,min_memory=‘15g’; 
#Tuning Parameters 
alter system set enable_merge_by_turn= False; 
alter system set trace_log_slow_query_watermark=‘100s’; 
alter system set max_kept_major_version_number=1; 
alter system set enable_sql_operator_dump=True; 
alter system set _hash_area_size=‘3g’; 
alter system set memstore_limit_percentage=50; 
alter system set enable_rebalance=False; 
alter system set memory_chunk_cache_size=‘1g’; 
alter system set minor_freeze_times=5; 
alter system set merge_thread_count=20; 
alter system set cache_wash_threshold=‘30g’; 
alter system set _ob_enable_prepared_statement=true; 
##Adjust the log level and number of saved logs 
alter system set syslog_level=‘PERF’; 
alter system set max_syslog_file_count=100; 
alter system set enable_syslog_recycle=‘True’;
**Customize tenant settings:**
CREATE RESOURCE UNIT unit1 max_cpu = 9,max_memory = 3006477108,min_memory = 3006477108, max_iops = 10000,min_iops = 1280,max_session_num = 3000,max_disk_size = 214748364800 – 200 GB; 
set global NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS’; 
set global NLS_TIMESTAMP_FORMAT=‘YYYY-MM-DD HH24:MI:SS.FF’; 
set global NLS_TIMESTAMP_TZ_FORMAT=‘YYYY-MM-DD HH24:MI:SS.FF TZR TZD’; 
set global ob_sql_work_area_percentage=80; 
set global optimizer_use_sql_plan_baselines = true; 
set global optimizer_capture_sql_plan_baselines = true; 
alter system set ob_enable_batched_multi_statement=‘true’; 
##Set under the tenant to prevent transaction timeout
show variables like ‘%timeout%’; 
set global ob_query_timeout=72000000000; 
set global ob_trx_timeout=72000000000; 
set global max_allowed_packet=67108864; 
#Execute load data permission
set global secure_file_priv=’’; 
grant file on *.* to sqluser01;
Asked by KooMaraLaHam (1 rep)
Apr 17, 2025, 03:19 AM
Last activity: Apr 17, 2025, 09:41 AM