数据湖和SQL并不矛盾
极客时间编辑部
讲述:丁婵大小:6.39M时长:04:39
数据量的增加推动了技术的更新和范式的变化。与此同时,SQL 仍然是主流。随着数据的增长和复杂性的增加,SQL 比以往任何时候都更适合分析和转换数据湖中的数据。最近,解决方案架构师雪莉·乔西(Shirish Joshi)发文探讨了如何将 SQL 用于数据湖和新的数据生态系统。以下为重点内容。
你还记得 NoSQL 吗?
NoSQL 数据库的出现带来了巨大的可伸缩性和简单性。
如果我们必须高速处理大量的数据,我们会被告知 NoSQL 是唯一的出路。供应商一直在喋喋不休地讨论 SQL 和中间件代码之间的阻抗失配问题。
现在我们发现,大多数 NoSQL 供应商在花了几年时间来贬低连接之后,都引入了 SQL 层。一些供应商还引入了 SQL 方言,使情况变得更糟了。
在 NoSQL 上引入这个 SQL 层似乎是出于对新一代数据库的恐惧,比如谷歌 Spanner,以及提供 JSON、XML 作为一等数据类型的数据库供应商。
那 Hadoop 呢?
Hadoop 为开发人员提供了 map-reduce 接口,这带来了一些巨大的进步,但同时也带来了很多问题(见 DeWitt 和 Stonebraker 的文章 MapReduce:一次大倒退)。
在 Hadoop 上使用 map-reduce 处理数据还有很多需要改进的地方。性能调优、数据倾斜处理、获得最佳吞吐量,所有这些都需要太多的裸机代码更改。
经过多年的“大数据时代”,以及一些 Hadoop 的兼并和破产,Hadoop 技术现在更多地存在云中,而不是在本地环境中。现在组织中已经不经常看到完整的 Cloudera 或 HortonWorks 栈了。相反,少数几种技术蓬勃发展,现在已广泛用于云数据栈。
数据湖上的 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 这样的调度器。
以上就是今天的内容,希望对你有所帮助。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- leslie两者之间的关系应当是互补:就像OLTP和OLAP之间的关系。
收起评论