使用延云YDB动态列与Ya100动态映射搞定12w列的大宽表【使用步骤】

本文介绍了如何使用YDB和Ya100动态映射来处理包含12万列的大宽表问题。通过调整YDB配置,设置Ya100内存分配,创建空表并利用隐藏动态列,结合Kafka实时导入数据,以及在Spark中创建映射,实现了高效的数据处理和查询。通过Ymapping和Yfilter功能,实现了对大宽表的灵活查询和分析。
摘要由CSDN通过智能技术生成


鉴于客户需求,有一个12w列的大宽表,那么这么一个大宽表如何实现呢?数据要存储在hadoop的hdfs中,而且要创建索引,多维分析与多维检索


12W列意味着生成的schema文件就要20多m,由于太大,读取这个表的配置一是耗费很多内存,二是解析也很慢。

12w列在hive表中(spark 的hive sql模式),也意味着占用太多的元数据库信息,而且建表也容易失败,要知道hadoop的configuration也是有大小限制的。


让我们来一步一步的通过YDB与ya100来搞定这个12万列的大宽表吧,并且数据是通过kafka实时导入进来的。

具体ydb的使用步骤,这里不详细介绍 ,大家另行参考ydb的官网下载YDB后有详细的文档 http://ycloud.net.cn/yyydb

这里只重点介绍跟12W列有关的注意事项。


第一、ydb_site.yaml的如下配置参数都要改
 ydb.realtime.doclist.buffsize: 8
 ydb.directory.blockbuffer.percent: 8
 ydb.realtime.buffer.ram.writepartion.each.percent: 1

 ydb.directory.fieldvalue.reuse.blocksize: 0
 ydb.reader.rawdata.start.delay.secs: 60
 ydb.realtime.binlog.usebinlog: "false"
 ydb.realtime.index.disk.maxcount: 6
 ydb.realtime.buffer.maxcount: 6
 ydb.realtime.ram.maxcount: 6
 ydb.realtime.ram.maxcount: 6
 ydb.realtime.buffer.merger.factor: 2
 ydb.realtime.ram.merger.factor: 2
 ydb.realtime.index.disk.merger.factor: 2
 ydb.realtime.index.merger.final.factor: 2
 ydb.realtime.doclist.pending.thread.pral: 2
 ydb.realtime.doclist.flush.process.threads: 1
 kafka.queue.size.kafka_json: 6
 
第二,ya100_env.sh 如下配置都要改,要至少分配20G以上内存

export YA100_MEMORY=25000m
export YA100_DRIVER_MEMORY=15000m
export YA100_EXECUTORS=2  --根据实际能启动的进程数而修改-注意yarn里的配置


第三,在YDB中创建一个空的表 (注意这里,没有12万的列哦,后面会使用隐藏的动态列)
create table ydb12w (
id string
)

第四、通过kafka或者文件导入数据,数据格式类似下面这样
message.max.bytes与replica.fetch.max.bytes 这两个参数 别忘记调了,不然kafka也导入不了这么大的单条数据
{"tablename":"ydb12w","ydbpartion":"20151011","list":[{"id":7614190,"c0_l":1,"c1_l":15,"c2_l":13,"c3_l":8,"c4_l":0,"c5_l":15,"c6_l":11,"c7_l":5,"c8_l":8,"c9_l":7,"c10_l":13,"c11_l":14,"c12_l":3,"c13_l":7,"c14_l":11,"c15_l":10,"c16_l":4,"c17_l":7,"c18_l":4,"c19_l":5,"c20_l":1,"c21_l":11,"c22_l":9,"c23_l":15,"c24_l":3,"c25_l":5,"c26_l":13,"c27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值