druid - 为什么 Apache Druid 被认为是实时数据库?
问题描述
这是一个与 Druid 的营销方式有关的问题。
为什么它被称为实时数据库,当 - 据我了解 - 在任何数据可以从 DB 中有效读取之前,需要使用外部工具(如 Hive 或 Spark)进行繁重的 ETL,该工具将半聚合数据加载到 Druid 之前数据库以基于列存储的高效方式写入此输入。
我的理解是,就 Druid 和查询 UI 之间的通信而言,Druid 可以被认为是实时的,而不是在真实源(包括实时事务)和 Druid 之间,因为两者之间需要分析(可能是多个连接)。
解决方案
Druid 通过 Kafka Streaming 支持实时摄取,数据可立即查询,这就是为什么它被视为实时数据存储的原因。
正如您提到的使用 Hive 和 Spark,Druid 还支持批量摄取。
以下是有关Apache Druid的更多详细信息:
Apache druid 是 OLAP 数据存储,旨在提供亚秒级查询性能,同时实时或批量摄取数据。
在 Druid 中摄取数据的方法
实时摄取- Druid 可以使用 Kafka 主题实时摄取数据。
Batch Ingestion - Druid 使用 Hive 和 Spark 从 HDFS 读取数据集。在这种情况下,它不是实时的,但有些用例不需要实时,只需要对即席查询有更快的响应时间。
德鲁伊非常适合:
具有基于事件的数据的应用程序。
数据更新少
亚秒级响应时间
当你不应该考虑德鲁伊
大量连接
更多数据更新
热门行业/德鲁伊应用
物联网服务
网络监控
数字营销
任何基于时间的流媒体应用程序
推荐阅读
- ios - 如何为两个不同的pickerviews(swift4)调用2个不同的数组
- java - 如何在请求开始时创建 Context 对象的条目并在请求结束时检索它?
- javascript - React.js - 单击按钮时移动组件
- javascript - Codeigniter - 编码、解码 JSON
- textures - 虚幻引擎 4 在导入时扭曲了一些纹理
- azure - Azure 应用程序网关 DNS
- javascript - ES6 休息参数代码不起作用
- ios - 如何在 Swift 中将 Speed 设置为“moveTo”方法?
- mysql - UNION 或 JOIN 4 个表,每个表都有内部连接
- javascript - 减少数组数组