每天5分钟,带你了解GBase8a(7)——GBase8a的数据导入导出

今天咱们来聊一聊GBase8a的数据导入导出。


GBase8a是数据仓库产品,其本身并不产生数据,它的数据来源于前端的各业务系统,GBase8a需要将这些业务数据汇聚入库后才能进行下一步的数据分析和挖掘,这就需要用到数据导入功能(也可以叫“数据加载”),数据加载是将用户从其他数据源获得的原始数据文件,按照某种加载规则分发至集群的数据节点,集群各数据节点接收数据并入库保存到本地磁盘的过程。可以说,数据仓库一半的工作都是在进行数据加载,而数据加载的性能直接关乎到数据仓库的运行效率。


GBase8a的数据加载分两个阶段,第一阶段,由gcluster接收客户端发起的数据加载请求,进行SQL解析后,协调集群的各gnode进程,将数据源区域的数据文件按一定的大小分段,并行得复制到各gnode节点,第二阶段,各gnode节点对切段的数据进行Hash散列计算,将散列计算后数据互相分发到集群的各gnode节点,各节点调用本地的加载进程接收数据并执行入库保存到本地磁盘。具体过程如下图所示:


基于上述的工作模式,GBase8a的数据加载的过程类似于linux的scp,其速度可以近似达到数据源网络带宽的极限,在一个万兆互联的网络中,GBase8a的每小时可以加载超过3TB数据。数据导出的过程是数据导入(数据加载)过程的逆向过程,这里就不再赘述。

GBase8a的数据加载特性:

  1. 支持单表多数据源并行加载,支持多加载机对单表的并行加载,最大化提升加载性能;
  2. 支持从通用数据服务器拉取数据,支持ftp/http/hdfs/Kafka/sftp/https 等多种文件传输协议;
  3. 支持普通文本、gzip 压缩、snappy 压缩、lzo 压缩等多种格式数据文件;
  4. 支持普通文本、定长文本、宽松模式的加载;
  5. 支持错误数据溯源功能,可以准确定位错误数据在源文件中的位置;
  6. 加载性能可以随着集群规模的扩展而持续提升。

具体的命令示例如下:

1、导入数据
load data infile 'file://IP/路径/文件名(可以用*)' into table <table_name> fields terminated by '\t';
load data infile 'ftp://<用户名>:<密码>@IP/路径/文件名(可以用*)' into table <table_name> fields terminated by '\t';
load data infile 'sftp://<用户名>:<密码>@IP/路径/文件名(可以用*)' into table <table_name> fields terminated by '\t';
load data infile 'http://IP/路径/文件名(可以用*)' into table <table_name> fields terminated by '\t';

2、导出数据
rmt:select * from <table_name> into outfile '<路径/file_name>';

GBase8a还有哪些技术特性呢?且听我下回分解。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值