gbase 导出_使用GBase 8t外部表进行高速数据导入导出
什么是外部表
在GBase 8t中,支持创建一种不受数据库服务器管理的数据表,表的数据来源于格式化的数据文件,数据库使用FIFO VP以Nonblocking的方式来操作表中的数据,因此可以实现高速的数据导入导出。
创建外部表
外部表可以采用以下三种方法创建:
1.使用带有列指定的 CREATE EXTERNAL TABLE 语句
CREATE EXTERNAL TABLE et_state
(code CHAR(2),sname CHAR(15))
USING (DATAFILES ("DISK:/data/NA_states.unl", "DISK:/data/SA_states.unl"));
2.使用带有一个 SAMEAS 子句的 CREATE EXTERNAL TABLE
CREATE EXTERNAL TABLE et_state SAMEAS state
USING (DATAFILES ("DISK:/data/states.unl"));
3.使用 SELECT 语句从一个数据源选择构成外部表的数据
SELECT *
FROM state
INTO EXTERNAL et_state
USING (DATAFILES("DISK:/data/states.unl"));
使用外部表进行数据导入
下面是一个数据加载的例子:
欲加载的表结构如下:
create table warehouse
(
w_id smallint not null ,
w_ytd decimal(12,2),
w_tax decimal(4,4),
w_name char(10),
w_street_1 char(20),
w_street_2 char(20),
w_city char(20),
w_state char(2),
w_zip char(9)
) ;
create unique index idx_warehouse on warehouse(w_id);
数据文件路径为/home/informix/data/warehouse.unl,使用外部表进行数据加载时要保证每行数据末尾都要有一个分隔符,否则会报错,这与使用load进行数据导入时不同。
如下为数据导入步骤,
1,创建表warehouse,不创建表warehouse上的索引
2,创建外部表warehouse_ext
drop table if exists warehouse_ext;
create external table warehouse_ext sameas warehouse
using
(datafiles("DISK:/home/informix/data/warehouse.unl"),
format "delimited",
DELIMITER "|",
rejectfile "/home/informix/data/warehouse.err",
maxerrors 10000
);
3,手工做一个检查点
使用使用onmode -c将表结构刷会磁盘,否则在数据加载过程中会先写物理日志,影响数据加载的速度。
4,修改表warehouse为裸表
这样才能使用到Informix中的Light Append,加快数据导入的速度
alter table warehouse type(raw);
5,打开PDQ,进行数据导入,并创建表上的索引
set pdqpriority 100;
insert into warehouse select * from warehouse_ext;
alter table warehouse type(standard);
create unique index idx_warehouse on warehouse(w_id);
数据导入导出监控
可以使用onstat使用来查看数据的导入导出速度
查看数据导入进度:
[informix@centos7 ~]$ onstat -g lap
GBase 8t V8.5 Server Version 12.10.FC4G1AEE -- On-Line -- Up 00:01:06 -- 2394568 Kbytes
Light Append Info
session id address cur_ppage la_npused la_ndata la_nrows bufcnt
la_nrows为当前导入的记录数
查看数据导出进度:
[informix@centos7 ~]$ onstat -g scn
GBase 8t Database Server Version 12.10.FC4G1AEE -- On-Line -- Up 02:09:24 -- 1385528 Kbytes
Light Scan Info
descriptor address next_lpage next_ppage ppage_left bufcnt look_aside
RSAM batch sequential scan info
SesID Thread Partnum Rowid Rows Scan'd Scan Type Lock Mode Notes
" 88 167 50013c 3041907 1185648 Light +Test Forward row lookup,Must copy,"
RSAM batch index scan info
SesID Thread Partnum Scan Type Lock Mode Notes
Rows Scan 为当前导出的记录数
注意事项
在使用外部表进行数据加载的时候有两点需要注意,
使用Light Append加快数据导入的速度,与light scan不同的是,我们没有办法强制启用light append,而只能在同时满足如下2个特定条件的情况下,数据库优化器将自动启用。
Ø Raw table 即对表的操作取消日志
create raw table…,或者通过alter table tabname type(raw);来创建或者修改为rawtable。对临时表with no log情况也有效。
Ø No Index 表没有任何索引
在创建完外部表后需要手工做一个检查点的操作,否则会将数据先写入物理日志,再往dbspace上写。我们可以使用onstat -D监控数据读写情况,使用外部表进行数据加载时,是不会写物理日志或只有少量的物理日志读写,如没有手工做检查点,则会看到有大量的物理日志读写,这一步完全是可跳过的。
使用外部表进行数据导出
使用外部表进行数据导出时大体的步骤与上面的相同,只是在进行数据导出时需要打开轻量扫描的开关
set environment IFX_BATCHEDREAD_TABLE '1';
gbase 导出_使用GBase 8t外部表进行高速数据导入导出相关推荐
- hive:建库建表、表分区、内部表外部表、数据导入导出
hive建库建表与数据导入 建库 hive中有一个默认的库: 库名: default 库目录:hdfs://hdp20-01:9000/user/hive/warehouse 新建库: create ...
- 达梦数据库代码导出_达梦数据库常见问题-命令行工具-导入导出工具
1.导入dmp文件出现各种初始化参数不一致的警告 (页大小不匹配,restore error code:-8210:CASE_SENSIVE参数不匹配.大小写参数不一致,大小写区分属性不匹配,rest ...
- mysql 分区 导出_mysql普通表变成分区表导入导出
环境:tidb.linux 1.先确认主键.创建分区表(用于代替原表) SELECT column_name FROM INFORMATION_SCHEMA.`KEY_COLUMN_USAGE` WH ...
- linux上oracle导入mysql_linux下的oracle数据库和表空间的导入导出
由于oracle是安装在linux上面,因此需要oracle的导入导出都是使用命令进行操作.oracle允许整个数据库导入导出和表空间的导入导出. 数据库导入导出 以下操作是在操作系统控制台命令中执行 ...
- 带你实现java根据表结构动态导入导出Excel
你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,欢迎指教: 企鹅:869192208 前言 最近在甲方爸爸的要(威)求(逼)下,项目经理带来了客户的全新需求,希望能够在原有编辑 ...
- 利用外部命令Oralce数据库导入导出
1--数据库导出(exp) 首先进入命令行 导出数据库 在命令行中输入如下命令: exp c2j/c2j@c2j file=c:/table.dmp tables=jbitaku,jbitakum ...
- Oracle创建用户、表空间、导入导出、...命令
//创建临时表空间 create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\testserve ...
- Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
说明: 在创建数据库时输入的密码,是修改系统默认的密码,以system和sysman等系统默认身份登录时要输入的密码就是修改后的密码(创建数据库时输入的密码) 如果要创建新的用户就必须以system或 ...
- hibernate mysql 映射_hibernate与mysql映射类型对应表与mysql导入导出
http://blog.sina.com.cn/s/blog_5f240fc40100etlt.html 一.记录下hibernate mysql映射类型对应表: 1.常规Hibernate 映射 i ...
最新文章
- Java虚拟机类加载机制
- 第二章 栈和队列(1)——顺序存储
- Nginx与Zuul之间区别
- 零基础学习java------day11------常用API
- 【原创】STM32工程新建步骤
- Qt实践录:非窗体代码片段
- Qt5学习笔记之bin文件合成工具三:偏移量数据填充
- Dijkstra 路径规划 C#
- docker如何配置阿里云加速器
- 笔记 黑马程序员C++教程从0到1入门编程——核心编程
- 【对讲机的那点事】带你玩转摩托罗拉GP328对讲机读写频
- 【转】上大数学系博士点
- PMP子过程定义总结
- 机械革命 无界16pro闪屏
- 用计算机过去机读卡,阅卷机读卡机答题卡使用流程
- 教外谈(3):C/C++实现本地搜索引擎
- 微信小程序盲盒系统源码 附带教程
- 大数据可视化设计开发方案调研
- mysql 列转行union all_sql:mysql:列转行(转为多个字段)
- 基于机器学习的古代汉语自动分词标注算法及语料库研究