BDTC2023:CloudberryDB开源创新与实践

中国大数据技术大会(BDTC)由中国计算机学会(CCF)创立于2008年,已经成为国内外极具行业实践的专业大数据交流平台。12月22日-24日,第十七届中国大数据技术大会(BDTC 2023)在广州举行。酷克数据(HashData)研发副总裁杨瑜受邀在“开源数据库”分论坛发表主题演讲,从产业实践和技术发展趋势的角度,介绍了HashData开源的数据库产品Cloudberry Database(简称“CBDB”或“CloudberryDB”)。

CloudberryDB是酷克数据面向分析和AI场景打造的下一代统一型开源数据库,搭载了PostgreSQL 14.4 内核,兼容PostgreSQL和Greenplum生态,采用 Apache License 2.0许可协议。

CloudberryDB支持丰富的数据类型和数仓/AI混合负载,可开展SQL分析、机器学习、全文检索、HTAP等任务,通过数据存储加密、联合⾝份验证等技术手段,帮助企业更方便地自建高效稳定的数据底座。

应需而生 助力企业灵活应对数据新挑战

成立于2016年的酷克数据,是国内最早专注于云原生数仓研发推广的软件企业,公司旗舰产品HashData Enterprise目前已广泛应用于金融、电信运营商、政务、能源、互联网等行业头部客户,其中最大客户规模已超过30000个节点。

在服务众多头部客户的过程中,酷克数据团队发现,企业部署运行的开源项目,存在版本进展缓慢、特性更新不及时、技术支持有限等痛点。凭借对MPP数据库的深度理解、国内大客户的服务实践经验,以及创始团队长期的开源社区参与经历,我们研发并开源了CloudberryDB数仓产品。

CloudberryDB既能满足单机本地快捷部署,也能通过插件自由扩展为云原生架构,具备高弹性、高并发、湖仓一体化、扩缩容灵活等优势。SQL引擎基于并行处理(MPP)架构,支持多计算集群部署,具备强大的并行计算能力,可以轻松支持高并发,有效隔离混合工作负载。

在部署方式上,CloudberryDB采用100%纯软方案,支持裸金属、虚拟机、容器化等多种部署方式,企业开发人员可以使用R、Python、Perl、Java、 pgsql等语言编写用户自定义函数(UDF),面向多计算集群部署,实现专属的业务需求。我们希望通过足够灵活的产品架构与方案,来覆盖不同数据量与场景的多元需求。

图1:CloudberryDB灵活部署形态

高效易用 让数据更好用起来

CloudberryDB全面集成PstgresQL 14.4,支持ANSI SQL 2011,内置丰富的库内分析模块,具备强大的SQL分析功能,满足企业进行海量数据的复杂分析需求:

  • 支持Multi-range 、JSON、JSONB、XML等多种类型,并提供了相关操作、函数支持;
  • 支持UPSERT,增加INSERT ... ON CONFLICT语法,在发生约束冲突时可以转换成UPDATE语义,对于数据导入友好;

  • 增加新语法方便数据更新:UPDATE tab SET (col1, col2, ...) = (SELECT col1, col2, ...);
  • 支持范围、列表、哈希等类型的分区,支持多层分区嵌套,支持分区管理操作;

  • 支持BTree、Bitmap、Hash、GIN、 BRIN、GiST 等多种类型的索引;
  • 支持物化视图,支持复杂查询,如:CTE、递归查询;
  • postgres_fdw支持聚集下推, 减少传输数据量;
  • 允许窗口函数执行增量排序;
  • 支持 just-in-time (JIT) 编译;
  • 支持创建覆盖索引;

随着大数据场景的深入,地理空间数据成为了重要的数据源。CloudberryDB通过引入PostGIS 2.X插件,进行了企业级的优化改进,实现了对空间数据类型、空间索引和空间函数的支持。

针对当前企业日益增长的实时分析需求,CloudberryDB研发了UnionStore新型存储引擎,通过将Redo日志持久化处理与replay操作来获取数据以提供外部访问,在保持顶层同一套引擎、底层同一套存储与数据的一致性设计的情况下,实现了近事务级的计算与查询实时性。

在CBO优化器方面,CloudberryDB重新打磨了基于代价的查询优化器,使得无论在云环境还是混合负载环境,都能生成更加智能和高效的查询计划。

基于CBO优化器,CloudberryDB支持基于代价模型的聚集下推能力,能够有效减少Join运算的数据量,大幅提升性能。同时利用runtime filter技术,可以在Join运算时利用小表协同过滤大表数据,带来Join运算的进一步提速。

此外,CloudberryDB自主研发了新型行列混存技术,在保证写入效率的情况下,利用查询时跳块过滤和预计算,大幅提升查询性能。CloudberryDB还利用向量化对算子进行了针对性的细致优化,带来了数量级的效率提升收益。

多重保护 让数据安全有保障

为确保企业数据的安全,CloudberryDB采用了统一认证、按需授权、安全存储、动态脱敏等方式,构建了多层级安全体系。企业可以根据自身需求,对数据库、模型、表文件进行加密认证:

  • 多种加密:支持MD5、SHA-256、Kerberos authentication多种加密算法;
  • 按需授权:针对不同的用户,在不同级别的对象(如:Schema、表、列、视图、函数等)上进行多种类型的权限设定;
  • 存储加密:底层存储支持数据加密组件 pgcrypto,实现敏感数据函数加密,支持数据库透明加密(TDE);
  • 动态脱敏:对于开发、测试、沙箱等场景,在实现数据高效共享的同时,保证敏感信息的安全防护,支持随机、SHA、自定义函数等多种脱敏算法,实现动态脱敏。

效果导向 让分析与智能更易用

在生态方面,CloudberryDB完美兼容第三方产品,与主流BI工具、挖掘预测工具、ETL工具、J2EE/.NET应用程序以及其他数据源/计算引擎均有良好连通。

图2:CloudberryDB产品兼容生态

大语言模型的兴起带动企业对AI技术的应用需求与日俱增。CloudberryDB内置了分布式并行向量数据存储、索引及检索功能,企业可以通过酷克数据自研的AI开发工具箱HashML,将本地的文本、图像等非结构化数据转化成向量表示,构建分布式大规模多模态向量知识库,让AI应用开发变得更加简单便捷。

图3:基于HashData构建分布式大规模多模态向量知识库

未来,CloudberryDB将以国际标准、高点定位、全球眼光的运营理念,构建开放、友好、中立的开源社区。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文字识别技术在未来会有怎样的发展?

随着科技的不断发展,文字识别技术也在不断地改进和完善。未来,文字识别技术将会在更多的领域得到应用,并且将会更加智能化、高效化和个性化。 首先,随着深度学习技术的不断发展,文字识别技术将会更加智能化。目前&…

ubuntu22下安装minconda

bing 搜索 canda install 找到官方网站 https://docs.conda.io/projects/miniconda/en/latest/ 这里我们安装minconda。 官网有安装方法。 mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh…

docker的基本管理和相关概念

docker的基本管理和概念 docker:开源的应用容器引擎。基于go语言开发的。运行在linux系统当中的开源的,轻量级的“虚拟机” docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的,可移植的,自给自足的容器 docke…

Java 读取超大excel文件

注意&#xff1a;此参考解决方案只是针对xlsx格式的excel文件&#xff01; Maven <dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version> </dependency>读取方式1…

Android画布Canvas矩阵Matrix放大裁剪Rect区域的Bitmap,Kotlin

Android画布Canvas矩阵Matrix放大裁剪Rect区域的Bitmap&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.h…

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…

CUMT--Java--线程

目录 一、线程 1、概述 2、Java线程模型 3、主线程 二、创建线程 1、继承Thread类 2、实现Runnable接口 3、使用Callable和Future接口 三、线程生命周期 1、新建和就绪状态 2、运行和阻塞状态 3、死亡状态 四、线程优先级 五、线程同步 1、非同步情况 2、同步…

浅谈WPF之控件模板Control Template和数据模板Data Template

WPF不仅支持传统的Windows Forms编程的用户界面和用户体验设计&#xff0c;同时还推出了以模板为核心的新一代设计理念。在WPF中&#xff0c;通过引入模板&#xff0c;将数据和算法的“内容”和“形式”进行解耦。模板主要分为两大类&#xff1a;数据模板【Data Template】和控…

创建加密分区或者文件

文章目录 [GParted 中已清除的分区与未格式化的分区](https://superuser.com/questions/706624/cleared-vs-unformatted-partition-in-gparted)创建加密分区解密创建的加密分区以便挂载格式化设备未具体的格式&#xff08;这里为ext4格式&#xff09;创建挂载点目录挂载加密的文…

java在线票务系统(选座)Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 在线票务系统&#xff08;选座&#xff09;管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要…

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第六节 理解垃圾回收GC,提搞程序性能

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第六节 理解垃圾回收GC&#xff0c;提搞程序性能 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基…

泛目录是干什么用的蚂蚁seo泛程序

泛目录是干什么用的蚂蚁seo泛程序目录 泛目录是一种常见的网站优化方法&#xff0c;属于黑帽技术的一种。它的核心原理是利用高权重的网站继承目录&#xff0c;然后快速获得收录与排名。这种方法可以帮助网站在搜索引擎中获得更好的排名&#xff0c;从而吸引更多的流量。 泛目…

右键菜单“以notepad++打开”,在windows文件管理器中

notepad 添加到文件管理器的右键菜单中 找到安装包&#xff0c;重新安装一般即可。 这里有最新版&#xff1a;地址 密码:f0f1 方法 在安装的时候勾选 “Context Menu Entry” 即可 Notepad的右击打开文件功能 默认已勾选 其作用是添加右键快捷键。即&#xff0c;对于任何…

云计算:OpenStack 配置云主机实例的资源实现内网互通

目录 一、实验 1. 环境 2.配置项目及用户 3.配置规格实例与镜像 4.配置VPC 5. 配置安全组 6. 创建云主机 cs_01 &#xff08;cirros系统&#xff09; 7.创建云主机 cs_02 &#xff08;cirros系统&#xff09; 8.创建云主机 cs_03 &#xff08;cirros系统&#xff09; …

小米路由器2(R2D) 安装 MIXBOX

1. 先刷开发版 ROM http://www1.miwifi.com/miwifi_download.html 进入上述网页&#xff0c;找到 R2D 点击下载 开发版 ROM 教程 看 下载按钮上边的 “刷机教程” 刷机教程 2. 开启SSH工具 登录自己的小米账号后&#xff0c;里面会显示出 自己的 root密码&#xff1b; 默认…

uniapp中的uview组件库丰富的Keyboard 键盘 用法

目录 基本使用 #隐藏键盘"."符号 #是否打乱按键的顺序 #如何控制键盘的打开和关闭&#xff1f; #如何监听键盘按键被点击&#xff1f; API #Props #Events #Slot 基本使用 通过mode参数定义键盘的类型&#xff0c;show绑定一个值为布尔值的变量控制键盘的弹…

每日一题:LeetCode-LCR 179. 查找总价格为目标值的两个商品

每日一题系列&#xff08;day 16&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

JVM 常用知识和面试题

1. 什么是JVM内存结构&#xff1f; jvm将虚拟机分为5大区域&#xff0c;程序计数器、虚拟机栈、本地方法栈、java堆、方法区&#xff1b; 程序计数器&#xff1a;线程私有的&#xff0c;是一块很小的内存空间&#xff0c;作为当前线程的行号指示器&#xff0c;用于记录当前虚拟…

InterSystems 数据库的存储过程存在哪里

我们都知道 InterSystems 的 Studio 可以创建存储过程。 但这个存储过程我们保存的时候是保存在哪里&#xff1f; 存储逻辑 如果我们在 Studio 创建存储过程的话&#xff0c;存储过程是存储在数据库上面的。 本地文件夹中是没有存储的。 选择系统下面的存储过程&#xff0c…

Keras多分类鸢尾花DEMO

完整的一个小demo&#xff1a; pandas1.2.4 numpy1.19.2 python3.9.2 import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import DataFrame from scipy.io import loadmat from sklearn.model_selection import train_test_split impor…