KSQL ( Confluent ) VS Hive Kafka SQL ( Hortanworks )



有什么区别?哪一个更好?何时使用?

Hive Kafka SQL

KSQL

安装

KSQL使用Kafka Streams,不依赖Hive,只有Kafka和Zookeeper

Hive-Kafa需要Kafka、HiveServer和RDBMS(MySQL、Postgres等)。

生态系统

对于外部集成,Hive Kafka不提供Confluent Avro Schema Registry集成。不过,它可能(最终?)提供Hortonworks Schema Registry集成。

Hortonwork围绕NiFi、Spark、Kafka、SMM、Atlas、Ranger、Hive Streaming等的一套工具可能都经过了很好的测试。

与其他公司建立合作伙伴关系,以确保与Kafka及其平台以外的其他工具进行适当的集成。

接口

AFAIK,Hive Kafka只是一个查询引擎,它不会像KSQL那样创建/维护KStreams/KTable实例,并且总是需要扫描Kafka主题。它也没有用于提交查询的本地REST接口,因此外部访问的唯一选项是JDBC/ODBC。

对于UI,Hive与HUE或Ambari Views都是开源的,但KSQL主要只有Confluent Control Center,这是一个付费解决方案。



"更好"是一种观点,但如果你已经有了Hive,我认为没有理由不使用Hive Kafka。

IMO,KSQL可以通过将新主题定义为表和流,以及将Confleunt的Avro格式转换/过滤为Hive Kafka能够本机理解的JSON,来对Hive Kavka进行赞美。从那里,您可以将现有的Hive数据(HDFS、S3、HBase等)与Hive Kafka数据连接起来,但这可能会对性能产生影响。

同样,您可以使用模式注册表将Hive Kafka主题转换为KSQL中的Avro,并与Kafka Connect或NiFi等其他工具一起使用,以获得更高效的有线格式(二进制Avro与json)。


还有FWIW,看看你的第一个链接的评论部分

此集成与KSQL非常不同。

  • 这里的主要用例是允许用户针对任何Kafka主题实际释放完整的SQL查询用例。https://github.com/apache/hive/tree/master/kafka-handler#query-表
  • 您可以使用它来自动地将数据移入和移出Kafka。https://github.com/apache/hive/tree/master/kafka-handler#query-表
  • 将Kafka流作为整个数据仓库的一部分进行查询,如ORC/Parquet表、Druid表、HDFS、S3等