Trino和hive的区别
Trino(前身为PrestoSQL)和Hive是两个用于处理大数据的查询引擎,它们有一些相似之处,但也存在许多重要区别:
性能:Trino的性能优于Hive,因为Trino是为低延迟查询和交互式分析设计的。Trino使用内存作为处理中的数据存储,从而避免了MapReduce那种磁盘I/O负担。另一方面,Hive基于Hadoop MapReduce引擎,为批处理查询设计,通常具有较高的延迟。
适用场景:Trino适用于低延迟、高并发的实时数据查询场景,而Hive更适合离线分析和批处理任务。如果您需要实时探索和分析数据,Trino可能是更好的选择;如果您对查询延迟没有严格要求,Hive可能更合适。
架构:Trino采用分布式体系结构,拥有独立的协调器和工作节点。在Trino中,查询计划和执行分发到不同的工作节点进行。而Hive则依赖于Hadoop的MapReduce引擎执行查询。Trino采用Trino节点本地处理的方式,在数据来源处处理数据,减少数据在网络中的传输量。
SQL支持:Trino支持ANSI SQL,而Hive使用HiveQL。尽管它们之间有许多相似之处,但它们在语法和功能上仍有所不同。例如,Trino提供了一些先进的窗口函数,HiveQL不具备这些功能。
数据源支持:Trino具有更广泛的数据源支持,可以轻松地查询各种数据存储系统,如Hadoop HDFS、Amazon S3、Cassandra、MongoDB和MySQL等。而Hive主要与Hadoop HDFS集成,对其他存储系统的支持较弱。
社区和生态系统:Trino和Hive都拥有活跃的开源社区,但Hive在大数据处理领域具有更长时间的历史和更广泛的用户群体。然而,作为一个年轻的项目,Trino正迅速发展并吸引了越来越多的关注。
trino直连hive,这种说法对吗
是的,Trino(之前叫Presto)可以直接与Hive连接并查询Hive中的数据。Trino是一个分布式SQL查询引擎,它的一个主要用途是为不同的数据源(如Hive、PostgreSQL、MySQL等)提供一个统一的查询接口。
在Trino中,为了直接连接Hive,需要配置一个名为hive.properties的文件。这个文件中包含了用户名、密码、Hive Metastore服务的URI等信息,使得Trino能够了解如何与Hive Metastore交互。
以下是一个简单的hive.properties文件示例:
1 | connector.name=hive-hadoop2 |
有了这个文件,你就可以让Trino直接查询Hive中的数据了,同时,你还可以使用Trino为其他数据源进行类似配置,从而实现多种数据源之间的联合查询和分析。
配置中心
选型比较
springCloudConfig:个人感觉Spring Cloud Config这个组件还未达到生产级使用标准,除非要求真的不高。要实现配置推送,需要额外搭建RabbitMq增加了额外的人力物力成本,而且最关键的是没有UI…所以推荐使用成熟的分布式配置框架Apollo或者disconf