首页 > 其他分享 >Databend 开源周报第 102 期

Databend 开源周报第 102 期

时间:2023-07-18 18:11:36浏览次数:41  
标签:index revenue Docs Databend 开源 SQL 102 bloom

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn

What's On In Databend

探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。

为指定列创建 Bloom Index

创建 bloom index 将会消耗大量 CPU 资源。对于仅有少数列涉及点查或者对数据摄入性能比较看重的宽表来说,为所有列都创建 bloom index 可能不是什么好选择。

Databend Fuse Engine 新增对 bloom_index_columns 选项的支持,这意味着你可以按需为指定列创建 bloom index ,从而达到查询性能和数据摄入性能之间的平衡。

创建带有 bloom index 的表:

CREATE TABLE table_name (
  column_name1 column_type1,
  column_name2 column_type2,
  ...
) ... bloom_index_columns='columnName1[, ...]'.

为现存的表创建或修改 bloom index :

现有的 bloom index 选项将被新选项替换,另外,不会为现有数据创建 bloom filter 。

ALTER TABLE <db.table_name> SET OPTIONS(bloom_index_columns='columnName1[, ...]');

禁用 bloom index :

ALTER TABLE <db.table_name> SET OPTIONS(bloom_index_columns='');

如果您想了解更多信息,请查看下面列出的资源。

理解 SQL 一致性

Databend 的设计目标之一是符合 SQL 标准,特别是支持 ISO/IEC 9075:2011 ,也称为 SQL:2011 。虽然目前不是完全百分百符合,但 Databend 已经包含许多 SQL 标准所要求的特型,只是在语法或函数上存在一些轻微差异。

我们最近在文档中添加了一篇摘要,介绍了 Databend 符合 SQL:2011 标准的程度,希望它能帮助你进一步了解 Databend 的 SQL 语法。

如果你想要了解更多信息,请查看下面列出的资源。

Code Corner

一起来探索 Databend 和周边生态中的代码片段或项目。

了解 Databend 重聚类 Pipeline

经过良好聚类的表在某些存储块中仍然可能会变得混乱,从而对查询性能产生负面影响。例如,该表会继续进行 DML 操作(INSERT / UPDATE / DELETE)。

重聚类操作并不是从头开始对表再次聚类,而是基于聚类算法的计算来选择并重新组织现存最混乱的存储块。

重聚类的 pipeline 如下图所示:

┌──────────┐     ┌───────────────┐     ┌─────────┐
│FuseSource├────►│CompoundBlockOp├────►│SortMerge├────┐
└──────────┘     └───────────────┘     └─────────┘    │
┌──────────┐     ┌───────────────┐     ┌─────────┐    │     ┌──────────────┐     ┌─────────┐
│FuseSource├────►│CompoundBlockOp├────►│SortMerge├────┤────►│MultiSortMerge├────►│Resize(N)├───┐
└──────────┘     └───────────────┘     └─────────┘    │     └──────────────┘     └─────────┘   │
┌──────────┐     ┌───────────────┐     ┌─────────┐    │                                        │
│FuseSource├────►│CompoundBlockOp├────►│SortMerge├────┘                                        │
└──────────┘     └───────────────┘     └─────────┘                                             │
┌──────────────────────────────────────────────────────────────────────────────────────────────┘
│         ┌──────────────┐
│    ┌───►│SerializeBlock├───┐
│    │    └──────────────┘   │
│    │    ┌──────────────┐   │    ┌─────────┐    ┌────────────────┐     ┌─────────────────┐     ┌──────────┐
└───►│───►│SerializeBlock├───┤───►│Resize(1)├───►│SerializeSegment├────►│TableMutationAggr├────►│CommitSink│
     │    └──────────────┘   │    └─────────┘    └────────────────┘     └─────────────────┘     └──────────┘
     │    ┌──────────────┐   │
     └───►│SerializeBlock├───┘

如果你想要了解更多信息,请查看下面列出的资源。

Highlights

以下是一些值得注意的事件,也许您可以找到感兴趣的内容。

What's Up Next

我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。

用物化加速 CTE

内联公共表表达式(Common Table Expression,CTE)能够满足大多数情况,但是如果 CTE 像 TPCH Q15 那样比较重,那么完成查询的代价可能会非常高。在这类情况下,最好引入物化来加速 CTE 。

--- TPCH Q15
WITH revenue AS
  (SELECT l_suppkey AS supplier_no,
          sum(l_extendedprice * (1 - l_discount)) AS total_revenue
   FROM lineitem
   WHERE l_shipdate >= TO_DATE ('1996-01-01')
     AND l_shipdate < TO_DATE ('1996-04-01')
   GROUP BY l_suppkey)
SELECT s_suppkey,
       s_name,
       s_address,
       s_phone,
       total_revenue
FROM supplier,
     revenue
WHERE s_suppkey = supplier_no
  AND total_revenue =
    (SELECT max(total_revenue)
     FROM revenue)
ORDER BY s_suppkey;

Issue #12067 | Feature: speed up CTE by materialization

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!

Changelog

前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。

地址:https://github.com/datafuselabs/databend/releases

Contributors

非常感谢贡献者们在本周的卓越工作。

image.png

Connect With Us

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

标签:index,revenue,Docs,Databend,开源,SQL,102,bloom
From: https://www.cnblogs.com/databend/p/17563791.html

相关文章

  • 8-102-(LeetCode- 207&210) 课程表
    1.题目 读题  考查点 2.解法思路这个问题可以用图论的方法来解决,具体思路如下:将课程和先修课程看作有向图的节点和边,如果要学习课程ai,则必须先学习课程bi,表示为bi->ai。判断图中是否存在环,如果存在环,则说明有些课程无法完成,返回false;如果不存在环,则说明所有课程都......
  • Damiler EDI 项目 Excel 方案开源介绍
    准备下载和运行DaimlerEDI到Excel使用Excel生成一系列EDI文档与Daimler通信。下载工作流  下载示例文件  DaimlerEDI&Excel方案简介本文将继续分享Daimler示例工作流:使用Excel端口和Email端口生成一系列文件,完成与Daimler的EDI通信。DaimlerEDI到Excel示......
  • SonarQube代码质量管理的开源平台
    CI/CD流水线完善计划,增加代码质量检查作业,在开发代码合入前提前发现不安全问题,因此引入代码质量检测-SonarQube服务。一、SonarQube是什么?Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成......
  • 8-102-(LeetCode- 207&210) 课程表II
    1.题目读题210. 课程表II 考查点 2.解法思路 这道题的解答思路是使用拓扑排序来判断有向图是否有环,如果有环,说明无法完成所有课程,如果没有环,输出拓扑排序的结果。拓扑排序的基本思想是从有向图中选择一个没有前驱(即入度为0)的顶点并输出,然后从图中删除该顶点和所......
  • m基于FPGA的1024QAM调制信号产生模块verilog实现,包含testbench
    1.算法仿真效果本系统进行了Vivado2019.2平台的开发,Vivado2019.2仿真结果如下:将1024调制信号导入到matlab显示星座图2.算法涉及理论知识概要本文将详细介绍基于FPGA的1024QAM调制信号产生模块。本文将从以下几个方面进行介绍:1024QAM调制信号的基本原理、符号映射方式、并行化......
  • m基于FPGA的1024QAM调制信号产生模块verilog实现,包含testbench
    1.算法仿真效果 本系统进行了Vivado2019.2平台的开发,Vivado2019.2仿真结果如下:   将1024调制信号导入到matlab显示星座图  2.算法涉及理论知识概要       本文将详细介绍基于FPGA的1024QAM调制信号产生模块。本文将从以下几个方面进行介绍:1024QAM调制信......
  • 6个高价值AI开源项目推荐
    开源项目只是免费的工具,具体怎么实现还需要你根据自己需求去深入运营。这里只是给你推荐一些比较热门的开源项目,和一些应用思路!其次开源项目部署需要你或者你的团队有一定的开发经验,只要有开发经验上手很容易,轻松实现部署。但是不建议技术小白去尝试,那可能是浪费时间1、视频直......
  • Hugging Face CEO:开源 AI 与美国的价值观和利益 “极其一致”
    导读HuggingFace首席执行官ClementDelangue于日前出席美国众议院科学委员会全体成员的“人工智能:推进创新以实现国家利益”主题听证会作证,并在开场白中表示,开放科学和开源AI“对于激励和促进创新至关重要,与美国的价值观和利益极其一致。”两周前,美国参议员曾就LL......
  • [gym102770L]List of Products
    题意简述我们根据唯一分解定理得到,对于每一个数\(x\)可以表示成\(\sump_i^{e_i}\)的形式,其中\(p_i\)表示第\(i\)大的素数。我们重新定义两个数之间的比较,对于两个数\(x,y\):如果\(x=y\),两个数相等如果\(x,y\)不相等,我们就从小到大枚举素数,知道找到一个下标......
  • 轻奢分销商城pc/h5小程序开源版开发
    轻奢分销商城pc/h5小程序开源版开发商城系统;包含小程序商城、H5商城、公众号商城、PC商城、App,支持秒杀、优惠券、积分、分销、会员等级。功能列表:1.用户注册和登录:用户可以通过手机号码或第三方登录方式注册和登录账号。2.商品浏览和搜索:用户可以浏览商城中的商品,并通过关键字搜......