Doris中架构和mysql语法的差异

Doris 的架构只设FE,BE  两种角色,两个进程,不依赖于外部组件,方便部署和运维,FE和BE都可线性扩展。

        FE(Frontend:存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行,返回查询结果。主要有三个角色:

            (1)Leader 和Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。

            (2)Observer:用来扩展查询节点,同时起到元数据备份的作用。如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加 observer 的节点。observer 不参与任何的写入,只参与读取。

        BE(Backend:负责物理数据的存储和计算;依据 FE 生成的物理计划,分布式地执行查询。

数据的可靠性由 BE 保证,BE 会对整个数据存储多副本或者是三副本。副本数可根据需求动态调整。

        MySQL Client

Doris借助MySQL协议,用户使用任意MySQLODBC/JDBC以及MySQL的客户端,都可以直接访问Doris

        Broker

Broker为一个独立的无状态进程。封装了文件系统接口,提供Doris读取远端存储系统中文件的能力,包括HDFSS3BOS等。

                Doris 是高度兼容 MySQL 语法,支持标准 SQL。但是 Doris 与 MySQL 还是有很多不同的地方:

MySQL 兼容性 - Apache Dorishttps://doris.apache.org/zh-CN/docs/query/query-data/mysql-compatibility这里还有doris的聚合函数的部分差异(按照中位数的函数差异)

        :在 Doris 数据库中,percentile_approxPERCENTILE 是用于计算百分位数的函数,它们有略微不同的作用和用法:

  1. percentile_approx 函数

    • percentile_approx(expr, percentage) 函数用于近似计算百分位数。它对大数据集执行分布式近似计算,通常用于对大型数据集进行快速分析。其语法为:

      percentile_approx(expr, percentage)
      • expr 是要计算百分位数的表达式或字段。
      • percentage 是要计算的百分位数,以小数形式表示(例如,中位数为 0.5)。
    • 示例:计算中位数(50th percentile)的示例:

      percentile_approx(PRIC, 0.5) AS PRIC_MEDIAN

      这将返回 PRIC 字段的近似中位数值。

    • percentile_approx 函数的优点在于它对大数据集的计算速度较快,适用于对结果的近似度要求不高的场景。

  2. percentile 函数:

    percentile(expr, percentage) 函数用于精确计算百分位数。它要求在排序后的数据集上执行计算,因此在处理大数据量时可能效率较低。其语法为:

                    percentile(expr, percentage)
             expr 是要计算百分位数的表达式或字段。
    percentage 是要计算的百分位数,以小数形式表示。
    示例:计算中位数(50th percentile)的示例:

              percentile(pric, 0.5) as pric_median
           这将返回 pric 字段的精确中位数值。

    percentile 函数适用于对结果的精确性要求较高的场景,但可能在处理大型数据时效率较低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值