写点什么

数据湖和 SQL 并不矛盾

  • 2020-01-08
  • 本文字数:1766 字

    阅读完需:约 6 分钟

数据湖和SQL并不矛盾

数据量的增加推动了技术的更新和范式的变化。与此同时,SQL 仍然是主流。随着数据的增长和复杂性的增加,SQL 比以往任何时候都更适合分析和转换数据湖中的数据。本文探讨了如何将 SQL 用于数据湖和新的数据生态系统。本文要点:随着数据的增长和复杂性的增加,SQL 比以往任何时候都更适合分析和转换数据湖中的数据。


本文最初发布于 TowardsDataScience,经原作者授权由 InfoQ 中文站翻译并分享。

记得 NoSQL 吗?

NoSQL 数据库的出现带来了巨大的可伸缩性和简单性。


如果我们必须高速处理大量的数据,我们会被告知 NoSQL 是唯一的出路。供应商一直在喋喋不休地讨论 SQL 和中间件代码之间的阻抗失配问题。


现在我们发现,大多数 NoSQL 供应商在花了几年时间来贬低连接之后,都引入了 SQL 层。一些供应商还引入了 SQL 方言,使情况变得更糟。


在 NoSQL 上引入这个 SQL 层似乎是出于对新一代数据库的恐惧,比如谷歌 Spanner,以及提供 JSON、XML 作为一等数据类型的数据库供应商。

Hadoop 呢?

Hadoop 为开发人员提供了 map-reduce 接口,这带来了一些巨大的进步,但同时也带来了很多问题(见 DeWitt 和 Stonebraker 的文章MapReduce:一次大倒退)。


在 Hadoop 上使用 map-reduce 处理数据还有很多需要改进的地方。性能调优、数据倾斜处理、获得最佳吞吐量,所有这些都需要太多的裸机代码更改。


人们尝试了多种受 SQL 启发的方法:


  • Apache Pig:类 SQL 语法、FOREACH 代替 FROM、GENERATE 代替 SELECT;

  • Hive: 用于 SQL-in-Hadoop 的类 MySQL 语法、将 SQL 转换为 map-reduce;

  • Drill、Impala、Presto 和 Pivotal 的 HAWQ:SQL-on-Hadoop,绕过 map-reduce;

  • Spark SQL:SQL on Spark;

  • Apache Phoenix:SQL on HBase;

  • Hadoop 作为已有 DB 的外部表:Oracle Big Data SQL、Teradata SQL-H。


经过多年的“大数据时代”,以及一些 Hadoop 的兼并和破产,我们现在看到了这些技术的幸存者。Hadoop 技术现在更多地存在云中,而不是在本地环境中。现在,在组织中已经不经常看到完整的 Cloudera 或 HortonWorks 栈了。相反,少数几种技术蓬勃发展,现在已广泛用于云数据栈。

数据湖上的 SQL

Stonebraker 很久以前就指出,数据库的性能问题和可伸缩性与 SQL 关系不大,而更多地与数据库本身的设计有关(NoSQL的讨论与SQL无关)。


SQL 的最大优点是它提供了熟悉性和分析数据的表达能力。SQL 的健壮性以关系代数和集合理论为基础。


对于数据湖,我们可以看到以下这些技术。


  • Hive 元数据存储是人们喜爱的数据目录。

  • 在 SQL 层,Presto 作为一个查询层脱颖而出,并在 Amazon Athena、Google Cloud DataProc、Qubole 中得到了广泛应用。

  • Spark 和 Spark SQL 的应用也很广泛。

  • Hadoop 文件系统(HDFS)用的不那么多了,云存储(Azure Blob、谷歌云存储、AWS S3)更受欢迎,CSV、Avro 和 Parquet 文件格式也更受欢迎了。

云数据仓库和数据湖

在原始文件系统上存储的经济性推动了数据湖的创建。SQL 被用于分析数据。


Amazon RedShift Spectrum 可以查询 S3 数据。


Snowflake DB 可以使用 VARIANT 列在数据库中存储 XML、JSON 或 ORC 数据,还可以使用外部表指向 S3 中的数据。


外部表还支持谷歌 BigQuery 和 Azure SQL 数据仓库。

SQL 和 ELT (提取 加载 转换)

数据处理的 ELT(提取 加载 转换)范式将数据转换步骤放在最后。首先从源系统提取数据并将其加载到数据库中。


旧的 ETL 方法 RBAR(逐行处理)与关系数据库执行的基于集合的处理形成了直接的对比,而基于集合的处理构成了 SQL 的基础。


ELT 中,我们现在从源数据库中提取数据并将其放入数据湖中。


SQL 转换在云数据仓库或使用 Presto 完成,并将转换后的数据加载到目标表。


通过 GoldenGate、AWS DMS,或者使用 Workato/Jitterbit/StitchData 等工具或 Kafka 等健壮的事件管道,一点点地向数据湖或数据仓库输送数据。将源系统和加载区域之间的转换最小化。然后使用 SQL 将这些数据转换并加载到仓库和分析层。


ELT 工具链使用 DAG(有向无环图)工具,如 Apache AirFlow 和无服务器函数,而不是旧的 ETL 工具链中类似 AutoSys 这样的调度器。


DBT 是在转换领域流行的另一个工具。像 FiveTran 和 Matillion 这样的云数据处理工具也使用 SQL 和 ELT。Domo 序列化 SQL 来创建转换管道。Looker 基于 LookML 生成 SQL。


原文链接


https://towardsdatascience.com/data-lakes-and-sql-49084512dd70


2020-01-08 08:002321
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 542.2 次阅读, 收获喜欢 1978 次。

关注

评论

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

马蹄链DAPP合约项目系统开发技术方案(成熟技术)

I8O28578624

草图大师;SketchUp Pro 2022 mac中英双语

真大的脸盆

Mac 3D 建模软件 建模工具 3d建模

内核不中断前提下,Gaussdb(DWS)内存报错排查方法

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

SpringBoot整合RocketMQ,尝尝几大高级特性!

Java你猿哥

RocketMQ Spring Boot 后端 ssm Java工程师

深度解析微服务高并发:适配SpringMVC框架适配模块及实现原理

Java你猿哥

Java spring ssm Spring MVC Java工程师

安装Red Giant Maxon App时提示错误11025:无法连接到Red Giant服务

理理

红巨人特效插件 Red Giant 后期制作

分析机构称AMD的PC市场空间正被蚕食,英特尔第12/13代酷睿处理器更具竞争力

科技之家

模拟经营类游戏:城市天际线Cities Skylines 怎么设置无限金币?

理理

城市天际线 Mac城市建造类游戏 Cities: Skylines

龙蜥开发者说:给芯片以系统、给系统以社区 | 第 17 期

OpenAnolis小助手

开源 操作系统 芯片 社区 龙蜥开发者说

数禾科技 AI 模型服务 Serverless 容器化之旅

云布道师

阿里云

一点点进步的OceanBase数据库文档!

OceanBase 数据库

数据库 oceanbase

ADDS-DepthNet:基于域分离的全天图像自监督单目深度估计

飞桨PaddlePaddle

让GitHub低头认错的这份阿里内部绝密Java面试八股文手册有多强?

Java你猿哥

面试 ssm 面经 八股文 Java八股文

2023年新疆等级保护测评机构新名单看这里!

行云管家

等保 新疆 等级测评机构

LED灯珠对LED显示屏8大影响

Dylan

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

自动调优工具AOE,让你的模型在昇腾平台上高效运行

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟 企业号 3 月 PK 榜

批量上传iOS应用程序截图的实用技巧

雪奈椰子

ByteHouse MaterializedMySQL增强优化

字节跳动数据平台

数据库 云原生 Clickhouse 企业号 3 月 PK 榜

火山引擎DataTester:构建增长闭环,3-5人即可搭建企业增长团队

字节跳动数据平台

AB testing实战 A/B测试 企业号 3 月 PK 榜

一文看懂数据产品经理

Taylor

产品 #数据产品经理 #数据产品 #职业发展 #产品思维

简述几种常用的排序算法

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜

合约跟单项目系统开发(技术源码)丨合约量化系统开发技术(成熟案例)

I8O28578624

过等保堡垒机选择云堡垒机可以吗?有推荐的吗?

行云管家

等保 等级保护 行云管家 过等保

硬核!阿里P8自爆春招面试核心手册,Github上获赞65.7K

Java你猿哥

Java 面试 面经 八股文 春招‘

修复“现在无法将USB设备连接到虚拟机,稍后尝试连接此USB设备 ”的方法

理理

usb pd18虚拟机 PD虚拟机不能联网

如何解决Mac苹果上运行VMware Fusion虚拟机提示“未找到文件”

理理

VM虚拟机 未找到文件 VMware Fusion虚拟机 苹果系统虚拟机

多功能PDF编辑工具:Nitro PDF Pro激活版

真大的脸盆

Mac PDF Mac 软件 PDF编辑 pdf编辑工具

Icons8 for mac(logo图标素材大全)

理理

Icons8 logo图标 素材大全 Icons8 for mac

软件测试/测试开发丨app自动化之如何参数化用例

测试人

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

阿里高工珍藏版“亿级高并发系统设计手册(2023版)”面面俱到,太全了!

采菊东篱下

Java 并发

软件测试/测试开发丨APP自动化Android特殊控件Toast识别

测试人

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

数据湖和SQL并不矛盾_AI&大模型_Shirish Joshi_InfoQ精选文章