HBase

    支持的版本

    为了设置 HBase Load 节点, 下面提供了使用构建自动化工具(例如 Maven 或 SBT)和带有 Sort Connector JAR 包的 SQL 客户端的两个项目的依赖关系信息。

    如何创建 HBase Load 节点

    所有 HBase 表的列簇必须定义为 ROW 类型,字段名对应列簇名(column family),嵌套的字段名对应列限定符名(column qualifier)。用户只需在表结构中 声明查询中使用的的列簇和列限定符。除了 ROW 类型的列,剩下的原子数据类型字段(比如,STRING, BIGINT)将被识别为 HBase 的 rowkey,一张表中只能声明一个 rowkey。rowkey 字段的名字可以是任意的,如果是保留关键字,需要用反引号。

    1. -- Flink SQL 中创建 HBase 'hbase_load_node'
    2. rowkey STRING,
    3. family1 ROW<q1 INT>,
    4. family2 ROW<q2 STRING, q3 BIGINT>,
    5. family3 ROW<q4 DOUBLE, q5 BOOLEAN, q6 STRING>,
    6. PRIMARY KEY (rowkey) NOT ENFORCED
    7. 'connector' = 'hbase-2.2',
    8. 'table-name' = 'mytable',
    9. 'zookeeper.quorum' = 'localhost:2181'
    10. );
    11. -- 假设表"T" schema [rowkey, f1q1, f2q2, f2q3, f3q4, f3q5, f3q6]
    12. INSERT INTO hTable
    13. -- HBase 表中扫描数据
    14. SELECT rowkey, family1, family3.q4, family3.q6 FROM hTable;
    15. -- HBase 表临时连接为维度表
    16. SELECT * FROM myTopic
    17. LEFT JOIN hTable FOR SYSTEM_TIME AS OF myTopic.proctime
    18. ON myTopic.key = hTable.rowkey;

    TODO: 将在未来支持此功能。

    TODO: 将在未来支持此功能。

    数据类型映射

    Flink 的 HBase 连接器利用 HBase(Hadoop) 的工具类 org.apache.hadoop.hbase.util.Bytes 进行字节数组和 Flink 数据类型转换。

    Flink 的 HBase 连接器将所有数据类型(除字符串外)null 值编码成空字节。对于字符串类型,null 值的字面值由null-string-literal选项值决定。