写点什么

Concurrent 发布 Lingual——一种用于 Hadoop 的领域专用语言

  • 2013-03-28
  • 本文字数:2048 字

    阅读完需:约 7 分钟

Cascading 是一个流行的应用框架,是一个面向企业数据流的模式语言。Cascading 可以定义复杂的数据处理流程,创建面向复杂数据的框架。这些框架可被用来作为领域专用语言(DSLs) 进行脚本编写。

Lingual 最新增加到Cascading 扩展套件中的新的基于SQL 的领域专用语言,整合了 Optiq (一个动态数据管理框架)的能力和 Cascading 基于 Hadoop 的执行。Lingual 的目标,是降低熟悉 SQL、JDBC 和传统 BI 工具的开发人员和数据分析师使用 Hadoop 的门槛。它所提供的能力,被公司誉为“真正用于 Cascading 和 Hadoop 的 SQL”。

据 Chris Wensel(Cascading 技术总监兼创始人)表示,Lingual 的目标是提供符合 ANSI 标准的 SQL 接口,该接口被设计为与所有知名的 Hadoop 发行版兼容——无论是自建的还是在云环境中的。它可以从传统数据仓库中“剪贴”已有的 ANSI 标准 SQL 代码,这样一来,用户就能够直接访问被锁在 Hadoop 集群中的数据。它也可以从 Hadoop 乃至大量各种不同的 BI 工具中查询并导出数据。

使用 Lingual,公司可以通过标准的技术把已有的技术和产品投资平移到 Hadoop 上,立刻就能够发挥它们的价值。如果分析师和开发人员熟悉 SQL、JDBC 或者传统的 BI 工具,可以现在马上很容易地在 Hadoop 上创建大数据应用,从而大幅提升工作效率,提前将产品推向市场。

Lingual 并不打算为 Hadoop 集群中上 PB 级别的数据提供次秒级(sub-second)的响应时间。公司更为重视的目标是,简化应用向 Hadoop 迁移的过程——实际上,最大的挑战主要集中在关系型数据库或大规模并行处理数据库向 Hadoop 的迁移。

Lingual 发行版包括

  • 在 Cascading 框架上层构建的 ANSI 标准 SQL 解析器与优化器
  • 大规模非结构化数据之中的关系型数据编目视图
  • 用来测试和提交 Hadoop 查询的 SQL shell
  • 以 JDBC 驱动程序集成现有的 BI 工具和应用服务器

InfoQ 有幸与 Concurrent 股份有限公司的技术总监兼创始人 Chris K Wensel 讨论了 Lingual。

InfoQLingual 看上去很像 Apache Hive。您能谈一下 Lingual 相比 Hive 最主要的优势吗?

WenselLingual 首要的目标集中在 ANSI 标准的兼容性上。Hadoop 从来都不是单独使用的,你既可以把数据从 HDFS 位桶(bit-bucket)转入备选工具(如 R 或 Mondrian),也可以把现有的工作负载转移到 Hadoop 上,以发挥其性价比的优势。无论是哪种情况,很大的可能性是你本来就熟悉 SQL,或者你正迁移的“应用”或查询已经是基于 SQL 来做的,甚至还有可能是你正使用的工具只能识别 SQL。所以,提供基于标准的 SQL 接口非常重要。

为了达成这个目标,我们做了很多测试。我们现在已经从 Mondrian 测试套件中提取了 6000 多个复杂 SQL 查询,并且我们已经达到了 90% 的测试覆盖,而且,还计划从流行的工具中吸收增加更多的测试。

Lingual 并不打算做成一个提供人类级别响应时间的专用查询工具。因此,我们建议使用一个适当的分布式 MPP(大规模并行处理)风格的数据库。我不建议在非 Hadoop 设计的场景下使用 Hadoop。

这就是说,我们提供了一个遵循 JDBC 驱动程序的标准,可以使用 Cascading 的“本地模式”去测试非本地数据的查询,这种方式不需要依赖 Hadoop 去提升测试速度。

在 ANSI 标准依丛性目标之上,Lingual 运行于 Cascading 的上层,所以任何针对 Cascading 的改进,或者任何新的“规划师”(除了专门为 Hadoop 准备的),以及本地内存处理,连同 Cascading 现有的健壮性、灵活性、可扩展性、标准性(很多公司已经在计算场景中应用了标准化的 Cascading)一起,都将被 Lingual 继承过来。

InfoQ:我们从现有的产品描述上还无法非常清晰地了解 Lingual 如何定义和维护关系型数据库编目。您可以解释一些实现细节吗?它是否需要准备好特定的文件,或者使用类似于 Hive SerDe 的机制去提供现有数据与表结构定义的映射?

Wensel在最初的发布里有一个内置的“单用户”编目。我们将在短期内提供 HCatalog 集成及(或)一个备选的方案。当前,元数据编目是一个琐细的(并可由人工编辑的)JSON 文档,它可以保存在本地文件系统或 HDFS(甚至 S3)上,可以允许基本的共享。

至于读 / 写数据方面,Lingual 将整合提供所有 Cascading(以及 Cascalog、Scalding 等等)的支持。这些都通过 Lingual 的命令行接口进行管理。

用户不必使用任何“Cascading 特有的”格式去查询数据。

用户可以从命令行中把一个文件简单地注册为一张表,如果一切顺利的话,在该文件中可以找到任何元数据(列和类型)信息。我们将在接下来的工作中把它逐步细化,把编目工具中最新的可支持的数据格式也添加进来。

InfoQ Lingual 的安全模型是如何考虑的?它是否基于文件访问权限?是否可以被 JDBC 驱动程序支持?

Wensel目前没有考虑去扩展 Hadoop 当前的安全模型。

查看英文原文: Concurrent Releases Lingual, a SQL DSL for Hadoop


感谢杨赛对本文的审校。

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

2013-03-28 09:592171

评论

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

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

洛神灬殇

redis 数据同步 1月日更 RedisShake

不懂任务调度系统,快来看这篇

华为云开发者联盟

后端 开发 华为云 企业号 1 月 PK 榜

全景剖析阿里云容器网络数据链路(二):Terway EN

阿里巴巴云原生

阿里云 容器 云原生

DNS 代理?Pipy:这我也可以

Flomesh

Pipy 可编程代理 流量管理

KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目

阿里巴巴云原生

阿里云 开源 云原生

4个因素会影响LED显示屏的安全防火问题

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

一站式云原生体验|龙蜥云原生ACNS + Rainbond

北京好雨科技有限公司

Kubernetes 云原生

成功上岸字节全靠这份Redis技术笔记,深入浅出值得一看

小小怪下士

Java redis 程序员 面试 字节

年度重磅!《2022华为开发者宝典》免费下载

华为云开发者联盟

开源 华为云 鲲鹏 昇腾 企业号 1 月 PK 榜

全景剖析阿里云容器网络数据链路(一):Flannel

阿里巴巴云原生

阿里云 容器 云原生

软件测试/测试开发 | 跨平台设备管理方案 Selenium Grid

测试人

软件测试 自动化测试 测试开发 selenium Grid

送给SQL开发者的一份新年礼物!一款100%自主研发的纯Web化SQL开发工具——SQL Studio 1.0正式发布

雨果

sql 数据库管理工具 SQL开发工具

漏洞优先级排序的六大关键因素

SEAL安全

安全 漏洞 企业号 1 月 PK 榜 优先级排序

市面上数一数二的双机热备系统当属Skybility HA!

行云管家

高可用 厂商 双机热备 双机热备系统

Spring Boot 3.0横空出世,快来看看是不是该升级了

程序那些事

Java spring 程序那些事 spring boot3

桌面云是什么?有什么优势?桌面云是云桌面吗?

行云管家

云计算 桌面云 云桌面

让开源和标准成为云原生的确定性力量

阿里巴巴云原生

阿里云 开源 云原生

Apache Spark + 海豚调度:PB 级数据调度挑战,教你如何构建高效离线工作流

白鲸开源

海豚调度 Apache Spark 大数据 开源

Excelize 2.7.0 发布, 2023 年首个更新

xuri

golang GitHub 开源 编程 Excelize

ThreadLocal源码解析及实战应用

京东科技开发者

Java 源码 技术 后端 企业号 1 月 PK 榜

使用服务网格提升应用和网络安全

HummerCloud

服务网格 云原生安全

基于单机最高能效270亿参数GPT模型的文本生成与理解

阿里云大数据AI技术

自然语言处理 机器学习 GPT 企业号 1 月 PK 榜

Hive查询语句

mm

解决Redis缓存穿透/击穿/雪崩以及数据一致性的方案

风铃架构日知录

Java redis 缓存穿透 缓存雪崩 数据一致性

使用无代码构建移动应用程序

间隔

软件测试 | 测试开发| 跨平台设备管理方案Selenium Grid

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

实录 | MegEngine 大 Kernel 卷积工程优化实践

MegEngineBot

深度学习 开源 卷积 MegEngine 大 Kernel

简单聊聊Redis中的几种Java客户端,以及它们的优缺点!

程序员小毕

数据库 redis 程序员 面试 后端

EMQX企业版正式入驻华为云云商城,成为华为云联营联运合作伙伴

EMQ映云科技

物联网 IoT 华为云 云端 企业号 1 月 PK 榜

从一个Demo说起Dubbo3

宋小生

dubbo RPC Dubbo3

聊聊Cookie、Session、Token 背后的故事

华为云开发者联盟

前端 华为云 企业号 1 月 PK 榜

Concurrent发布Lingual——一种用于Hadoop的领域专用语言_大数据_Boris Lublinsky_InfoQ精选文章