【发布时间】:2019-05-28 08:58:30
【问题描述】:
【问题讨论】:
标签: hive apache-kafka hortonworks-data-platform confluent-platform ksqldb
【问题讨论】:
标签: hive apache-kafka hortonworks-data-platform confluent-platform ksqldb
KSQL使用Kafka Streams,不依赖Hive,只依赖Kafka和Zookeeper
Hive-Kakfa 需要 Kafka、HiveServer 和 RDBMS(MySQL、Postgres 等)。
对于外部集成,Hive-Kafka 不提供 Confluent Avro Schema Registry 集成。不过,它可能(最终?)提供 Hortonworks Schema Registry 集成。
Hortonwork 围绕 NiFi、Spark、Kafka、SMM、Atlas、Ranger、Hive-Streaming 等的工具套件可能都经过了很好的测试。
Confluent 与其他公司合作,以确保与 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-Kafka。从那里您可以将现有的 Hive 数据(HDFS、S3、HBase 等)与 Hive-Kafka 数据相结合,但可能会对性能产生影响。
同样,您可以使用 Schema Registry 将 Hive-Kafka 主题转换为 KSQL 中的 Avro,以便与 Kafka Connect 或 NiFi 等其他工具一起使用,以获得更高效的有线格式(binary-avro 与 json)。
FWIW,看看你的第一个链接的 cmets 部分
这种集成与 KSQL 非常不同。
- 这里的主要用例是允许用户针对任何 Kafka 主题实际释放完整的 SQL 查询用例。 https://github.com/apache/hive/tree/master/kafka-handler#query-table
- 您可以使用它自动将数据移入和移出 Kafka。 https://github.com/apache/hive/tree/master/kafka-handler#query-table
- 将 Kafka 流作为整个数据仓库的一部分进行查询,例如 ORC/Parquet 表、Druid 表、HDFS、S3 等。
【讨论】: