基于presto分布式查询mongodb的使用中遇到的问题
来源:互联网 发布:unity3d塔防游戏案例 编辑:程序博客网 时间:2024/06/06 07:43
由于项目中需要大数据量的相互比对得出比对结果,所以采用了facebook的presto。一个基于Java开发的大数据分布式 SQL 查询引擎。
presto的部署以及使用官网上有较为详细的说明。这里附上官网网址:https://prestodb.io/
之后可能会详细的说一下mongodb的部署以及使用时注意的问题,不过这篇主要是讲在使用中遇到的一个很大的问题,以及解决方式。
在实际开发中,需要获取表的数据结构,由于mongodb是nosql,实际上并没有表结构的概念,但是presto可以通过sql语句“show column from collectionName”,这句sql查询出这个集合的“表结构”。但是有个问题出现了,就是我实际插入的一条数据(也就是文档),有二十个字段,但是查询出的表结构字段只有十几个。而且在查询数据的时候,也是只显示那十几个字段的数据。后来发现了一个规律,未显示的字段都是在第一条数据中是null的字段。为了进一步确认猜测是否正确,又去查看了一下源码。发现源码中有这样一段
圈出的代码写的就是presto底层读取mongo表中第一条数据,由此可以断定,presto获取表结构是根据第一条数据的结构。接下来往下看
这段代码圈出来的部分是做了一个判断,具体isParent()这个方法并没有去深入研究,但是在测试过程中,获取到的空字段验证都是false,也就是说没有通过这个验证进入里面的方法,意味着并没有加入到metedata这个文档对象中,所以在查询的结构中就没有出现null的字段,造成字段缺失的问题。
解决方式:可以在插数据到mongo的时候,在正常数据进去之前,插入一条全字段的数据,值可以为空字符串,然后再导入正常的数据即可。
默认的排序是根据插入的时间。也就是说,最先插入的数据就是第一条数据。这样的话在查询表结构的时候就能获取到全部的字段。
文章中可能有些细节的地方写的不是很清楚,以后会继续补充,欢迎大家提意见纠错。
- 基于presto分布式查询mongodb的使用中遇到的问题
- Presto:Facebook的分布式SQL查询引擎
- Presto:Facebook的分布式SQL查询引擎
- Presto:Facebook的分布式SQL查询引擎
- 基于python的scrapy框架中使用MongoDB遇到的问题
- Presto 来自Facebook的开源分布式查询引擎
- Presto 来自Facebook的开源分布式查询引擎
- Presto 来自Facebook的开源分布式查询引擎
- Presto 来自Facebook的开源分布式查询引擎
- Presto 来自Facebook的开源分布式查询引擎
- Presto中Queue的使用总结
- java中mongoDB连接遇到的问题
- #mongodb使用时遇到的问题
- MongoDB使用中遇到的几个问题
- mongodb 基于地理位置的查询
- [解决]presto查询中The node may have crashed or be under too much load.的问题
- Presto Benchmark Driver 的使用
- 项目中遇到的HQL查询问题
- eclipse项目导入idea
- HttpUrlConnection与HttpClient的认识(一)-HttpUrlConnection的使用
- ubuntu14.04 64位配置arm-linux-gcc-4.5.1
- Machine Learning In Action:KNN(Python)
- 面试题21:包含min函数的栈
- 基于presto分布式查询mongodb的使用中遇到的问题
- ios中签名详解
- 单片机
- CSS in JS 简介
- 鹿晗原名叫“刘壮实”?中学合影都被翻了出来
- nodejs jquery下载本地文件 webstorm
- 图像滤波—高斯滤波——MATLAB实现
- CUDA小记(4)something before programming(一)
- 【OpenCV开发之案例】立体匹配设计流程