分享

这样应该怎么解决?

remarkzhao 发表于 2017-8-7 14:05:40 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 4402
各位大神:
        我公司是做医院医疗数据的,数据都存在sqlserver里 总共有32张表,有诊断的,手术的,化验的等等。每张表都有病人的ID,但是不是主键,比如

化验表 有两次或者多次化验结果  每次化验的详情是一条记录。以前直接sql语句就可以搞定,现在数据越来越多,查询也变得非常慢, 现在老板要求只要


1.输入输入病患ID,就可以查询到他的所有信息 包括门诊,医嘱,用药,化验,手术等各项信息 (要求快速)

2. 比如这个病患有一项血糖高,我想得到跟这个血糖一样高的其他病人的信息 (hive??) (要求也是快速)


我的设想 1.  我是不是可以把这32张表全部join在一起 合成一张表然后导到hbase里  再api跟web前端连接起来进行查询

2. 还不知道应该怎么处理。


不知道各位大神 有什么高见。

已有(2)人评论

跳转到指定楼层
nextuser 发表于 2017-8-7 14:43:17
本帖最后由 nextuser 于 2017-8-7 14:47 编辑

看样是多条件的,hbase只支持rowkey很快的。不过方案还是有的,可以使用Solr+HBase支持多条件查询,速度也快。比如百度谷歌等,应该使用了这项技术
下面文章仅供参考,更多可搜索
基于Solr的HBase多条件查询测试
http://www.aboutyun.com/thread-9770-1-1.html

回复

使用道具 举报

remarkzhao 发表于 2017-8-14 10:33:50
nextuser 发表于 2017-8-7 14:43
看样是多条件的,hbase只支持rowkey很快的。不过方案还是有的,可以使用Solr+HBase支持多条件查询,速度也 ...

现在在用spark join多张表  速度很慢……

val joinDF = DC_LAB_RESULT_MASTERDF.join(DC_ENCOUNTERDF, Seq("PERSON_ID","PATIENT_ID"), "full").join(DC_VITAL_SIGNSDF, Seq("PERSON_ID","PATIENT_ID"), "full").join(DC_DIAGNOSISDF, Seq("PERSON_ID","PATIENT_ID"), "full")



像这种语句基本要一下午。。没多少数据。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条