KingbaseES数据库bulkload快速导入导出数据


数据库版本:KingbaseES V008R006C008B0014


简介

    sys_bulkload 是 kingbase 快速将 CSV 文件导入数据库的命令行工具,它支持串行和并行的方式,是目前导入数据最快的工具。

        

文章目录如下

1. 基础语法

1.1. 语法说明

1.2. 参数选项

1.3. 配置文件

2. 常见用法

2.1. 导入数据基本用法

2.2. 导出数据基本用法

2.3. 性能最快导入导出


        

1. 基础语法

1.1. 语法说明

sys_bulkload 有2种导入、导出数据的方式:

一、将配置文件存入某个文件直接使用

sys_bulkload -U 用户名 -d 库名 -p 端口号 [配置文件]

二、将所有参数写到同一命令行

sys_bulkload -U 用户名 -d 库名 -p 端口号 [配置参数xxx]

        

1.2. 参数选项

加载选项

-i <name>:导入时表示"文件路径",导出时表示"表名"
-O <name>:导入时表示"表名",导出时表示"文件路径"
-l <file>:输出的日志文件
-P <file>:记录无法正确解析的日志
-o <option>:命令行时使用配置文件中的参数
-E:设置输出的日志级别(默认:INFO):DEBUG/INFO/NOTICE/WARNING/ERROR/LOG/FATAL/PANIC

连接选项

-h:指定主机IP
-d:指定库名
-p:指定端口号
-U:指定用户名
-W:指定交互输入密码

        

1.3. 配置文件

必选参数

# 导入配置
WRITER = [BUFFERED | DIRECT]  # 指定加载方式,DIRECT绕过redo日志,效率最高;BUFFERED通过共享缓冲区加载(默认)
TYPE = [CSV | TEXT | BINARY]  # 指定导入的文本格式:csv、text、二进制格式
INPUT = [file_path]           # 源格式,导入的源就是文件
OUTPUT = [table_name]         # 目标格式,导入的目标就是某张表
LOGFILE = [log_file]          # 记录日志的文件# 导出配置
TYPE = DB             # 导出的格式为DB
INPUT = [table_name]  # 源格式,导出的源就是数据库
OUTPUT = [file_path]  # 目标格式,导出的目标就是文件
LOGFILE = [log_file]  # 记录日志的文件
WRITER = CSV_FILE     # 以csv格式导出到文件中

可选参数

PROCESSOR_COUNT = [num]             # 指定并行数(默认:1),根据cpu数设定,二进制格式不支持
SKIP_LAST_EMPTY_VALUE = [YES | NO]  # 忽略最后一列分隔符(默认:NO),只对csv格式有效
DELIMITER = ","                     # 指定分隔符(默认:逗号)
SPECIFY_COLUMN = <col1>,<col2>      # 指定导入的字段
SKIP = [num]                        # 导入时跳过多少行(默认:0),只对csv、text格式有效TRUNCATE = [YES | NO]               # 删除目标表中的数据(默认:NO),并行和导出不支持
LIMIT = [num]                       # 导入的最大行数(默认不限制),最大 (2^64)/2-1
PARSE_ERRORS = [num]                # 运行出现错误的次数(默认:0),-1表示不限制
DUPLICATE_BADFILE = [file_path]     # 无法导入的数据追加到指定文件
ENCODING = [encoding]               # 指定输入数据的编码格式

        

2. 常见用法

在导入或导出数据前,需要连接ksql创建插件:

CREATE EXTENSION sys_bulkload;

        

2.1. 导入数据基本用法

一、将配置文件存入某个文件直接使用

编写文件 file.ctl,写入如下内容:

WRITER = BUFFERED    # 加载方式
TYPE = CSV           # csv格式文件
INPUT = /home/yt/file.csv   # 源文件路径
OUTPUT = t1          # 表名
LOGFILE = ./t1.log   # 日志路径

执行导入命令

sys_bulkload -U [用户名] -d [库名] -p [端口号] ./file.ctl

        

二、将所有参数写到同一命令行

sys_bulkload -U [用户名] -d [库名] -p [端口号] \-O t1 \                # 表名-i /home/yt/file.csv \ # 源文件-o WRITER=BUFFERED \   # 加载格式-o TYPE=CSV            # 文件类型
  • 注意:-o 后面的参数,等于符号不要带空格。比如 -o TYPE = CSV 会出错

        

2.2. 导出数据基本用法

一、将配置文件存入某个文件直接使用

编写文件 file.ctl,写入如下内容:

WRITER = CSV_FILE          # 加载方式
TYPE = DB                  # 数据库格式
INPUT = t1                 # 源表名
OUTPUT = /home/yt/file.csv # 导出文件
LOGFILE = ./t1.log         # 日志路径

执行导出命令

sys_bulkload -U [用户名] -d [库名] -p [端口号] ./file.ctl

        

二、将所有参数写到同一命令行

sys_bulkload -U [用户名] -d [库名] -p [端口号] \-O /home/yt/file.csv \ # 文件路径-i t1 \                # 表名-o WRITER=CSV_FILE \   # 加载格式-o TYPE=DB             # 文件类型
  • 注意:-o 后面的参数,等于符号不要带空格。比如 -o TYPE = DB 会出错

        

2.3. 性能最快导入导出

提高导入导出的方式是使用并行,cpu有多少就使用多少并行:

PROCESSOR_COUNT = 并行数

导入导出都可使用并行提升性能,导入还可以使用DIRECT加载方式(绕过redo日志)性能更快。

导入示例:

PROCESSOR_COUNT = 8        # 使用8个并行
WRITER = DIRECT            # 加载方式
TYPE = CSV                 # csv格式文件
INPUT = /home/yt/file.csv  # 源文件路径
OUTPUT = t1                # 表名
LOGFILE = ./t1.log         # 日志路径

导出示例:

PROCESSOR_COUNT = 8        # 使用8个并行
WRITER = CSV_FILE          # 加载方式
TYPE = DB                  # 数据库格式
INPUT = t1                 # 源表名
OUTPUT = /home/yt/file.csv # 导出文件
LOGFILE = ./t1.log         # 日志路径

        

目录2.1基本用法方式导入1000w行数据(16s)

使用高性能导入1000w行(3s)

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

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

相关文章

C语言进阶课程学习记录- 函数与宏分析

C语言进阶课程学习记录- 函数与宏分析 实验-宏和函数实验-宏的副作用实验-宏的妙用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验-宏和函数 #include <stdio.h>#define RESET(p, len) …

贪心算法练习day.1

理论基础 贪心算法是一种常见的解决优化问题的方法&#xff0c;其基本思想就是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部的最优决策&#xff0c;以此得到全局的最优解&#xff0c;例如在十张面额不同的钞票&#xff0c;让我们…

批量修改kingbase数据库中表未生成的rowid字段

批量修改生成kingbase的rowid列 show default_with_rowid; 如果结果是off&#xff0c;说明不会生成rowid的列&#xff0c;则无法查询rowid列 想要查询需要手动将表得rowid列加上或者修改上面参数后重新迁移数据批量修改对应用户对应模式下所有表的rowid的存储过程如下&#xf…

【C++】详解初始化列表,隐式类型转化,类静态成员,友元

前言 初始化列表是对构造函数内容的补充&#xff0c;小编会详细的讲解初始化列表的概念&#xff0c;特性&#xff0c;注意点。这是本篇内容的重头戏&#xff0c;小编会先提一个问题来抛砖引玉。 隐式类型转换顾名思义&#xff0c;首先它不需要主动转换&#xff0c;类似于把浮点…

Vision Pro 手势追踪 - ARKit 教程

在 visionOS 中,ARKit 可以实现手部追踪和世界感应等增强现实功能,在 ARKit 中调用手部追踪的流程如下: ARKit 追踪数据使用流程 首先,需要向用户描述手势追踪数据的用途并取得用户授权。 Xcode Info 中填写 NSHandsTrackingUsageDescription 为了确保用户隐私,要调用…

这一世,要学会二维凸包

玩玩二维凸包 前言&注明 最近在学计几&#xff08;计算几何&#xff09;&#xff0c;然后…… 精神状态越来越好了。&#xff08;阿辉~&#xff09; 本文只写了二维凸包的一种解法&#xff1a;扫描法。个人认为和 FHQ_Treap 一样&#xff0c;都是解同类问题的算法中易懂…

IDEA 2021.3.3最新激活破解教程(可激活至2099年,亲测有效)

1、ja-netfilter-all Windows 系统&#xff0c;点击运行 install-current-user.vbs 脚本&#xff0c;为当前用户安装破解补丁 截图是window环境下的激活方式 运行此补丁大约花费几分钟&#xff0c;点击 确定&#xff0c; 等待 Done 完成提示框出现&#xff0c;到这里&#xf…

YashanDB V23.2 LTS发版 | 共享集群首个长期支持版本

4月&#xff0c;YashanDB正式发布长期支持版本YashanDB V23.2 LTS&#xff0c;标志着YashanDB单机主备、共享集群和分布式实时数仓等完整产品体系&#xff0c;已全面进入可规模化使用的长期支持阶段&#xff1b;同时配套数据迁移工具、监控运维工具和开发者工具&#xff0c;可以…

S32 Design Studio PE工具配置canCom

工具配置 基本就是默认配置就行&#xff0c;有需要的话就按照下面的方式改改。 生成代码 在Generated_Code/canCom1.c里面&#xff0c;对应刚才配置的信息。canCom1_InitConfig0是配置结构体&#xff0c;canCom1_State是初始化之后的状态结构体。 flexcan_state_t canCom1_S…

docker 虚拟化与docker的概念

一、云计算的三种服务模式 laas、pass、saas 1.1 IaaS: Infrastructure-as-a-Service&#xff08;基础设施即服务&#xff09; 第一层叫做IaaS&#xff0c;有时候也叫做Hardware-as-a-Service&#xff0c;几年前如果你想在办公室或者公司的网站上运行一些企业应用&#xff0c…

06:HAL----定时器

前言&#xff1a; 每来一个TIM 时钟CNT计数器就记一个数&#xff0c;记到某一个程度就会产生溢出。然后ARR就会装载到CNT计数器里面 一:TIM 1:介绍 TIM&#xff08;Timer&#xff09;定时器 定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断 16位计…

牛客周赛 Round 40(A,B,C,D,E,F)

比赛链接 官方讲解 这场简单&#xff0c;没考什么算法&#xff0c;感觉有点水。D是个分组01背包&#xff0c;01背包的一点小拓展&#xff0c;没写过的可以看看&#xff0c;这个分类以及这个题目本身都是很板的。E感觉就是排名放高了导致没人敢写&#xff0c;本质上是个找规律…

消费增值:革新你的消费体验,让每一分钱都更有价值

亲爱的顾客们&#xff0c;你们好&#xff01;今天&#xff0c;我想为大家介绍一种革新性的消费模式——消费增值&#xff0c;它赋予每一次购物以额外的价值&#xff0c;让消费过程变得更加丰富多彩。 过去&#xff0c;我们的消费观念往往是“一手交钱&#xff0c;一手交货”&am…

Pytorch:张量的梯度计算

目录 一、自动微分简单介绍1、基本原理2、梯度计算过程3、示例&#xff1a;基于 PyTorch 的自动微分a.示例详解b.梯度计算过程c.可视化计算图 4、总结 二、为什么要计算损失&#xff0c;为何权重更新是对的&#xff1f;1、梯度下降数学原理2、梯度上升 三、在模型中使用自动微分…

Hbuilder快捷键个人习惯修改

自定义修改 [// {"key":"ctrld","command":"editor.action.deleteLines"},// {"key":"ctrle","command":"editor.action.addSelectionToNextFindMatch"}//目录内查找字符串{"key"…

DC-DC电源设计中电感选型详解

电感参数: DC-DC 电感选型步骤: 1, 根据 DC-DC 的输入输出特性计算所需的最小电感量。 (1)对于 Buck 型 DC-DC,计算公式如下 Lmin= 【Vout*(1-Vout/Vinmax)】/ (Fsw*Irpp ) 其中: Vinmax = maximum input voltage Vout = output voltage fsw = switching frequency…

电路仿真,为何国产软件成首选?

随着科技的飞速发展&#xff0c;电路仿真技术在电子工程设计中的作用日益凸显。面对市场上琳琅满目的电路仿真软件&#xff0c;为何我们应该优先选择国产软件呢&#xff1f;本文将从多个方面为您深入解析。 一、国产软件的安全性保障 在当前国际形势下&#xff0c;信息安全尤为…

[2024更新]如何从Android恢复已删除的相机照片?

相信大家都经历过Android手机误删相机图片的经历。您是否正在寻找一种可行的方法来挽救这些丢失的照片&#xff1f;如果这是你迫切想解决的问题&#xff0c;那么这篇文章绝对可以帮助你。然而&#xff0c;与其考虑如何从Android恢复已删除的相机照片&#xff0c;我们更愿意建议…

【C++类和对象】日期类的实现

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计

文章目录 前言&#xff1a;IPv4报文协议格式二、IP_RX模块设计2.1、模块接口2.2、模块工作过程 三、IP_TX模块设计3.1、模块接口3.2、模块工作过程 四、仿真4.1、发送端4.2、接受端 前言&#xff1a;IPv4报文协议格式 参考&#xff1a;https://sunyunqiang.com/blog/ipv4_prot…