写点什么

Simba Technologies 正将 SQL 的强大能力带向 Cassandra、Hadoop、BigQuery 和 MongoDB

  • 2013-01-30
  • 本文字数:1485 字

    阅读完需:约 5 分钟

SQL 的诞生是有原因的。从本质上说,它是一种为让非职业程序员查询数据库而设计的领域特定语言。“非职业程序员”有时指“临时程序员”,包括一般员工、业务分析师、秘书甚至偶尔是公司的副总裁。当一家公司从关系数据库迁移到 NoSQL 产品时,依然需要编写即时报告,这只会变得更加困难。

基于 ODBC 标准,Simba Technologies 正在将 SQL 的强大能力带向 Apache Cassandra、Apache Hadoop/Hive、Google BigQuery 和 MongoDB。最近,我们有机会访问了 Simba Technologies 的 CTO George Chow,谈到了该公司的 MongoDB 驱动。

InfoQ:首先,如何通过你们的 ODBC 驱动去操作 MongoDB 呢?这是个只读的产品吗,还是说也可以修改数据?

George Chow:我们的驱动目前是只读的。我们在产品的计划列表中有很多特性(也包括回写功能),但我们希望合作商和客户帮我们指定这些特性的优先级。

InfoQ:MongoDB 支持相当复杂的嵌套记录。作为 SQL 开发者,复杂的记录对我而言看起来是什么样子的?或者换句话说,复杂文档是如何映射到结果集中的列的?

George Chow:目前,该驱动能将复杂文档部分(如数组或嵌套文档)以 JSON 格式编码的 VARCHAR 暴露出来。我们正计划将它们分解为额外的非规范化列。比如,像下面例子中的简单文档:

复制代码
{ column1: "somevalue",
column2: "someothervalue",
somearray3: [ { text: "name1", author: "...", description: "..."
{ text: "name2"... }
...
{ text: "..."... }
{ text: "..."... }
{ text: "..."... } ]
}

将被分解为如下几列:

  • column1
  • column2
  • somearray3.text
  • somearray3.author
  • somearray3.description

InfoQ:这种将文档分解为基于 JSON 的 varChar 类型列的方法,看上去很容易使用,这是已经提供的功能还是将来要发布的功能?

George Chow:这个功能在我们将来计划的产品特性列表中。

InfoQ:你们的 MongoDB ODBC 驱动程序是否兼容 SQL Server 的链接服务器功能?如果兼容,是不是一个查询就能同时支持 SQL Server 表和 MongoDB 存储?

George Chow:我们已经能让驱动能直接访问普通的桌面应用,例如 Microsoft Excel 和 Tableau。我们希望任何 ODBC 应用都能使用这个驱动,但到目前为止,我们的精力都放在这两个应用上了。我们其他的大数据 /NoSQL 驱动(如支持 Hadloop/Hive 和 Google BigQuery 的驱动)也有类似甚至更强的功能。虽然我们没有优先考虑,但 Microsoft SQL Server 的链接服务器特性绝对是可用的。对于 NoSQL 数据源的链接服务器,你有什么看法?你认为这是一种很重要的桥接方法吗?

InfoQ:我想的是从 SQL Server 到 NoSQL 的过渡。例如,假设有一个存储过程,在数据库表上可以正常调用。如果使用服务器链接,不需要修改任何应用程序,就可以直接调用 MongoDB。我没想到从一个后端数据库过渡到另一个的更简单方法。

我没有真正想过让最终用户使用该驱动程序,当然它是很有意义的。目前并没有很多允许最终用户直接查询 NoSQL 数据库的工具。你能举例说明在 Excel 中如何查询以及结果是什么样的吗?

George Chow:为了让你知道驱动是如何工作的,考虑如下的数据集:

我会定义 ODBC 的数据源,并按如下方式定义模式:

最后,我可以从 Excel 中进行查询。比如,对任何数据源,Excel 将会将 Select * from “music”.”tracks”作为第一个查询。

查看英文原文 Simba Technologies is bringing the power of SQL to Cassandra, Hadoop, BigQuery, and MongoDB


感谢臧秀涛对本文的审校。

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

2013-01-30 05:212375
用户头像

发布了 81 篇内容, 共 24.3 次阅读, 收获喜欢 5 次。

关注

评论

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

C#多线程开发-线程基础 01

Andy阿辉

C# 多线程 8月日更 c#多线程

架构训练营第 1 期 模块六作业

高远

易华录 X ShardingSphere|葫芦 App 后台数据处理的逻辑捷径

SphereEx

数据库 开源

接口测试,负载测试,并发测试,压力测试区别

与风逐梦

软件测试 接口测试

带你走进MySQL全新高可用解决方案-MGR

vivo互联网技术

数据库 分布式 MySQL 高可用

比特币挖矿的未来只能依靠绿色能源?

CECBC

微信业务架构&学生管理系统架构选型

John

Rust从0到1-高级特性-函数和闭包进阶

rust 闭包 函数指针

最近很火的低代码到底是什么?

禅道项目管理

大前端 测试开发 语言 & 开发

Linux之tr命令

入门小站

Linux

LeetCode 每日一题「搜索插入位置」

陈皮的JavaLib

Java 面试 算法 LeetCode 8月日更

云小课|原来云备份不仅仅是能备份...

华为云开发者联盟

云备份 迁移数据 复制备份

“不服跑个分?” 是噱头还是实力?| 龙蜥技术

OpenAnolis小助手

内核 Cgroups CFS调度器

在线JSON转PHP Array工具

入门小站

工具

Spring的七大模块你了解吗?

4ye

Java spring 架构 后端 8月日更

最近很火的低代码到底是什么?

禅道项目管理

低代码 可视化 低代码平台

【浪潮云说】直播间第七期今日准时开播!

云计算运维

故事点数VS工时,研发工作量到底怎么算?

LigaAI

敏捷开发 故事点数 工时 研发工作量

秒懂消息队列

yuexin_tech

消息队列

centos7中docker安装

消失的子弹

Docker Kubernetes 云原生

06. 第三次AI浪潮:有何不同?

Databri_AI

人工智能

python实现两台不同主机之间进行通信(客户端和服务端)——Socket

Python研究者

8月日更

轮询锁在使用时遇到的问题与解决方案!

王磊

8月日更

适女化科技(二):让女性更安全的两条技术路径:软件硬件化与硬件软件化

脑极体

面试Go语言开发?让这本书帮你感动面试官!

博文视点Broadview

去哪儿网库存搜索在高并发场景下的探索

Qunar技术沙龙

技术 高并发 投票机制

区块链在供应链金融应用优势与四类常见模式

CECBC

内核热补丁,真的安全么?| 龙蜥技术

OpenAnolis小助手

操作系统 内核 热替换

Vue进阶(八十六):iframe 结合 window.postMessage 实现跨域通信

No Silver Bullet

Vue 8月日更 iframe

解析ThreadPoolExecutor类是如何保证线程池正确运行的

华为云开发者联盟

线程池 任务 注释 Worker类

突破四大要素  飞算SoFlu助力企业实现DevOps落地

SoFlu-JavaAI开发助手

DevOps 自动化 软件工程

Simba Technologies正将SQL的强大能力带向Cassandra、Hadoop、BigQuery和MongoDB_DevOps & 平台工程_Jonathan Allen_InfoQ精选文章