SinoDB数据库导入导出工具External table

news2024/12/23 22:23:44

        External table又叫SinoDB外部表,外部表采用多线程机制,支持多线程读取、写入数据文件以及多线程数据转换、插入操作。多线程机制只需要消耗相对较少的系统资源,但是能提供高速数据导入、导出,可以应用在数据采集、表重建、数据库迁移等业务场景中。

        对于一个普通表,SinoDB负责其数据存储管理,有相应的DBSPACE、Chunk、extent、page 等,可以创建相应的索引。然而,对于SinoDB的外部表而言,其数据文件由操作系统管理,简单来讲外部表就是一个或者多个文件,SinoDB数据库引擎提供对文件的 SQL 接口访问。文件的格式支持固定格式的文本文件,也支持SinoDB的内部二进制格式。

1.External table创建语法

 create external table table_name([column definition | sameas table_template])
using (
datafiles ('disk:/textfile'),
format 'delimited',
delimiter 'delimiter_string'
);

  • table_name:要创建的外部表名称。
  • table_template:可以指定一个模板,以该表的列定义创建一个外部表。
  • datafiles:指定外部表使用的数据文件。
  • format:指定文件采用的格式化方式。
  • delimiter:指定分隔符。

2. External table使用演示

示例1:创建外部表,定义字段信息,采用“.”作为分隔**

 

[informix@vm84145 data]$ cat exe_data.unl
1.1.Bill.01\.06\.1983.
2.1.John.25\.12\.1985.
3.2.Mary.10\.10\.1987.
4.3.Kate.11\.11\.1989.
5.1.Will Smith.28\.02\.1981.
[informix@vm84145 data]$ export GL_DATE="%d.%m.%iY"
[informix@vm84145 data]$ cat exeternal.sql
-- export GL_DATE="%d.%m.%iY"
create external table t_ext_table(f_employeeid int, f_deptid int, f_employeename varchar(20), f_birthdate date)
using(
datafiles ('disk:/home/informix/data/exe_data.unl'),
format 'delimited',
delimiter '.'
);

select * from t_ext_table;
[informix@vm84145 data]$ dbaccess testdb exeternal.sql

Database selected.

Table created.

f_employeeid    f_deptid f_employeename       f_birthdate

           1           1 Bill                 01.06.1983
           2           1 John                 25.12.1985
           3           2 Mary                 10.10.1987
           4           3 Kate                 11.11.1989
           5           1 Will Smith           28.02.1981

5 row(s) retrieved.

Database closed.

[informix@vm84145 data]$

 示例2:采用sameas快速定义表字段信息,字段定义与已有表一致:

 

[informix@vm84145 daqi]$ ll
total 121196
-rw-rw-r-- 1 informix informix       209 Jul 10 10:23 fjta_news1_ext.sql
-rw-rw-r-- 1 informix informix   1756664 Jul 10 10:21 fjta_news1.unl1
-rw-rw-r-- 1 informix informix    811624 Jul 10 10:26 fjta_news1.unl2
[informix@vm84145 daqi]$ cat fjta_news1_ext.sql
create external table fjta_news1_ext sameas fjta_news1
using(
datafiles('disk:/home/informix/daqi/fjta_news1.unl1',
          'disk:/home/informix/daqi/fjta_news1.unl2'),
format 'delimited',
delimiter '|'
);
[informix@vm84145 daqi]$ dbaccess testdb3 fjta_news1_ext.sql

Database selected.

Table created.

Database closed.
[informix@vm84145 daqi]$ echo "select count(1) from fjta_news1_ext;" |dbaccess testdb3;

Database selected.

         (count)

           15000

1 row(s) retrieved.

Database closed.

 示例3:使用模式正则表达式定义多个文件。

 jta_news1%r(1…4).unl定义了4个文件,如:fjta_news11.unl、fjta_news12.unl、fjta_news13.unl、fjta_news14.unl:

 create external table fjta_news1_ext sameas fjta_news1
using(
datafiles('disk:/home/informix/daqi/fjta_news1%r(1..4).unl'),
format 'delimited',
delimiter '|'
);

 示例4:重建大数据量表

[informix@vm84145 daqi]$ cat new_fjta_news1_ext.sql
create external table new_fjta_news1_ext sameas fjta_news1
using(
datafiles('disk:/home/informix/daqi/new_fjta_news1%r(1..4).unl'),
format 'delimited',
delimiter '|'
);
[informix@vm84145 daqi]$ dbaccess testdb3 new_fjta_news1_ext.sql

Database selected.

Table created.

Database closed.
[informix@vm84145 daqi]$ dbaccess testdb3 -

Database selected.

> set pdqpriority 90;

PDQ Priority set.

> set isolation dirty read;

Isolation level set.

> set environment IFX_BATCHEDREAD_TABLE '1';

Environment set.

> insert into new_fjta_news1_ext select * from fjta_news1;

15819 row(s) inserted.

> set pdqpriority 0;

PDQ Priority set.

[informix@vm84145 daqi]$ ll new*
-rw-rw-rw- 1 informix informix 679391 Jul 10 11:12 new_fjta_news11.unl
-rw-rw-rw- 1 informix informix 725839 Jul 10 11:12 new_fjta_news12.unl
-rw-rw-rw- 1 informix informix 679529 Jul 10 11:12 new_fjta_news13.unl
-rw-rw-rw- 1 informix informix 630876 Jul 10 11:12 new_fjta_news14.unl

[informix@vm84145 daqi]$ cat raw_fjta_news1.sql
create raw table raw_fjta_news1
  (
    id serial ,
    title varchar(100)
        default '' ,
    seo_title varchar(50) ,
    seo_keyword varchar(50) ,
    seo_description varchar(100) ,
    zone_id integer
        default 0 ,
    cat_id integer
        default 0 ,
    source varchar(100)
        default '',
    tag varchar(200)
        default '',
    img_source varchar(100)
        default '',
    is_audit smallint
        default 0 ,
    is_recommend smallint
        default 0 ,
    is_top smallint
        default 0 ,
    add_time integer
        default 0 ,
    number_hits integer
        default 0 ,
    is_home smallint
        default 0 ,
    person_thumb varchar(255) ,
    person_name varchar(100) ,
    person_desc lvarchar(512)
  ) extent size 256 next size 64 lock mode row;

[informix@vm84145 daqi]$ dbaccess testdb3 raw_fjta_news1.sql

Database selected.

Table created.

Database closed.

[informix@vm84145 daqi]$ dbaccess testdb3 -

Database selected.

> set pdqpriority 90;

PDQ Priority set.

> insert into raw_fjta_news1 select * from new_fjta_news1_ext;

15819 row(s) inserted.

> drop table fjta_news1;

Table dropped.

> rename table raw_fjta_news1 to fjta_news1;

Table renamed.

> create index idx_fjta_news1 on fjta_news1(id);

Index created.

> alter table fjta_news1 type(standard);

Table altered.

> set pdqpriority 0;

PDQ Priority set.

 

3. External table使用注意点

  • 以下设置可以提高外部表导入导出性能:

     把大数据文件切分为多个相对较小的文件
     开启PDQ,set pdqpriority=90;
     导出数据时,启用light scan,此时需要设置足够大的虚拟内存段;
     导入数据时采用raw table;
     导入数据时DISABLE约束和索引;

  • ontape/onbar不能备份外部表,需要手工单独进行备份;

  • 外部表不能进行update statistics;

  • 在少量数据的情况下推荐直接使用unload/load,在大数据量表的情况下推荐使用外部表;

     更多信息内容请移步星瑞格官方社区,期待大家加入
    Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.icon-default.png?t=N7T8https://forum.sinoregal.cn/

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

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

相关文章

04-xss获取cookie实验

二、开发XSS服务器端 1、确认实验环境 攻击者服务器:192.168.74.134,将获取到cookie数据保存到该服务器的数据库中,运行PHP代码暴露一个接收Cookie的URL地址。 正常Web服务器:192.168.74.133,用于正常的用户访问的目…

java编程中,实现分页对象的类型转换

一、背景 当数据库分页查询返回的对象与接口要返回的对象类型不一致时&#xff0c;不可避免需要进行类型转换。 示例&#xff1a;数据库分页查询返回的对象是PageDTO&#xff0c;而接口返回的对象类型是PageVO。 PageDTO Data public class PageDTO<T> {/*** Current…

Android 巧用putBinder方法传递大文件

使用Intent传递数据大家都知道&#xff0c;但是如果你使用Intent传递大于1Mb的数据时&#xff0c;就一定会报如下的错误&#xff1a; Caused by: android.os.TransactionTooLargeException: data parcel size 1049112 bytes 就是说你的传输数据太大了&#xff0c;当前的大小达…

【C++】滑动窗口:将x减到0的最小操作数

1.题目 2.算法思路 这个题目难在要转化一下才能用滑动窗口。 题意是需要在数组的前后两段区间进行解题&#xff0c;但同时对两段区间进行操作是比较困难的&#xff0c;我们可以将中间这段区间只和与nums_sum-x&#xff08;数组总和-x&#xff09;进行比较&#xff0c;这样就可…

数据库(MySQL)—— DML语句

数据库&#xff08;MySQL&#xff09;—— DML语句 什么是DML语句添加数据给全部字段添加数据批量添加数据 修改数据删除数据 什么是DML语句 在MySQL中&#xff0c;DML&#xff08;Data Manipulation Language&#xff0c;数据操纵语言&#xff09;语句主要用于对数据库中的数…

Django 4.x 智能分页get_elided_page_range

Django智能分页 分页效果 第1页的效果 第10页的效果 带输入框的效果 主要函数 # 参数解释 # number: 当前页码&#xff0c;默认&#xff1a;1 # on_each_side&#xff1a;当前页码前后显示几页&#xff0c;默认&#xff1a;3 # on_ends&#xff1a;首尾固定显示几页&#…

观测云 VS ELK:谁是日志监控的王者?

前言 作为 IT 信息系统运行状态感知和故障分析的重要手段&#xff0c;日志在行业兴起之初便为运维和开发环节所广泛应用。当应用和系统发生故障或出现问题时&#xff0c;日志数据成为了排查和诊断问题的重要依据。通过分析日志&#xff0c;开发人员和运维人员可以了解系统的运…

麦肯锡精英高效阅读法笔记

系列文章目录 如何有效阅读一本书笔记 读懂一本书笔记 麦肯锡精英高效阅读法笔记 文章目录 系列文章目录序章 无法读书的5个理由无法读书的理由① 忙于工作&#xff0c;没时间读书无法读书的理由② 不知应该读什么无法读书的理由③ 没读完的书不断增多无法读书的理由④ 工作繁…

论文复现和点评《基于随机森林模型的个人信用风险评估研究》

作者Toby&#xff0c;来源公众号&#xff1a;Python风控模型&#xff0c;论文复现和点评《基于随机森林模型的个人信用风险评估研究》 最近Toby老师看到一篇论文热度比较高&#xff0c;下载量有665次&#xff0c;论文标题是《基于随机森林模型的 个人信用风险评估研究》 论文篇…

C++ | Date 日期类详解

目录 简介 日期类总代码 | Date 类的定义 & 构造 & Print 类的定义 构造函数 & Print 比较类&#xff0c;如<、>、<...... 值加减类&#xff0c;如、-、、-...... 加减类具体分类 判断某个月有多少天 GetMonthDay 日期类 / &#xff08;- / -&…

运行一个jar包

目录 传送门前言一、Window环境二、Linux环境1、第一步&#xff1a;环境配置好&#xff0c;安装好jdk2、第二步&#xff1a;打包jar包并上传到Linux服务器3、第三步&#xff1a;运行jar包 三、docker环境1、Linux下安装docker和docker compose2、Dockerfile方式一运行jar包2.1、…

光伏SRM供应商管理解决方案

供应商管理是光伏企业中重要的一环&#xff0c;通过SRM管理供应商&#xff0c;可以提高产品质量&#xff0c;降低采购成本&#xff0c;并集成供应链&#xff0c;提高核心竞争力。 一、搭建管理系统 分为供应商和商户&#xff0c;供应商需要完善基本信息、类别、等级、产品概要…

二叉树详细介绍与代码生成遍历

目录 树的概念及其结构树的构造——代码表示 二叉树概念及介绍二叉树的存储结构二叉树的顺序结构二叉树的链式结构链表的代码展示堆的基本概念和结构堆的代码体现二叉树生成二叉树遍历 四种不同遍历方式——代码展示 树的概念及其结构 要了解二叉树&#xff0c;那么首要的就是…

Linux系统编程 —— 进程概念,环境变量,虚拟地址空间总结(收藏向)

目录 一&#xff0c;什么是进程&#xff0c;有什么用&#xff1f; 1.1 关于进程 1.2 进程的重要特性 二&#xff0c;进程的描述&#xff1a;PCB结构体 2.1 关于PCB 2.2 task_struct 三&#xff0c;进程pid与ppid 3.1 pid是什么&#xff1f;怎么查看&#xff1f; 3.2 系…

51单片机入门:蜂鸣器

蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常用来产生设备的按键音、报警音等提示信号。 蜂鸣器的种类 1、从结构上&#xff1a;压电式蜂鸣器和电磁式蜂鸣器。 压电式蜂鸣器&#xff1a;通过压电陶瓷的压电效应原理工作的。当加有交变电压时&#xf…

AMEYA360详解:蔡司利用纳米探针技术探索半导体微观电学性能

半导体器件尺寸不断缩小和复杂度增加&#xff0c;纳米探针(Nanoprobing)技术成为解决微观电学问题和优化器件性能的重要工具&#xff0c;成为半导体失效分析流程中越来越重要的一环。 随着功率半导体的快速发展&#xff0c;其厂商也开始密切关注纳米探针技术在PN结特性分析和掺…

什么是光伏发电?什么是分布式光伏系统?

一、光伏发电 光伏发电&#xff0c;作为一种可再生能源利用技术&#xff0c;其核心原理基于半导体的光生伏特效应。简而言之&#xff0c;光伏发电就是将太阳能直接转换为电能的过程。它由三个主要部分组成&#xff1a;太阳电池板&#xff08;组件&#xff09;、控制器和逆变器…

LMdeploy推理实践

在inter-studio平台上&#xff0c;下载模型&#xff0c;体验lmdeploy 下载模型 这里是因为平台上已经有了internlm2模型&#xff0c;所以建立一个符号链接指向它&#xff0c;没有重新下载 ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b /root/如…

TC8002D 是一颗带关断模式的音频功放IC

一、一般概述 TC8002D是一颗带关断模式的音频功放IC。在5V输入电压下工作时&#xff0c;负载(3Ω)上的平均功率 为3 W&#xff0c;且失真度不超过10%。而对于手提设备而言&#xff0c;当VDD作用于关断端时&#xff0c;TC8002D将会进入关断模式&#xff0c;此时的功耗极…

【UE】利用物理学放置模型(以堆积石块为例)

目录 效果 步骤 一、准备工作 二、设置石块碰撞 三、绘制石块 效果 步骤 一、准备工作 1. 在虚幻商城中安装“Physical Layout Tool”插件 2. 在虚幻编辑器中勾选插件“Physical Layout”插件 3. 在Quixel Bridge中将我们所需要的石块资产添加到项目中 这里我们导入…