大数据Doris(五十二):Doris数据导出案例和注意事项

news2024/12/26 21:52:38

文章目录

Doris数据导出案例和注意事项

一、Doris数据导出到HDFS案例

1、创建Doris表并插入数据

2、创建Export ,数据导出到 HDFS

3、查看任务

4、查看导出结果

二、Doris数据导出到本地案例

1、配置 fe.conf

2、Doris 数据导出到本地

三、注意事项


Doris数据导出案例和注意事项

一、Doris数据导出到HDFS案例

1、创建Doris表并插入数据

#创建Doris表
CREATE TABLE IF NOT EXISTS example_db.export_tbl
(
`user_id` LARGEINT NOT NULL COMMENT "用户id",
`date` DATE NOT NULL COMMENT "数据灌入日期时间",
`timestamp` DATETIME NOT NULL COMMENT "数据灌入时间,精确到秒",
`city` VARCHAR(20) COMMENT "用户所在城市",
`age` SMALLINT COMMENT "用户年龄",
`sex` TINYINT COMMENT "用户性别",
`last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
`cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
`max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
ENGINE=OLAP
AGGREGATE KEY(`user_id`, `date`, `timestamp`, `city`, `age`, `sex`)
PARTITION BY RANGE(`date`)
(
PARTITION `p1` VALUES [("2017-10-01"),("2017-10-02")),
PARTITION `p2` VALUES [("2017-10-02"),("2017-10-03")),
PARTITION `p3` VALUES [("2017-10-03"),("2017-10-04"))
)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

#插入数据
insert into example_db.export_tbl values 
(10000,"2017-10-01","2017-10-01 08:00:05","北京",20,0,"2017-10-01 06:00:00",20,10,10),
(10000,"2017-10-01","2017-10-01 09:00:05","北京",20,0,"2017-10-01 07:00:00",15,2,2),
(10001,"2017-10-01","2017-10-01 18:12:10","北京",30,1,"2017-10-01 17:05:45",2,22,22),
(10002,"2017-10-02","2017-10-02 13:10:00","上海",20,1,"2017-10-02 12:59:12",200,5,5),
(10003,"2017-10-02","2017-10-02 13:15:00","广州",32,0,"2017-10-02 11:20:00",30,11,11),
(10004,"2017-10-01","2017-10-01 12:12:48","深圳",35,0,"2017-10-01 10:00:15",100,3,3),
(10004,"2017-10-03","2017-10-03 12:38:20","深圳",35,0,"2017-10-03 10:20:22",11,6,6);

2、创建Export ,数据导出到 HDFS

EXPORT TABLE example_db.export_tbl 
PARTITION (p1,p2,p3)
TO "hdfs://mycluster/export/" 
PROPERTIES
(
"column_separator"=",",
"columns" = "user_id,date,timestamp,city,age,sex,last_visit_date,cost,max_dwell_time,min_dwell_time",
"exec_mem_limit"="2147483648",
"timeout" = "3600"
)
WITH BROKER "broker_name"
(
"username" = "root",
"password" = "",
"dfs.nameservices"="mycluster",
"dfs.ha.namenodes.mycluster"="node1,node2",
"dfs.namenode.rpc-address.mycluster.node1"="node1:8020",
"dfs.namenode.rpc-address.mycluster.node2"="node2:8020",
"dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
);

注意:任务导出后目前不支持取消导出。

3、查看任务

mysql> show export \G;
*************************** 1. row ***************************
     JobId: 42452
     Label: export_08629eeb-f48e-4f52-a03e-0af81410272a
     State: EXPORTING
  Progress: 0%
  TaskInfo: {"partitions":["p1","p2","p3"],"exec mem limit":2147483648,"column separator":",","line delimiter":"\n","columns":"user_id,date,times
tamp,city,age,sex,last_visit_date,cost,max_dwell_time,min_dwell_time","tablet num":3,"broker":"broker_name","coord num":1,"db":"default_cluster:example_db","tbl":"export_tbl"}      Path: hdfs://mycluster/export/
CreateTime: 2023-06-13 18:14:25
 StartTime: 2023-06-13 18:14:28
FinishTime: NULL
   Timeout: 3600
  ErrorMsg: NULL
15 rows in set (0.02 sec)

4、查看导出结果

登录HDFS ,查看导出结果如下:

二、Doris数据导出到本地案例

1、配置 fe.conf

将Doris表数据通过select...into outfile方式导出到本地文件时需要先在各个FE节点的fe.conf文件中加入"enable_outfile_to_local=true",并重新启动Doris集群。

下面在node1-node5各个FE节点上配置fe.conf文件:

#node1-node5节点配置 fe.conf文件,加入配置
vim /software/doris-1.2.1/apache-doris-fe/conf/fe.conf
enable_outfile_to_local=true

2、Doris 数据导出到本地

与导出到HDFS不同的是导入到本地的目录需要预先创建出来,然后执行导出数据命令即可,这里说的本地是指BE节点,指定对应导出命令时不一定是在哪个BE节点进行导出,所以这里我们在所有BE节点创建导出路径

#创建/home/work/path路路径,在各个BE节点创建,node3-node5
mkdir -p /home/work/path

这里同样对Doris表"export_tbl"进行导出,这里将表中数据导出到BE节点的"/home/work/path/"目录下。

#在doris mysql客户端执行如下命令
select * from export_tbl limit 100 
INTO OUTFILE "file:///home/work/path/result_";

三、注意事项

  • 关于FE配置可以通过配置fe.conf实现
    1. export_checker_interval_second :Export 作业调度器的调度间隔,默认为 5 秒。设置该参数需重启 FE。
    2. export_running_job_num_limit :正在运行的 Export 作业数量限制。如果超过,则作业将等待并处于 PENDING 状态。默认为 5,可以运行时调整。
    3. export_task_default_timeout_second :Export 作业默认超时时间。默认为 2 小时。可以运行时调整。
    4. export_tablet_num_per_task :一个查询计划负责的最大分片数。默认为 5。
    5. label :用户手动指定的 EXPORT 任务 label ,如果不指定会自动生成一个 label 。
  • 不建议一次性导出大量数据。一个 Export 作业建议的导出数据量最大在几十 GB。过大的导出会导致更多的垃圾文件和更高的重试成本。
  • 如果表数据量过大,建议按照分区导出。
  • 在 Export 作业运行过程中,如果 FE 发生重启或切主,则 Export 作业会失败,需要用户重新提交。
  • 如果 Export 作业运行失败,在远端存储中产生的 __doris_export_tmp_xxx 临时目录,以及已经生成的文件不会被删除,需要用户手动删除。
  • 如果 Export 作业运行成功,在远端存储中产生的 __doris_export_tmp_xxx 目录,根据远端存储的文件系统语义,可能会保留,也可能会被清除。比如对象存储(支持S3协议)中,通过 rename 操作将一个目录中的最后一个文件移走后,该目录也会被删除。如果该目录没有被清除,用户可以手动清除。
  • 当 Export 运行完成后(成功或失败),FE 发生重启或切主,则 SHOW EXPORT 展示的作业的部分信息会丢失,无法查看。
  • Export 作业只会导出 Base 表的数据,不会导出 Rollup Index 的数据。
  • Export 作业会扫描数据,占用 IO 资源,可能会影响系统的查询延迟。


  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/702032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kettle源码远程debug调试

一、kettle启动时指定debug端口号 windows下,修改bat执行文件,同理 linux修改sh执行文件 在java执行参数的末尾添加debug参数 address为debug端口 -Xdebug -Xnoagent -Djava.compilerNONE -Xrunjdwp:transportdt_socket,servery,suspendn,address9080然…

从渲染流程、数据处理结构聊聊Flutter性能优化

不可否认 Flutter 是一个非常强大的移动应用开发框架,我们在技术架构选型时就是选用的 Flutter,特别是跨端能力属实很优秀,but 也逐渐发现在复杂的应用程序实现中,App 的性能会受到一些影响。 其实这个问题,我们内部也…

SpringCloud入门实战(九)- SpringCloud Config配置中心

📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 ,关注我,不迷路 。 💐学习建议:1、养成习惯,学习java的任何一个技术…

java List集合使用笔记

1、List集合的特点 有序集合、有序的序列,用户可以精准的控制元素插入的位置通过索引访问元素可以搜索元素与Set不同,List允许重复的元素存在 2、List集合特有的方法 add(索引,元素) remove(索引):返回的是被删除的索引 get(索引)&#xf…

Arduino uno 环境配置 for Mac

1、IDE 在官网下载 官网地址:https://www.arduino.cc/en/software 看到钱💰不要怕,只是问你捐不捐款,不收钱,你直接安装就行 (你也可以捐一点~) 安装之后 2、安装驱动 地址 &…

单片机-矩阵键盘密码锁

89C52RC芯片 1.矩阵按键输入正确密码&#xff0c;LCD1602右上角显示ok&#xff0c;错误显示Err。 涉及文件&#xff1a; 1.main.c (#include<regx52.h>) 2.lcd1602.c lcd1602.h 3.Delay.c Delay.h 4.MatrixKey.c MetrixKey.h 共7项 代码 main.c #…

此导入从不用作值,必须使用 “import type“ ,因为 “importsNotUsedAsValues“ 设置为 “error“。

前言 最近电脑更新了一次系统&#xff0c;重启后在 VsCode中打开项目 &#xff0c;发现原本正常的代码出现了一堆语法提示。网上搜了一下&#xff0c;没有找到关于此问题的回答&#xff0c;不知道我是不是第一个遇到的。在此记录一下这次的经历&#xff0c;如果有其他人遇到&a…

蓝桥杯专题-试题版含答案-【6174问题】【笨小熊】【鸡兔同笼】【小学生算数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

突破APP广告收益天花板的多种数据优化方法

​APP开发者对于广告变现最关心的问题就是收益。事实上&#xff0c;广告收益与广告请求、曝光和点击等关键数据之间存在着密切的联系。这些数据的表现直接影响着广告的收益情况。 因此&#xff0c;开发者需要重视并优化这些关键链路数据。本文将介绍一些优化方法&#xff0c;帮…

zabbix 介绍及部署

目录 一、zabbix的基本概述 二、zabbix功能 &#xff08;一&#xff09;数据收集 &#xff08;二&#xff09;灵活的阈值定义 &#xff08;三&#xff09;高度可配置的告警 &#xff08;四&#xff09;实时图形 &#xff08;五&#xff09;网络监控功能 &#xff08;六…

牛客网专项练习——C语言错题集(10)

文章目录 两数相除后的数据类型if 语句表达式类似转义字符逗号表达式易错题指针概念异或刁钻题&#xff0c;多维数组地址自动变量 两数相除后的数据类型 C语言规定除法运算符( / )的运算结果的数据类型与被除数的数据类型保存一致&#xff0c;所以一个整数除以另一个整数的结果…

JPA 批量插入较大数据 解决性能慢问题

JPA 批量插入较大数据 解决性能慢问题 使用jpa saveAll接口的话需要了解原理&#xff1a; TransactionalOverridepublic <S extends T> List<S> saveAll(Iterable<S> entities) {Assert.notNull(entities, "Entities must not be null!");List<…

建设Web3需要Web2的人才?探索传统技能在Web3时代的作用

摘要&#xff1a;Web3作为下一代互联网技术的前沿&#xff0c;许多人关注着它的发展和应用。然而&#xff0c;建设Web3是否需要Web2的人才仍然是一个有争议的问题。 Web3作为下一代互联网技术&#xff0c;以去中心化、智能合约和用户自治等特点引起了广泛的关注。与此同时&…

基于STM32单片机的智能家居毕设

文章目录 一、硬件选型1、硬件清单2、硬件展示&#xff08;部分&#xff09; 二、效果展示1、整体效果展示2、显示屏&#xff08;触摸&#xff09;效果展示 三、功能分析1、系统总体结构框图2、主要包含的功能 四、怎么做&#xff1f;1、STM32单片机部分2、语音识别与播报部分3…

wamp环境解决局域网不能访问的问题!

安装好wamp后&#xff0c;想用手机通过局域访问电脑上wamp下的网页&#xff0c;结果出现如下提示403错误&#xff1a; 第一步&#xff1a;找到 conf 这个文件&#xff1a; 找到下图中红色方框中的onlineoffline tag - don’t remove&#xff0c;将原来的Require local替换为Re…

JMeter:如何开始简单的WEB压力测试?

目录 背景 如何开始简单的WEB压力测试 PutsReq网站截图 执行测试计划 背景 JMeter是一款广泛使用的性能测试工具&#xff0c;它可以模拟用户行为并生成负载&#xff0c;用于评估Web应用程序的性能和稳定性。 最近工作上被安排针对Web网站进行性能压测&#xff0c;以评估特…

chatgpt赋能python:关于Python除二取余法的优缺点分析

关于Python除二取余法的优缺点分析 Python是当前数据分析和科学计算最火热的语言之一&#xff0c;其中除二取余法是Python中很有趣的算法之一。它也是很常用的基础算法之一&#xff0c;特别是在图像处理和编码中&#xff0c;非常常用。除二取余法指的是一个数值除以二后的余数…

『手撕 Mybatis 源码』09 - MyBatis 插件

MyBatis插件 概述 问题&#xff1a;什么是Mybatis插件&#xff1f;有什么作用&#xff1f; Mybatis插件本质上来说就是一个拦截器&#xff0c;它体现了 JDK 动态代理和责任链设计模式的综合运用 Mybatis 中所允许拦截的方法如下 Executor 【SQL执行器】【update&#xff…

深信服行为感知系统远程命令执行

什么是男子汉?困难打不倒的人才是真正的男子汉&#xff01; 漏洞复现 构造payload访问漏洞url&#xff1a; /tool/log/c.php?strip_slashessystem&hostipconfig漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢…

linux服务器python2升级安装python3.7环境

文章目录 开始1. 首先&#xff0c;先检查自己的系统是否安装了python32. 如果你只是想安装python3.63. 安装python3.7的准备工作4. 安装python35. 添加软链接&#xff0c;让python3和pip3这两个命令指向刚刚安装的python3.76. 检验python3安装是否ok7. 更新默认 Python 版本8. …