NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

使用 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:262596
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

三年成功实现7次OTA升级!MANA六大闭环成毫末产品迭代强大助力

科技大数据

毫末智行稳健收官2022“三大战役” 火力全开打响2023“四大战役”

科技大数据

社交视频直播一对一交友APP源码之Android如何打包APP

山东布谷科技胡月

语音直播app开发

怎么用vscode创建工程

eng八戒

ide vscode koa

《零基础学 Python(2023 版)》学习笔记 Day0

IT蜗壳-Tango

Python编程 IT蜗壳教学

元器件温度系数(ppm/℃)是什么?

不脱发的程序猿

元器件温度系数

VSCODE 配置远程调试环境

eng八戒

ide vscode 服务器

无线配置多一个路由器作为家庭wifi的无线热点?

eng八戒

家庭网络 热点

选购LED显示屏时需要注意8个技术参数

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

盘点毫末智行AI DAY:智算中心成立、六大闭环、MANA五大模型...助力毫末智能驾驶产品快速迭代

科技大数据

极客时间运维进阶训练营第十周作业

老曹

TSDB助力井下位置服务

CnosDB

数据库 IoT 时序数据库 开源社区 infra

HAOMO AI DAY速递:六大闭环、MANA五大模型助力毫末智能驾驶产品快速迭代

科技大数据

用 SwiftUI 实现 AI 聊天对话 app - iChatGPT

37手游iOS技术运营团队

ios SwiftUI openai ChatGPT

Guitar Pro2024最新免费版吉他打谱软件下载

茶色酒

Guitar Pro Guitar Pro8 guitar pro2023

Button(按钮)与ImageButton(图像按钮)

智趣匠

Android Studio button imagebutton

多位AI学者、行业大牛、企业家齐聚2023 HAOMO AI DAY分享自动驾驶行业前沿洞见

科技大数据

【Redis技术探索】「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)

洛神灬殇

redis 数据同步 1月日更 数据同步工具 RedisShake

直播交友一对一视频语音APP项目系统架构和模式分析(成品1对1源码)

山东布谷科技胡月

视频语音直播app开发 语音直播交友系统搭建 社交app开发 1v1语音系统搭建 视频社交APP开发

运维训练营第十一课作业

好吃不贵

线上压测

agnostic

毫末智行稳健收官2022“三大战役” 火力全开打响2023“四大战役”

科技大数据

智能汽车

数据湖(十七):Flink与Iceberg整合DataStream API操作

Lansonli

数据湖

尝试阅读理解一份linux shell脚本

eng八戒

bash Shell Linux Kenel 脚本

使用 App Store Connect API 批量创建内购商品

37手游iOS技术运营团队

AppleParty 苹果派 App Store Connect API 批量创建内购IAP 批量上传 IAP

MySQL字符集和排序规则详解

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

中国自动驾驶行业最大智算中心亮相 毫末顾维灏:毫末车端感知架构实现跨代升级

科技大数据

汽车

【Redis 技术探索】「数据迁移实战」手把手教你如何实现在线 + 离线模式进行迁移Redis数据实战指南(离线同步数据)

洛神灬殇

redis 1月日更 RedisShake Redis-shake

OpenTelemetry日志体系

骑牛上青山

Java 日志 log 调用链 OpenTelemetry

追求技术极致 探索落地先机 毫末智行城市NOH公布未来产品规划

科技大数据

新能源汽车

2023-01-07:hyper/docker-registry-web是registry的web界面工具之一。请问部署在k3s中,yaml如何写?

福大大架构师每日一题

云原生 k8s k3s 福大大

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