
如今的企业内部一般都有多个系统用于数据存储和数据处理。这些不同的系统各自服务于不同的应用场景或案例。除了传统的RDBMS如Oracle DB,Teradata或PostgreSQL之外,团队可能还使用了Apache Kafka用作流式处理,使用Apache Druid来保存时序数据,使用Apache Phoenix进行快速索引查找。此外,他们可能还使用了云存储服务或HDFS来批量存储数据。
平台的团队一般会并行的部署所有这些系统,方便开发人员可以灵活的选择这些工具来满足不同的业务分析需求。
1 使用Apache Hive3.0&SQL来进行统一访问
Apache Hive在上述环境中扮演着重要角色。更具体一点的说,它可以访问上述所有系统,并提供统一高效的SQL访问,而且是开箱即用的。这样做的好处是巨大的:
1.单个SQL方言和API
2.集中安全控制和审计跟踪
3.统一治理
4.能够合并来自多个数据源的数据
5.数据独立性
设置和使用Apache Hive作为联邦层可简化应用程序开发和数据访问。特别是所有数据都可以使用SQL进行处理,并且可以通过熟悉的JDBC/ODBC接口进行访问。
最重要的事,因为所有的数据访问都会通过Hive,当Hive与不同的系统进行交互时,它可以提供统一的安全控制(表,行和列访问控制),数据溯源和审计。
最后,你还可以保证数据的独立性:如果所有的访问都被抽象为通过SQL表或视图,更改存储或处理引擎则会比较容易。
2 基于成本优化的智能下推
假设你要执行一个Hive查询,该查询通过JDBC连接到后端的RDBMS访问数据。一种天真的想法是将JDBC源视为“哑”(dumb)的存储系统,通过JDBC读取所有原始数据并在H

本文介绍了如何使用Apache Hive3实现跨数据库的联邦查询,通过Hive的JDBC storage handler和Calcite优化器,智能下推查询到不同数据源,提升性能。此外,探讨了自动元数据映射的未来发展,简化建表语句和外部catalog的支持,旨在提供统一、高效的SQL访问体验。
最低0.47元/天 解锁文章
1995

被折叠的 条评论
为什么被折叠?



