更新时间:2024-11-29 GMT+08:00

使用HetuEngine跨域功能

HetuEngine跨域功能简介

HetuEngine提供统一标准SQL对分布于多个地域(或数据中心)的多种数据源实现高效访问,屏蔽数据在结构、存储及地域上的差异,实现数据与应用的解耦。
图1 HetuEngine跨域功能示意

关键技术和优势

  • 无单点瓶颈:HSFabric可进行水平扩展,多通道并行传输,速率最大化,跨地域延迟不再成为瓶颈。
  • 更好地计算资源利用:将数据压缩,序列化的任务下推到Worker并行计算。
  • 高效序列化:优化数据序列化格式,同等数据量级下,更低的数据传输量。
  • 流式传输:基于HTTP 2.0 stream, 保证HTTP协议通用性的同时,减少大量数据传输中RPC 重复调用。
  • 断点续传:防止数据传输过程中连接异常断开后重传大量数据。
  • 流量管控:支持按地区限制数据传输所占用的网络带宽,避免在跨地域有限带宽场景下因流量独占而影响其他业务的正常使用。

跨域功能使用指导

前提条件:

  • 确保本端和远端集群的数据节点上分别部署至少一个HSFabric实例。
  • 确保本端和远端集群的HSFabric实例所在节点的网络互通。

操作步骤:

  1. 开放本域数据源。通过创建Virtual Schema方式来对远端访问请求屏蔽本域的物理数据源的真实Schema信息、实例信息,远端使用Virtual Schema名称即可访问本域对应的数据源。

    CREATE VIRTUAL SCHEMA hive01.vschema01 WITH (
      catalog = 'hive01',
      schema = 'ins1'
    );

  2. 参考配置HetuEngine数据源,在远端HetuEngine上注册“HetuEngine”类型数据源,添加本域HetuEngine
  3. 使用跨域协同分析。

    // 1. 在远端HetuEngine上开放hive1.ins2数据源
    CREATE VIRTUAL SCHEMA hive1.vins2 WITH (
      catalog = 'hive1',
      schema = 'ins2'
    );
    
    // 2. 在本域HetuEngine上注册Hive、GaussDB A、HetuEngine等3种数据源
    hetuengine> show catalogs;
      Catalog  
    ----------  
    dws        
    hetuengine_dc          
    hive         
    hive_dg
    system       
    systemremote 
    (6 rows)
    
    // 3. 在本域HetuEngine上进行跨源协同分析
    select * from hive_dg.schema1.table1 t1 join hetuengine_dc.vins2.table3 t2 join dws.schema02.table4 t3 on t1.name = t2.item and t2.id = t3.cardNo;