GBase8s分片表操作实践

简介: GBase8s分片表操作实践

Gbase8s 的分片是用来处理数据量非常大的表和索引的技术。分片可以用将大表拆分为小表的方式进行管理,大大提高了gbase8s的大数据处理性能。

“表分片”技术与并行数据查询(PDQ)特征联系在一起使用,这样GBase 8s服务器 可以分配多条线索。从所有数据分片上并行地选取数据。此外,还可以仅仅对包含“目标数据”的数据分片进行扫描。从而大幅度地提高了整个系统效率。


  • 分片是指把一个表的数据分散到多个dbspace中存储。
  • 在逻辑上对外提供一个表的访问接口。
  • 在数据库内部,物理上把大表拆分为多个小表进行管理。


两种分片方法


轮转法


“轮转法分片”这个存放方法采用轮询调度,依次在dbspaces上存储数据库。

特点:

  • 简单,不需要了解数据的分布
  • 把数据均匀地分配到所有分片中
  • 提高查询性能
  • 只能用于表,不能用于索引
  • 不能用于分片忽略以增加性能
    eg:
create table tab_round_robin
(
  id int,
  name varchar(40),
  nation varchar(40),  
  regtime datetime year to second default current year to second not null
) fragment by round robin 
  in datadbs1,datadbs2,datadbs3,datadbs4;

显示的指定索引

create index ix_tab_round_robin_id on tab_round_robin(id) in datadbs1;


基于表达式分片


“基于表达式分片”则根据表中的 一个或多个字段对分片的规则进行定义,一般在预知查询条件时采用这种方式,从而避免查询中对某些分片的扫描。

特点:

  • 需要对数据分布有所了解
  • 为分片忽略和性能提升提供可能
  • 既可以用于表也可以用于索引
  • 可以基于一列或者多列构建表达式
create table tab_expression_based
(
  id int,
  name varchar(40),
  nation varchar(40),  
  regtime datetime year to second default current year to second not null
) fragment by expression 
id < 100 in datadbs1,
id < 200 in datadbs2,
id < 300 in datadbs3,
REMAINDER in datadbs4;


增加dbspaces空间


创建新数据库空间,使用onspaces命令。

onspaces -c -d <dbs_name> -k <page_size(kb)> -p <file_name> -o <offset> -s <file_size(kb)>

以下例子为创建一个临时 dbspace,名为 tempdbs1,大小为 500000,使用裸设备/dev/rdsk/device9,偏移量为 100000:

 onspaces -c -t -d tempdbs -p /dev/rdsk/device9 -o 100000 -s 500000  

1.png


查看空间大小


使用命令onstat -d 查看数据库空间信息。

2.png

number    为表空间唯一标示号
pagesize  数据库空间的页大小
flag 列信息:
Position 1: M 镜像
    N 未镜像
Position 2: X 新镜像
    D Down,不可用chunk
    P 物理恢复完成,等待逻辑恢复
    L 正在逻辑恢复
    R 正在恢复
Position 3: B BLOB空间
    P 物理日志空间
    S 智能大对象空间
    T 临时空间
    U 临时智能大对象空间
    W SDS主节点的临时空间,只在SDS备节点显示
Position 4: B 空间可包含大于2G的chunk
Position 5: A 空间自动扩展

每个数据库空间有一个Chunk文件。Chunk输出信息中有size信息,这个信息是Chunk的页的数据,不是文件的字节大小。要得到Chunk的文件字节大小,需要用这个size乘以Chunk文件对应的数据库空间的pgsize。


查看空间剩余大小

剩余大小就是chunk输出信息中free数据乘以Chunk文件对应的数据库空间的pgsize。


相关文章
|
8月前
|
分布式计算 资源调度 Hadoop
HBase表数据的读、写操作与综合操作
HBase表数据的读、写操作与综合操作
107 0
|
8月前
|
机器学习/深度学习 分布式计算 Hadoop
一种HBase表数据迁移方法的优化
一种HBase表数据迁移方法的优化
99 0
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
6月前
|
存储 运维 关系型数据库
PolarDB产品使用问题之在删除主节点上的表后尝试查询归档表遇到问题,该如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
SQL
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
|
7月前
|
SQL 关系型数据库 Java
有大批量的数据导入到数据库,规则是数据库有相应主键的就update没有就insert怎么做效率快
有大批量的数据导入到数据库,规则是数据库有相应主键的就update没有就insert怎么做效率快
123 1
|
7月前
|
SQL 关系型数据库 Serverless
PolarDB产品使用问题之分区表中,一般建议多少条记录创建一个分区
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
7月前
|
分布式计算 大数据 关系型数据库
MaxCompute产品使用问题之mysql读取从mc里的每10分钟计算好的结果数据表,如何同步数据过去
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
8月前
|
SQL 缓存 中间件
数据库为什么都设计为单表
数据库为什么都设计为单表
79 0
|
SQL 缓存
18MyCat - 分片join(全局表)
18MyCat - 分片join(全局表)
48 0