更新时间:2022-12-14 GMT+08:00

HetuEngine跨源功能使用指导

  1. 参考配置HetuEngine数据源,注册数据源。
  2. 如果是HBase数据源,还需创建结构化映射表。

    • 映射表建表语句格式:
      CREATE TABLE schemaName.tableName (
        rowId VARCHAR,
        qualifier1 TINYINT,
        qualifier2 SMALLINT,
        qualifier3 INTEGER,
        qualifier4 BIGINT,
        qualifier5 DOUBLE,
        qualifier6 BOOLEAN,
        qualifier7 TIME,
        qualifier8 DATE,
        qualifier9 TIMESTAMP
      )
      WITH (
      column_mapping = 'qualifier1:f1:q1,qualifier2:f1:q2,qualifier3:f2:q3,qualifier4:f2:q4,qualifier5:f2:q5,qualifier6:f3:q1,qualifier7:f3:q2,qualifier8:f3:q3,qualifier9:f3:q4',
      row_id = 'rowId',
      hbase_table_name = 'hbaseNamespace:hbaseTable',
      external = true
      );
      --注意: schemaName一定要与hbase_table_name中的hbaseNamespace一致,否则建表失败。
    • 映射表建表支持:直接关联HBase数据源中的表、创建并关联HBase数据源中不存在的新表的两种形式。
    • 映射表字段支持的数据类型包括:VARCHAR、TINYINT、SMALLINT、INTEGER、BIGINT、DOUBLE、BOOLEAN、TIME、DATE、TIMESTAMP。
    • 映射表建表语句关键字说明见下表。
      表1 映射表建表语句关键字说明

      关键字

      类型

      是否必填

      默认值

      备注

      column_mapping

      String

      所有的列在同一个Family列族下

      指定映射表中列与HBase数据源表中列族的映射关系。如果需要关联一张HBase数据源中的表,那么column_mapping必须与HBase数据源中的一致;如果创建一张HBase数据源中不存在的新表,olumn_mapping 由用户指定。

      row_id

      String

      映射表的第一列

      HBase数据源中表rowkey 对应的列名。

      hbase_table_name

      String

      指定需要关联的HBase数据源上的表空间和表名,用:连接。默认表空间为default。如果创建一张HBase数据源中不存在的新表,hbase_table_name不需要指定。

      external

      Boolean

      true

      如果external=true ,表示该表为HBase数据源中表的一个映射表,不支持删除HBase数据源上的原始表;如果external=false,则删除Hetu-HBase表的同时,会删除HBase数据源上的表。

  3. 使用跨源协同分析。

    // 1. 注册Hive、ElasticSearch、GaussDB A等3种数据源
    hetuengine> show catalogs;
      Catalog  
    ----------  
    dws        
    es          
    hive         
    hive_dg
    system       
    systemremote 
    (6 rows)
    
    // 2. 编写SQL进行跨源协同分析
    select * from hive_dg.schema1.table1 t1 join es.schema3.table3 t2 join dws.schema02.table4 t3 on t1.name = t2.item and t2.id = t3.cardNo;