您现在的位置是:首页 > 文章详情

创建Cloudhbase维表

日期:2018-11-13点击:479

创建 Cloudhbase 维表

维表的 Query 语法详见: 维表 JOIN 文档

示例

 
  1. CREATE TABLE hbase (
  2. `key` varchar,
  3. `name` varchar,
  4. PRIMARY KEY (`key`), -- hbase 中的 row key 字段
  5. PERIOD FOR SYSTEM_TIME --维表标识。
  6. ) with (
  7. TYPE = 'cloudhbase',
  8. zkQuorum = 'xxx',
  9. columnFamily = 'xxx',
  10. tableName = 'dim_seo'
  11. );

注意:声明维表时,必须要指名主键。维表JOIN的时候,ON的条件必须包含所有主键的等值条件。Cloudhbase中的主键即rowkey。

WITH参数

参数 注释说明 备注
zkQuorum Cloudhbase集群配置的zk地址,是以(,)分隔的主机列表。 可以在hbase-site.xml文件中找到hbase.zookeeper.quorum相关配置。
zkNodeParent 集群配置在zk上的路径 可以在hbase-site.xml文件中找到hbase.zookeeper.quorum相关配置。
tableName hbase 表名
columnFamily 列族名 目前只支持插入同一列族。
userName 用户名
password 密码
maxRetryTimes 最大尝试次数 默认10次
partitionedJoin 设置为true之后会在用joinKey做partition,将数据分发到join节点,提高缓存命中率 可选,默认关闭
shuffleEmptyKey 设置为true之后遇到空key会随机往下游做shuffle,否则往0号下游发 建议打开

Cache 参数

参数 注释说明 备注
cache 缓存策略 默认 None, 可选 LRUALL
cacheSize 缓存大小 当选择 LRU 缓存策略后,可以设置缓存大小,默认 10000 行。
cacheTTLMs 缓存超时时间,单位毫秒。 当选择 LRU 缓存策略后,可以设置缓存失效的超时时间,默认不过期。当选择 ALL 策略,则为缓存reload 的间隔时间,默认不重新加载。
cacheReloadTimeBlackList ALL Cache 时启用,更新时间黑名单,防止在此时间内做cache 更新(如双11场景)。 可选,默认空,格式为2017-10-24 14:00 -> 2017-10-24 15:00, 2017-11-10 23:30 -> 2017-11-11 08:00。用逗号(,)来分隔多个黑名单,用箭头(->)来分割黑名单的起始结束时间。
cacheScanLimit ALL Cache 时启用,load全量HBase数据,服务端一次RPC返回给客户端的行数。 可选,默认100条

目前RDS/DRDS提供如下三种缓存策略。

  • None:无缓存。
  • LRU:最近使用策略缓存。需要配置相关参数:缓存大小(cacheSize)和 缓存超时时间(cacheTTLMs)。
  • ALL:全量缓存策略。在Job运行前会将远程表中所有数据load到内存中,之后所有的维表查询都会通过 cache进行。cache命中不到则不存在,并在缓存过期后重新加载一遍全量缓存。全量缓存策略适合远程表数据量小、miss key多的场景。全量缓存相关配置:缓存更新间隔(cacheTTLMs),更新时间黑名单(cacheReloadTimeBlackList)。

    注意:因为会异步reload,使用cache all的时候,需要将维表JOIN的节点增加一些内存,增加的内存大小为远程表两倍的数据量。

本文转自实时计算——创建Cloudhbase维表

原文链接:https://yq.aliyun.com/articles/669202
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章