本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7253739.html?templateId=171...
本方案采用csv文件格式进行数据的导出和导入。具体步骤如下:
通过sql语句将Doris表导出成csv文件
注:导出到本地文件时需要先在fe.conf中配置enable_outfile_to_local=true并重启fe节点
-- Doris默认查询超时时长为3600秒,此处改大,防止查询时间不够
set query_timeout = 36000;
-- 设置支持并发导出
set enable_parallel_outfile = true;
-- 导出条数默认限制为200条,需要改大
-- 因为崖山和Doris对null值处理的不同(Doris的null值导出为\N),Date和数字类型为null时需要转换(Date类型为null时需要转成空串,数字类型为null时需要转成0)
select nvl(user_id, 0), nvl(dt, ‘’), city, nvl(age, 0), nvl(sex, 0), nvl(last_visit_date, ‘’), nvl(cost, 0), nvl(max_dwell_time, 0), nvl(min_dwell_time, 0)
select nvl(user_id, 0), nvl(dt, ‘’), city, nvl(age, 0), nvl(sex, 0), nvl(last_visit_date, ‘’), nvl(cost, 0), nvl(max_dwell_time, 0), nvl(min_dwell_time, 0) from example_db.example_tbl_agg1 LIMIT 1000000000
INTO OUTFILE "file:///data/example_tbl_agg1/result_"
FORMAT AS CSV
PROPERTIES
(
"column_separator" = "|", -- 列分隔符改成|,防止数据中也存在默认的分隔符逗号
"line_delimiter" = "\n"
);
在崖山分布式上创建表
CREATE TABLE IF NOT EXISTS example_db.example_tbl_agg1
(
user_id BIGINT NOT NULL,
dt DATE NOT NULL,
city VARCHAR(20),
age SMALLINT,
sex TINYINT,
last_visit_date DATE,
cost BIGINT,
max_dwell_time INT,
min_dwell_time INT
) order by(user_id) partition by hash(user_id) partitions auto;
通过yasldr将Doris导出的csv文件导入到崖山分布式
yasldr example_db/example_db@127.0.0.1:1688 batch_size=4032 senders=9 control_text="'LOAD DATA OPTIONS(DEGREE_OF_PARALLELISM=16,ENABLE_BULK=TRUE) INFILE '/data/example_tbl_agg1/result_2ec7ec4eeae74a66-a094b4f43cd3a482_0.csv' WITH EMBEDDED FIELDS TERMINATED BY '|' INTO TABLE EXAMPLE_DB.EXAMPLE_TBL_AGG1(USER_ID,DT,CITY,AGE,SEX,LAST_VISIT_DATE,COST,MAX_DWELL_TIME,MIN_DWELL_TIME)'"
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。