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
Last activity: Apr 17, 2025, 09:41 AM