使用navicat导出mysql离线数据后,再导入doris的方案

一、背景

doris本身是支持直接从mysql中同步数据的,但有时候,客户不允许我们使用doris直连mysql,此时就需要客户配合将mysql中的数据手工导出成离线文件,我们再导入到doris中

二、环境

doris 1.2

三、方案

doris支持多种导入离线数据的方案,见 doris导入数据方案 ,但在本文场景下,一般会使用到insert into、csv和json三种方案

3.1 insert into方案

doris对于insert into 对于数据量较小的场景(比如100行以内),可以直接让用户在navicat中将某个表转储SQL文件,然后将其中的insert语句copy出来在doris中执行。但如果数据量较多时,doris会一行行地去执行,效率就会很低。此时如果将多个INSERT INTO中的value部分合并成一行,再由doris执行,效率就会得到提升,但navicat并不原生支持合并,因此作罢。

在这里插入图片描述
在这里插入图片描述

3.1.1 在doris命令行,或者mysql 命令行中执行

打开doris控制台,将insert粘贴进来执行。
在这里插入图片描述

或者使用mysql client登录到doris,将insert粘贴进来执行。
在这里插入图片描述

或者将insert语句写入到服务器的一个文件中,例如test.sql,然后在mysql client中执行source命令
在这里插入图片描述

3.1.2 在bash中执行

如果没有登录到mysql client中,也可以在bash里直接执行

mysql -h {doris_fe_ip}  -P {doris_fe_tcp_port,一般是9030} -u{doris_username} -p'{doris_password}' {doris_database}< /root/sql/test.sql

或者挂在后台执行

nohup  mysql -h {doris_fe_ip}  -P {doris_fe_tcp_port,一般是9030} -u{doris_username} -p'{doris_password}' {doris_database}< /root/sql/test.sql > /root/sql/test.log 2>&1 &

3.2 csv

对于没有什么很复杂的文本的表(主要是不会出现跟csv分隔符相同的文本的字段),可以使用csv格式。

使用navicat导出向导,格式选择csv,文本识别符号选择none(避免navicat自作聪明地给字段添加"),日期选YMD格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用这种方案导出来的csv文件格式如下,第一行是标题,剩下的是数据,数据分割符是 “,”
在这里插入图片描述

在doris上建好表之后,可以使用curl命令来将csv文件导入到doris

curl --location-trusted -u '{dorisusername}:{dorispassword}' -H "label:{12345}" -H "timeout:100" -H "format:csv_with_names" -H "column_separator:,"  -T {test.csv}  http://{doris_fe_ip}:{doris_fe_port}/api/{doris_db}/{doris_table}/_stream_load

相关命令说明如下:

dorisusername:doris的账号

dorispassword:doris的密码

label:本次导入任务的名称,多次导入时需要更换名称,30分钟内不允许名称重复

timeout:导入超时,单位s

format:文件格式,默认是csv,由于navicat导出的时候第一行不是数据而是标题,因此这里需要改成csv_with_names,作用是过滤掉第一行的标题

column_separator:文件分隔符,navicat导出来的csv的分割符是“,”

doris_fe_ip: doris的fe的ip

doris_fe_port: doris的fe的port,一般为8030

doris_db: doris的数据库名

doris_table: doris的数据表名

3.3 json(推荐)

相比于csv方案,json最大的好处是不怕文本中出现与分割符相同的内容,但坏处是json文件要求每个数据都有个key,因此文件会比csv大很多。

使用navicat导出向导,格式选择json,日期选YMD格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用这种方案导出来的json文件格式如下,最外层是[],每一行数据都会用一个{}括起来,而且多行数据的key的顺序是一样的。

在这里插入图片描述

在doris上建好表之后,可以使用curl命令来将json文件导入到doris

curl --location-trusted -u '{dorisusername}:{dorispassword}' -H "label:{12345}" -H "timeout:100" -H "format:json" -H "strip_outer_array:true" -T {test.csv}  http://{doris_fe_ip}:{doris_fe_port}/api/{doris_db}/{doris_table}/_stream_load

相关命令说明如下:

dorisusername:doris的账号

dorispassword:doris的密码

label:本次导入任务的名称,多次导入时需要更换名称,30分钟内不允许名称重复

timeout:导入超时,单位s

format:文件格式,默认是csv,本方案使用json,因此这里需要改成json

strip_outer_array:doris导入json时,默认最外层是{},但navicat导出来的数据最外层是[],因此需要指定此参数将json数组先展平

doris_fe_ip: doris的fe的ip

doris_fe_port: doris的fe的port,一般为8030

doris_db: doris的数据库名

doris_table: doris的数据表名

注意,json格式导入的时候,限制单个文件在100MB以内(在doris be上有参数可调),如果超过100MB,需要先将json切成多个小文件。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索C语言的内存魔法:动态内存管理解析

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C语言学习 贝蒂的主页&#xff1a;Betty‘s blog 1. 静态开辟内存 通过前面的学习&#xff0c;我们已经掌握了两种开辟内存的方…

ruoyi-nbcio中xxl-job的安装与使用

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a; http://122.227.135.243:9666 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbach…

Netty应用(四) 之 Reactor模型 零拷贝

目录 6.Reactor模型 6.1 单线程Reactor 6.2 主从多线程Reactor (主--->Boss | 从--->Worker | 一主多从机制) 7.扩展与补充 8.Reactor模型的实现 8.1 多线程Reactor模型的实现&#xff08;一个Boss线程&#xff0c;一个Worker线程&#xff09; 8.2 多线程Reactor模…

Python程序员面试题精选及解析(2)

本文精心挑选了10道Python程序员面试题&#xff0c;覆盖了Python的多个核心领域&#xff0c;包括装饰器、lambda函数、列表推导式、生成器、全局解释器锁(GIL)、单例模式以及上下文管理器等。每道题都附有简洁的代码示例&#xff0c;帮助读者更好地理解和应用相关知识点无论是对…

【Java EE初阶十一】文件操作(IO)

1. 认识文件 所谓的文件是一个广义的概念&#xff0c;可以代表很多东西&#xff1b;在操作系统里面&#xff0c;会把很多的硬件设备和软件设备都抽象成“文件”&#xff0c;统一进行管理&#xff1b;但是大部分情况下&#xff0c;我们读到的文件&#xff0c;都是指硬盘的文件&a…

Codeforces Round 106 D. Coloring Brackets 【区间DP + 记忆化搜索实现】

D. Coloring Brackets 约定 ∣ S ∣ ≤ 700 |S| \leq 700 ∣S∣≤700 题意 给定一个正则括号序列 s s s&#xff0c;我们需要求出合法的染色方案数。合法的条件为&#xff1a; 每个符号要么不染色&#xff0c;要么染红色&#xff0c;要么染蓝色对于每对配对的括号&#xf…

单片机与外设的交互

单片机与外设的交互是嵌入式系统中非常重要的一个基础知识点。单片机是一个集成在同一芯片上的中央处理器、存储器和输入/输出接口,它可以根据用户编写的程序与各种外部设备即外设进行交互。单片机与外设之间的交互主要通过单片机上的输入/输出口(I/O口)来实现。 I/O口的工作原…

【golang】24、go get 和 go mod:indrect 与 go mod tidy

文章目录 go get 会执行如下操作&#xff1a; 操作 go.mod 文件&#xff08;add、update、remove&#xff09;下载依赖到 $GOPATH/pkg/mod 中若已安装&#xff0c;则更新该包&#xff0c;到最新版本 试验前置准备&#xff1a;首先删除已下载的依赖&#xff0c;rm -rf $GOPATH…

零基础学python之高级编程(1)---面向对象编程及其类的创建

面向对象编程及其类的创建 文章目录 面向对象编程及其类的创建前言一、面向过程编程和面向对象编程的概念1.面向过程编程(Procedural Programming)2.面向对象编程(Object-Oriented Programming&#xff0c;OOP) 二、面向对象编程基础1.初识类(class)和对象调用方法 2.类中的两种…

Redis(三)主从架构、Redis哨兵架构、Redis集群方案对比、Redis高可用集群搭建、Redis高可用集群之水平扩展

转自 极客时间 Redis主从架构 redis主从架构搭建&#xff0c;配置从节点步骤&#xff1a; 1、复制一份redis.conf文件2、将相关配置修改为如下值&#xff1a; port 6380 pidfile /var/run/redis_6380.pid # 把pid进程号写入pidfile配置的文件 logfile "6380.log" …

JAVA设计模式之策略模式详解

策略模式 1 策略模式概述 策略模式(strategy pattern)的原始定义是&#xff1a;定义一系列算法&#xff0c;将每一个算法封装起来&#xff0c;并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。 其实我们在现实生活中常常遇到实现某种目标存在多种策略…

【机器学习】机器学习简单入门

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

CSP-202112-2-序列查询新解

CSP-202112-2-序列查询新解 【70分思路】 【暴力枚举】按照题目思路遍历一遍f(x)和g(x)&#xff0c;计算error(A)&#xff0c;时间复杂度为O(N)&#xff0c;时间超限。 #include <iostream> using namespace std; int main() {long long n, N, sum 0;cin >> n …

【SpringBoot】application配置(5)

type-aliases-package: com.rabbiter.cm.domaintype-aliases-package: 这个配置用于指定mybatis的别名&#xff0c;别名是一个简化的方式&#xff0c;让你在Mapper xml 文件中引用java类型&#xff0c;而不需要使用使用完整的类名。例如&#xff0c;如果你在 com.rabbiter.cm.d…

谷歌 DeepMind 联合斯坦福推出了主从式遥操作双臂机器人系统增强版ALOHA 2

谷歌 DeepMind 联合斯坦福推出了 ALOHA 的增强版本 ——ALOHA 2。与一代相比&#xff0c;ALOHA 2 具有更强的性能、人体工程学设计和稳健性&#xff0c;且成本还不到 20 万元人民币。并且&#xff0c;为了加速大规模双手操作的研究&#xff0c;ALOHA 2 相关的所有硬件设计全部开…

数据结构|对称矩阵压缩存储的下标公式推导|如何求对称矩阵压缩存储对应的一维数组下标

因为考试的时候可能会给很多情况的变式题&#xff0c;所以要会推导而不是背公式&#xff0c;情况变了&#xff0c;公式就不管用了。 行优先、只存储主对角线下三角区&#xff1a; 矩阵下标 ai,j(i>j)->一维数组下标 B[k] 按照行优先的原则&#xff0c;确定 ai,j 是一维数…

搭建yum仓库服务器

安装 1.安装linux 1.1安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 1.2下载 cd /opt/nginx wget http://nginx.org/download/nginx-1.25.3.tar.gz 1.3解压 tar -xvf nginx-1.25.3.tar.gz 1.4配置 cd nginx-1.25.3 ./configure --pre…

NLP_引入注意力机制

文章目录 点积注意力创建两个张量x1和x2计算张量点积&#xff0c; 得到原始权重对原始权重进行归一化求出注意力分布的加权和 缩放点积注意力编码器-解码器注意力定义Attention类重构Decoder类重构Seq2Seq类可视化注意力权重 注意力机制中的 Q、K、V自注意力多头自注意力注意力…

【MATLAB】使用随机森林在回归预测任务中进行特征选择(深度学习的数据集处理)

1.随机森林在神经网络的应用 当使用随机森林进行特征选择时&#xff0c;算法能够为每个特征提供一个重要性得分&#xff0c;从而帮助识别对目标变量预测最具影响力的特征。这有助于简化模型并提高其泛化能力&#xff0c;减少过拟合的风险&#xff0c;并且可以加快模型训练和推理…

阿里云游戏服务器租用价格表,2024最新报价

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…