On this page
要添加的功能
在添加到下面的列表之前,请检查JIRA以查看是否已打开该功能的票证。如果没有,请在Hive JIRA上打开票证,并更新以下列表。
最近的主要变化
Current Projects
抢夺
优先级表示为 P0> P1> ...
Query Optimization
P0优化 JOIN,然后优化 GROUP BY
许多分析查询都是 JOIN,后跟 GROUP BY(联接键和 group by 键可能相同或不相同或相关)。我们需要针对此类查询进行更好的优化(优化 MapReduce 作业数量与优化数据传输大小等)
P0使用 Bloom 过滤器优化 JOIN
这是为了优化连接两个大表但结果很小的情况。
P1列级统计
我们已经有了用于百分位,直方图等的 UDAF。我们需要找到一种聪明的方法来以流方式(在/将扫描/加载数据过程中存回/存回)来计算列级(近似)统计信息,而无需触发新查询。
P1确定是否对分组依据中不同的计数使用偏斜
在实际查询之前,需要列级统计信息或示例任务。
P1利用 Importing 数据中的聚类信息
一些数据是使用“ GROUP BY”,“ CLUSTER BY”,“ ORDER BY”等生成的,它们在数据中隐式排序。我们应该利用此元数据来更好地选择联接(例如,Map 端排序合并联接)。
Cost-based Optimization
Query Execution
P0本机支持数字类型,日期时间和 IP 地址
当前,大多数数字,日期时间和 IP 地址都视为字符串。如果我们知道它们的数据类型,则应该以更有效的方式存储这些数据类型(另请参见“二进制存储和 SerDe”)。
P0创建一个对数据压缩更友好的 URL 数据类型。
URL 很长,会占用很大一部分存储空间。它们被视为通用字符串,并使用字符串压缩算法。我们应该研究是否存在以巧妙的方式处理 URL 数据类型的方法,以便压缩算法(可以是定制的压缩算法)可以在足够小的开销下更好地压缩数据。
P1二进制存储格式和 SerDe
这个想法是在将数据存储到磁盘之前,先以其原始格式(而不是转换为 UTF-8 字符串类型)存储数据。这样可以在数据转换和对象创建中节省大量 CPU/IO 成本。
还研究了在查询(过滤)之前不需要解压缩的其他列存储中使用的压缩技术。
重新访问 LazyBinarySerDe,查看它们是否可以重用或扩展为该存储格式。
使此存储格式适合 mmap()(或 Java 中的 FileChannel),以便在内存随机访问可以跳过部分数据(例如列)的情况下,系统可以跳过 I/O。
支持 IN,存在和相关子查询
更多本机类型-枚举,时间戳
Persistent UDF's
SQL/OLAP
存储处理程序的改进
System views
JDBC/ODBC improvements
Map 到 mapreduce 过渡(不再使用,因为不再需要 mapred)
Metadata Management
P0减少 metastore 的大小„Äì“所需的费用:有些想法是不存储 COLUMNS 等。
这里的一个想法是引入类似架构对象的东西,其中包含列对象。分区将继承架构对象,该对象仅在表架构更改时才会更改。迁移现有设置也将涉及到工作。这将大大减少列中的行数(当前为十亿)。
P1查看改进
测试,错误消息和调试
P0重型测试基础架构
自动代码覆盖率报告
Hive CLI 改进/错误消息
HiveServer robustness
可调试性/可恢复性:
向用户显示导致任务失败的数据的最后一部分
重新启动具有特定 Map 器的作业(该早期 Map 因调试目的而失败)
在 map-reduce 作业级别恢复。