Apache Druid-时序数据库

  • Apache Druid:是是一个集时间序列数据库、数据仓库和全文检索系统特点于一体的分析性数据平台,旨在对大型数据集进行快速的查询分析("OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景,同时,Druid也通常被用来助力分析型应用的图形化界面,或者当做需要快速聚合的高并发后端API,Druid最适合应用于面向事件类型的数据。
  • 特性
    • 实时数据摄取:Druid能够实时地处理和索引数据,使其几乎可以立即查询。
    • 高性能查询:Druid优化了查询性能,特别是对于聚合查询和数据切片,这在传统的关系型数据库中可能需要很长时间。
    • 灵活的数据模型:Druid支持灵活的数据模型,允许用户定义数据的维度和度量,以适应不同的分析需求。
    • 水平扩展:Druid设计为分布式系统,可以水平扩展以处理PB级别的数据。
    • 高可用性:Druid的架构支持高可用性,通过复制数据和查询负载均衡来实现。
    • 丰富的集成:Druid可以与多种数据源和数据管道工具集成,如Apache Kafka、Apache Hadoop等。
  • 主要查询方式及参数说明
    • Druid原生查询
    • Druid SQL查询
    • 主要参数
      • queryType: 指定查询的类型,对于时间序列查询,这个值通常是 "timeseries"。
      • dataSource: 指定查询的数据源名称,即要从哪个数据表或数据集进行查询。
      • intervals: 定义查询的时间范围,可以是一个或多个时间区间。格式通常是 ISO 8601 格式,例如 "2019-01-01T00:00:00Z/2019-01-02T00:00:00Z"。
      • granularity: 指定查询的粒度,可以是 "all"(表示整个数据集)、"hour"、"day"、"week"、"month"、"year" 或自定义的粒度。
      • filter: 定义查询的过滤条件,可以是各种类型的过滤器,如选择器(selector)、布尔(boolean)等。
      • aggregations: 定义聚合操作,用于对数据进行汇总计算。可以包含多个聚合,每个聚合都有自己的字段名、类型和名称。
      • postAggregations: 定义在聚合之后执行的二次计算,用于对聚合结果进行进一步的处理。
      • dimensions: 指定要返回的维度列,可以是维度的数组。
      • metrics: 指定聚合操作的输出名称,通常与聚合操作中的 name 字段对应。
      • orderBy: 指定结果的排序方式,可以是按照时间或特定维度排序。
      • limitSpec: 定义结果集中返回的行数限制。
      • context: 提供查询的上下文信息,可以包含各种设置,如超时时间、查询优先级等。
      • having: 指定过滤聚合结果的条件,通常在聚合之后应用。
      • intervalsOverride: 覆盖查询中定义的时间区间。
      • descending: 指定是否按降序返回结果。
      • 案例:
        • {
        • "queryType":"topN",
        • "dataSource":"taxi_message",
        • "dimension":"local",
        • "threshold":2,
        • "metric":"age",
        • "granularity":"month",
        • "aggregations":[
        • {
        • "type":"longMin",
        • "name":"age",
        • "fieldName":"age"
        • }
        • ],
        • "filter":{"type":"selector","dimension":"sex","value":"女"},
        • "intervals":["2021-06-07/2022-06-07"]
        • }
    • Druid 最开始的时候是不支持 SQL 查询的,原生查询是通过查询 Broker 提供的 http server 来实现的
  • Druid API 接口及其作用
    • 原生查询方式
      • /druid/v2/pretty:JSON格式请求,返回JSON结果集
    • SQL 查询接口:
      • /druid/v2/sql:执行 SQL 查询,返回查询结果。
    • 数据摄取(Ingestion)接口:
      • /druid/indexer/v1/task: 提交数据摄取任务,用于将数据加载到 Druid 中。
    • 数据源(DataSource)管理接口:
      • /druid/coordinator/v1/datasources: 获取所有数据源的列表。
      • /druid/coordinator/v1/datasources/{dataSource}: 获取指定数据源的详细信息。
    • 任务管理接口:
      • /druid/indexer/v1/task: 提交数据摄取任务。
      • /druid/indexer/v1/supervisor: 管理数据摄取的监督器(Supervisor)任务。
    • 查询历史(Query History)接口:
      • /druid/query/history: 获取查询历史记录。
    • 集群协调(Coordinator)接口:
      • /druid/coordinator/v1/cluster: 获取集群状态信息。
      • /druid/coordinator/v1/leader: 获取当前集群的领导者节点。
    • 数据节点(Data Node)接口:
      • /druid/dataNode/v1: 获取数据节点的状态信息。
    • 历史节点(Historical Node)接口:
      • /druid/historical/v1: 获取历史节点的状态信息。
    • 实时节点(Realtime Node)接口:
      • /druid/v2/datasources/{dataSource}/intervals: 获取实时数据源的活跃时间区间。
    • 配置管理接口:
      • /druid/indexer/v1/worker: 获取工作节点的配置信息。
    • 监控和状态接口:
      • /druid/broker/v1: 获取 Broker 节点的状态信息。
      • /druid/overlord/v1: 获取 Overlord 节点的状态信息。
    • 元数据存储接口:
      • /druid/metadata/v1: 与元数据存储交互,例如获取或更新表的元数据。
    • 任务状态接口:
      • /druid/indexer/v1/task/{taskId}: 获取特定任务的状态和结果。
  • 开发人员须知的概念
    • 数据源:
      • 段的生命周期管理包括创建、发布和可用性检查。新创建的段首先由MiddleManager生成并标记为未提交(uncommitted),此时数据已经可以被查询。随着时间的推移,段会被提交并发布到深度存储,变为不可变(immutable),并由Historical进程进行管理。Coordinator负责监控新的段,并指导Historical加载这些段以提供服务
      • 数据源中的数据被组织成多个段(Segment),每个段代表一个时间区间的数据。例如,如果数据源按天分区,那么每个chunk将代表一天的数据。每个段内部,数据被优化存储,包括列式存储、使用位图索引进行索引等,这些都是为了加快查询速度而设计的。
      • 数据源在Druid中的作用类似于传统数据库中的表。每个数据源包含特定时间段的数据,并且可以按事件分区,也可以根据需要按其他属性进一步分区。这种分区机制使得Druid能够有效地管理和查询大量数据。
    • 索引:
      • Druid支持多种索引类型,包括全文搜索索引、嵌套索引和主键索引。这些索引类型可以单独使用或组合使用,以满足不同的查询需求。
      • 索引在Druid中是可选的,但如果正确使用,可以显著提高查询性能。例如,主键索引可以加速表扫描,而全文搜索索引则支持高效的文本搜索。
      • 索引的创建和管理是通过Druid提供的工具和API进行的,开发人员需要熟悉这些工具来优化他们的数据查询。
    • 查询语言:
      • Druid的原生查询语言提供了一种高效且灵活的方式来处理复杂的分析查询。这种语言支持各种操作,如时间序列分析、聚合和过滤。
      • 学习Druid的查询语言对于充分利用其分析能力至关重要。虽然起初可能是挑战性的,但掌握它可以极大地增强数据处理的能力。
    • 数据摄取:
      • Druid设计用于处理实时数据摄取,这意味着它能够快速接收并处理流数据。这对于需要快速响应数据变化的应用来说非常重要。
      • 数据摄取的过程可以通过Druid的管理界面或API进行配置,开发人员需要了解这些选项以确保数据的正确和高效流入。
    • 安全性:
      • Druid支持基于角色的访问控制,这允许管理员为不同的用户和应用程序分配不同的权限级别。
      • 开发人员需要了解如何配置这些权限,以确保数据的安全性和合规性。
  • 参考链接
    • 快速开始 · ApacheDruid中文技术文档
  • 对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/29730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信商城源码带分销功能 支持微信小程序+公众号端 含详细图文搭建教程

分享一款微商城源码系统,不仅支持微信公众号端和小程序端二合一管理,带分销机制,集合了市面上电商系统的功能,并增加了多项全新特色功能,如多商户商家入驻、区域代理、收银台、互动直播等,为商家提供了全方…

多行文本的文字展示全部和收起功能

组件代码&#xff1a; <template><!-- 外层容器&#xff0c;使用相对定位 --><div class"relative"><!-- 文本容器&#xff0c;根据 expanded 状态决定是否应用 line-clamp-4 类 --><div :class"{ line-clamp-4: !expanded }"…

表达式的格式化

表达式&#xff1a;一条具有明确结果的代码语句 在字符串前面加上前缀f&#xff0c;表示这是一个格式化字符串&#xff0c;可以在字符串中直接引用变量&#xff0c;并使用{}来表示这些变量的位置。例如&#xff1a; name "Alice" age 30 print(f"My name is …

scratch3编程02-使用克隆来编写小游戏

目录 1&#xff0c;游戏效果 2&#xff0c;游戏代码块 1&#xff09;玩家 2&#xff09;障碍物 ​ 3&#xff09;箭头 ​ 4&#xff09;关卡图片 3&#xff0c;scratch文件 1&#xff0c;游戏效果 使用克隆 在这个游戏中&#xff1a; 程序开始&#xff1a;只要点击“…

构建LangChain应用程序的示例代码:37、基于LangGraph的文档检索与答案生成系统教程

这示例它实现了一个基于LangGraph的系统&#xff0c;用于处理文档检索和生成答案的过程。 好的&#xff0c;我会按照Markdown格式完整翻译并保留文件结构和格式&#xff1a; ! pip install langchain_community tiktoken langchain-openai langchainhub chromadb langchain lan…

怎么做到源代码防泄密?9种方法教会你

源代码加密是一种安全措施&#xff0c;其目的是为了保护软件的源代码不被未授权的个人或实体访问或泄露。源代码是软件应用程序的基础&#xff0c;它包含了程序的逻辑结构、核心算法以及设计理念。由于源代码承载了软件的核心知识和创新&#xff0c;因此它具有极高的商业价值和…

Multisim仿真之万用表、安捷伦万用表、信号发生器操作方法

1、XMM是安捷伦示波器 如下图所示&#xff0c;实物安捷伦的外围3个插孔对应于 XMM图标示波器的右侧3个引脚&#xff0c;上下一一对应 2、函数信号发生器XFG 如下图所示&#xff0c;COM就是GND&#xff0c;正负的意思就是相对于GND而言&#xff0c;有正负电压&#xff1b; 3、…

由于bug造成truncate table卡住问题

客户反应truncate table卡主&#xff0c;检查awr发现多个truncate在awr报告期内一直没执行完&#xff0c;如下&#xff1a; 检查ash&#xff0c;truncate table表的等待事件都是“enq: RO - fast object reuse”和“local write wait” 查找“enq: RO - fast object reuse”&am…

实验1_配置标准IPv4 ACL

1、实验目的 通过本实验可以掌握&#xff1a; IPv4 ACL工作方式和工作过程定义编号和命名的标准IPv4 ACL的方法接口和VTY下应用标准IPv4 ACL的方法 2、实验拓扑 配置IPv4 ACL的实验拓扑如图9-2所示 配置 ACL 实验拓扑如下图所示。本实验中&#xff0c;通过配置标准 ACL 实现…

三星SAINT-D技术引领HBM内存堆叠革命

三星电子即将在今年推出一项革命性技术&#xff0c;允许在CPU或GPU上堆叠高带宽内存&#xff08;HBM&#xff09;&#xff0c;根据韩国经济日报的报道&#xff0c;这一消息在圣何塞举办的三星晶圆代工论坛2024上公布&#xff0c;并得到业内消息人士证实。这项3D封装技术为2025年…

四十七、openlayers官网示例Image Filters——给地图添加锐化、浮雕、边缘等滤镜效果

官网demo示例&#xff1a; Image Filters 这篇讲的是如何给地图添加滤镜。 一看代码&#xff0c;&#xff0c;好家伙&#xff0c;信息量满满&#xff0c;全都看不懂。。。 咱只能一段一段扒。。。 首先添加一个底图到地图上&#xff0c;这个好理解。 const imagery new Til…

利用C#和Snap7工具模拟S7通信(包含DB地址讲解)

之前写过一篇用KepServerEx做模拟S7的通信数据&#xff0c;参考链接&#xff1a; 通过C#和KepServer完成模拟S7协议通信_c# 与kepserver-CSDN博客 但KepServerEx是收费的&#xff0c;而且模拟的DB块超过64就不行了&#xff0c;当然Snap7在本文中也是只能模拟DB1、DB2和DB3的数…

举个栗子!Tableau 技巧(277):创建径向 WIFI 信号图

之前为大家分享了 &#x1f330;&#xff1a;学做径向柱状图&#xff08;Radial Column Chart&#xff09;。在此基础上&#xff0c;我们又做了进一步的延展&#xff1a;径向 WIFI 信号图。 它的用法和径向柱状图一致&#xff0c;区别在于它将柱体分切成多个弧线&#xff08;内…

自监督几何引导:开启单目视觉里程计的鲁棒新时代

论文标题&#xff1a; Self-Supervised Geometry-Guided Initialization for Robust Monocular Visual Odometry 论文作者&#xff1a; Takayuki Kanai, Igor Vasiljevic, Vitor Guizilini, Kazuhiro Shintani 导读&#xff1a; 本文提出了一种用于单目视觉里程计的自监督几…

新火种AI|Sora发布半年之后,AI视频生成领域风云再起

作者&#xff1a;一号 编辑&#xff1a;美美 AI视频最近有些疯狂&#xff0c;Sora可能要着急了。 自OpenAI的Sora发布以来&#xff0c;AI视频生成技术便成为了科技界的热门话题。尽管Sora以其卓越的性能赢得了广泛关注&#xff0c;但其迟迟未能面向公众开放&#xff0c;让人…

[渗透测试学习] BoardLight-HackTheBox

BoardLight-HackTheBox 信息搜集 nmap扫描一下 nmap -sV -v 10.10.11.11扫描结果如下 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu))80端口有h…

【vue baidu-map】解决更新数据,bm-marker显示不完全问题

实现效果&#xff1a; 问题&#xff1a;切换上面基地tab键&#xff0c;导致地图图标展示不完全&#xff1b;刷新页面就可以正常展示。判断是<bm-marker>标记元素没有动态刷新dom元素引起的问题。 方案&#xff1a;this.$nextTick({}) this.$nextTick(()>{this.equipm…

用户需求分析揭秘:最佳实践与策略

大多数产品团队都有自己处理客户需求的一套流程。但是那些潜在的客户和他们的需求呢&#xff1f;如果在产品管理上已经有一定的资历&#xff0c;很可能对此见惯不怪了。 通常&#xff0c;这些需求是销售人员跑来告诉你的&#xff0c;大概就是说&#xff1a;“超棒的潜在客户一…

Airbind - hackmyvm

简介 靶机名称&#xff1a;Airbind 难度&#xff1a;中等 靶场地址&#xff1a;https://hackmyvm.eu/machines/machine.php?vmAirbind 本地环境 虚拟机&#xff1a;vitual box 靶场IP&#xff08;Airbind&#xff09;&#xff1a;192.168.56.121 跳板机IP(windows 11)&…

Java开发的构建神器:Maven以及如何安装部署Maven

目录 一、Maven引言1.1 Maven的核心概念✍. POM (Project Object Model)✌. 依赖管理✍. 生命周期与构建阶段✌. 插件系统 1.2 Maven的工作流程✍. 读取POM文件&#xff1a;✌. 依赖解析&#xff1a;✍. 构建生命周期&#xff1a;✌. 插件执行&#xff1a;✍. 构建输出&#xf…