db2 删除存储过程_对象存储与HashData多云战略

7b3c147b7c0261dcce676322a37b963f.png

|多云架构的应运而生

今天,随着企业数字化进程的推进,多云成为了企业IT基础设施建设的重要特点。多云战略的实施,帮助企业降低了成本,提高了服务效率及安全性。特别是全球性跨国公司,不仅需要业务集中化管理,同时需要满足不同地域的业务运营和监管需求。相比于 AWS、Azure、谷歌云等公有云上的云原生数据仓库,HashData 通过支持多种对象存储,能够提供完全兼容多个公有云与混合云的数据管理能力。

|对象存储的优势

以Amazon S3为例,如下表格从多个维度将对象存储与Hadoop 体系架构中的HDFS进行比较:

3b5fc6c4886e4614cdc7c24a0e10bdee.png

我们可以看到,相对于传统的HDFS分布式存储,以S3为代表的对象存储服务不仅具备弹性能力,同时在可用性与持久性上也提高了约一个数量级,而成本却只有前者的十分之一。由此可见,在云计算时代,对象存储已经全面超越HDFS,成为未来大数据的基础。

此外,对象存储的访问方式是基于HTTP协议的,能够无缝与各种Web应用和工具集成,并应用于广域网,从而实现跨数据中心、跨云平台的数据访问,使多云架构、跨云数据共享成为可能。

|HashData支持多种对象存储

在主流的数据库系统(包括Oracle、DB2、PostgreSQL等)术语中,都有一个叫表空间(Tablespace)的概念。表空间是数据库系统中,数据库逻辑结构和文件系统物理结构之间建立映射的重要存储结构,它作为数据库与实际存储数据的物理存储设备之间的中间层,用来指明数据库中数据存放的物理位置。任何表的创建都必须显式或隐式地为其指定表空间,且数据库中的所有数据均位于表空间中。

继承于PostgreSQL的表空间,HashData 云数据仓库创新性地在传统的表空间与对象存储中的存储桶(Bucket) 之间建立映射关系,通过不同的表空间无缝对接多个跨平台、跨地域的对象存储系统,从而实现在一个集群中访问不同平台、不同类型、不同地域的对象存储系统,使得应用可以根据数据重要性、访问地域等因素选择性地将不同数据放在不同的对象存储系统中。

|产品架构

下面,我们以数据加载为例,比较一下传统ETL架构图(基于Greenplum Database)与HashData基础架构对比图:

b6a97327044f3e3ca6d4c1c7ab88a74d.png

HashData 数据库ETL架构(上图右)相对于传统的数据库ETL架构(上图左)不需要额外的ETL服务器支持以及配置复杂的ETL过程。我们只需要将原始数据文件上传到对象存储上,然后在数据库中创建指向这些数据文件的外部表,便可以使用 OSS 协议,通过segment 进行并行的数据导入,并将经过格式转化、编码压缩的数据(方便后续的高效访问)重新落回到对象存储中,完成ETL过程。

|如何进行应用实践

以某网省数据迁移为例,原本应用的商业版对象存储,在自建对象存储团队后,用自研对象存储替换商业版对象存储,总数据量约为2PB,存储半年数据,应用方案如下:

1. 在原有HashData集群中创建新的表空间,指向新对象存储;

2. 在新的表空间中创建表结构跟原表一样的空表;

3. 从原表中扫描出来数据插入到新表中,完成数据从一个对象存储到另一个对象存储的迁移;

实践中,以下为整个方案的核心过程模拟,通过HashData 集群将数据从一个Bucket(代表旧的对象存储)迁移到另一个Bucket(代表新的对象存储)下面,使用的对象存储是青云QingCloud的对象存储服务QingStor:

1.创建一张 AO 表,使用默认表空间。

  1. ---查看默认表空间
  2. warehouse=# select spcname,spcufspath from pg_tablespace;
  3. spcname | spcufspath
  4. ----------------+---------------------------------------
  5. pg_default |
  6. pg_global |
  7. dfs_tablespace | qingstor://warehouse-b61d5bc8/default
  8. (3 rows)
  9. ---使用默认表空间创建AO表
  10. create table zz_hashdata(id int)with(appendonly=true)distributed randomly;
  11. ---插入测试数据
  12. warehouse=# insert into zz_hashdata select 6 from generate_series(1,10);
  13. INSERT 0 10

2. 使用新的Bucket创建第二个表空间。

  1. ---使用新的 bucket 创建新的 TableSpace
  2. warehouse=# create tablespace ts1 filespace dfs_system ufspath='qingstor://zz-hashdata/'
  3. warehouse-# ufsinfo='access_key_id=AK-XXXXXXXXXXX secret_access_key=SK-XXXXXXXXXXXX region=pek3b';
  4. CREATE TABLESPACE

3. 创建第二张AO表,使用 2 创建的表空间。

  1. ---创建第二张表指向新的 TableSpace
  2. warehouse=# create table zz_hashdata1(id int)with(appendonly=true) tablespace ts1 distributed randomly;
  3. CREATE TABLE

4. 通过 insert into ... select 方式将数据导入第二张AO表中。

  1. ---从第一个表导出数据,导入到第二张表中
  2. warehouse=# insert into zz_hashdata1 select * from zz_hashdata;
  3. INSERT 0 10

5. 验证数据。

  1. ---验证数据
  2. warehouse=# select count(*) from zz_hashdata1;
  3. count
  4. -------
  5. 10
  6. (1 row)
  7. warehouse=# select * from zz_hashdata1 limit 5;
  8. id
  9. ----
  10. 6
  11. 6
  12. 6
  13. 6
  14. 6
  15. (5 rows)
  16. ---检查数据库当前的表空间情况
  17. warehouse=# select spcname,spcufspath from pg_tablespace;
  18. spcname | spcufspath
  19. ----------------+---------------------------------------
  20. pg_default |
  21. pg_global |
  22. dfs_tablespace | qingstor://warehouse-b61d5bc8/default
  23. ts1 | qingstor://zz-hashdata/
  24. (4 rows)

|小结

多云环境下,面对市场上多个公有云厂商(如AWS、阿里云、腾讯云等,它们提供各自的对象存储服务)及种类繁多的私有云解决方案(它们的对象存储大多基于开源的Ceph,Swift,Minio等),如何高效、安全且低成本地实施多云战略是每个CIO需要认真考虑的问题。自公司创立之初,我们就坚信对象存储将成为未来大数据的基础。作为公司旗舰产品,HashData 云数据仓库围绕着对象存储和抽象服务构建,通过将计算与存储解耦,支持多种对象存储,使跨云、跨数据中心的数据共享成为了可能,为企业多云战略的实施提供了一个灵活而易用的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值