全栈算力,加速行业AI落地 了解详情
写点什么

使用 Google Supersonic 查询列存储数据库

  • 2012-10-22
  • 本文字数:1021 字

    阅读完需:约 3 分钟

Supersonic 是一个面向列存储数据库的查询引擎库,它提供了一组数据变换原语。而且 Google 宣称,因为“大量使用了高速缓存感知算法、SIMD 指令和矢量化执行,使之能够开发出现代超级流水线处理器的能力与资源”,这些数据变换原语“超级快速”。Supersonic 有以下主要特性:

  • 高速缓存感知
  • 指令流水线
  • 使用 SIMD (Single Instruction Multiple Data,单指令多数据)
  • 定制数据结构
  • 失效处理
  • 支持标准的列存储操作
  • 专门化的表达式

Supersonic 支持大量的操作(operation),这些操作既可以用于整个表,也能组合为操作树:

  • 聚合:SUM、MIN、MAX、COUNT、CONCAT、FIRST、LAST
  • 计算:将表达式(下面有更多关于表达式的信息)转换为操作
  • 过滤:过滤列存储表的行
  • 生成:创建一定数量的没有列的行
  • 限制:限制从前一操作所得结果的行数
  • 排序:将前一操作的结果排序

与操作不同的是,表达式(expression)应用于行级,负责在单个的列值上执行真正的计算。表达式也可以组合成表达式树。下面列出一些表达式:

  • 末端:叶节点,其中包含的是基本类型,如 ConstInt32、ConstBool、ConstDataType、RandInt32 等
  • 算数运算:Plus、Minus、Multiply 等
  • 比较运算:Equal、Less、Greater、IsOdd 等
  • 日期 / 时间运算:Now、Day、Month、Year、Hour、Minute、Second、AddDays 等
  • 逻辑运算:And、Or、AndNot、Xor、Not
  • 控制流:If、IsNull、IfNull、Case
  • 数学运算:Exp、Sin、Cos、Abs、Round、Floor、Trunk、Sqrt、Power 等
  • 字符串:ToString、Concat、Length、Trim 等

Supersonic 使用 C++ 编写,而且没有内置的数据存储格式,但是现在有“很强的意图”来创建一个。数据当前保存在内存中。

Supersonic 查询引擎基于 Apache License 2.0 许可发布,可以从它的 Google Code 网站下载。为了说明针对列存储表如何使用操作与表达式,源代码中提供了大量的例子

附图是Supersonic 团队给出的,表示按如下方式处理一个行数为1M 的表所得到的带有基准测试结果的操作树: 一个视图的获取要花费60 微秒(速度为16.7G rows/s),随后过滤用掉1.03 毫秒(速度为1M rows/s),后面是一个耗时25 微秒的计算(速度为41.2M rows/s),然后结果与另一个过滤结合,整个测试耗时22.1 毫秒。

查看英文原文 Querying Columnar Databases with Google Supersonic


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-10-22 06:262608
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 130.7 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

开源之夏2023中选结果公示,504名高校生将投入开源项目贡献

openEuler

Linux 开源 操作系统 openEuler 实习

如何充分利用制作游戏原型的免费资产,加速游戏开发

龙智—DevSecOps解决方案

游戏开发 游戏引擎

一个斜杠引发的CDN资源回源请求量飙升

互联网工科生

CDN

支撑 “千万设备日活” 的创米数联 7 年微服务架构演进之路

阿里巴巴云原生

阿里云 微服务 云原生

软件测试 | 性能工具规划

测吧(北京)科技有限公司

测试

RocketMQ on openEuler 提供高性能消息队列的稳定性解决方案

openEuler

Linux cpu 操作系统 openEuler 内核

打破孤岛运营,增强企业凝聚力

智达方通

数据孤岛 全面预算管理 企业绩效管理 信息孤岛 预算管理

基于低代码平台从0-1搭建工单系统

这我可不懂

低代码 可视化 企业开发系统 JNPF

什么是Buck电源?矽力杰SQ51201值得关注

华秋电子

软件测试 | 性能测试范围

测吧(北京)科技有限公司

测试

AIGC+灵活用工|延长行业生命线、改写传统用工模式,还得看AI的!

TE智库

人工智能 人力资源 灵活用工 AIGC 生成式AI

AIGC+客服|智能客服上岗即失业?AI对话背后的学问大着呢

TE智库

人工智能 智能客服 AIGC 生成式AI

OSPO才是企业拥抱开源的正确选项——适兕访谈录

开源雨林

开源 OSPO LFAPAC

金融科技领先者Broadridge选择CloudBees CI来加速软件交付

龙智—DevSecOps解决方案

ci 持续集成

Windows 系统下怎么获取 UDP 本机地址

高端章鱼哥

软件测试 | 性能测试整体规划

测吧(北京)科技有限公司

测试

英特尔以领先产品,为AI领域客户提供高性能和高性价比

E科讯

华为云Classroom一站式教学实践平台,开启云端教学新征程

华为云PaaS服务小智

云计算 华为云 线上教学 线上培训

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

极狐GitLab

DevOps 云原生 DevSecOps KubeSphere 安全左移

《2023 信创软件品牌影响力报告》发布!融云入选「信创生态」代表厂商

融云 RongCloud

IT 品牌 信创 数字 融云

扫码登录认证技术原理介绍及实践

互联网工科生

程序员

龙蜥白皮书精选:面向芯片研发和验证的操作系统 SiliconFastOS

OpenAnolis小助手

开源 操作系统 芯片 龙蜥社区 SiliconFastOS

数据交换不失控:华为云EDS,让你的数据你做主

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 6 月 PK 榜

华秋一文带你读懂eMMC芯片引脚定义和工作原理

华秋电子

Vue3从入门到精通

EquatorCoco

vue.js Vue vue3.0

国内高校最大的云上科研智算平台在复旦大学正式上线

新云力量

智能 计算 复旦大学 云上科研智算平台

免费沉浸式Twitter翻译工具 ZipZapAI用AI打破语言障碍

Ricky

ChatGPT GPT-4 ChatGPT4 chatgpt插件

需要转变ITSM策略的12个信号,您中了几个?

龙智—DevSecOps解决方案

浮点数-Float-Double转二进制在线工具

入门小站

Bean生命周期的扩展点:Bean Post Processor

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

一次不规范HTTP请求引发的nginx响应400问题分析与解决

高端章鱼哥

nginx HTTP

使用Google Supersonic查询列存储数据库_开源_Abel Avram_InfoQ精选文章