使用DLA SQL(兼容Presto) CU版分析HDFS数据

简介: 最近,DLA SQL发布了CU版,支持访问用户自建的HDFS,使得挖掘HDFS上面数据的价值成为可能。

背景介绍

阿里云数据湖分析(DLA)产品提供一站式的数据湖分析与计算服务,支持 ETL、机器学习、流、交互式分析,可以与OSS、数据库等多种数据源搭配使用,帮助用户构建统一、安全、高效、开放的数据湖解决方案。DLA SQL引擎基于Presto实现,可以实现高效的在线分析,主要面向用户探索式分析、报表以及轻量ETL的场景,支持OSS、RDS、AnalyticsDB、MaxCompute、TableStore、ElasticSearch等多种数据源。
针对云上OSS存储价格低廉、容量可以无限扩展的优点,我们围绕OSS上的数据做了很多优化和实用的功能,用户可将在线数据和实时增量数据同步到OSS中,然后对数据做深度的计算和分析;还可以使用元数据爬取的功能,自动为OSS上面的数据文件创建及更新数据湖元数据,方便分析和计算。


我们也注意到,有不少用户的数据是存放在HDFS上面的。作为最流行的开源分布式文件系统,HDFS具有高度容错性、高吞吐量、高可靠、可水平扩展等优点,适用于海量数据的存储,一直是许多分布式系统的底座,拥有完整的生态支持。然而,受限于DLA SQL的网络架构,在过去我们一直没有提供HDFS的支持。最近,DLA SQL发布了CU版,支持访问用户自建的HDFS,使得挖掘HDFS上面数据的价值成为可能。

操作步骤

我们以一个csv文件的简单查询为例。

1. 准备数据文件。

可以在本地创建一个新的文本文件example.txt,在其中粘贴如下内容:

7,8,9

然后执行如下命令将文件上传到HDFS(需要把172.16.199.0:9000替换成你的HDFS集群的host,下同):

hadoop fs -mkdir -p hdfs://172.16.199.0:9000/test/p/d=1
hadoop fs -copyFromLocal example.txt hdfs://172.16.199.0:9000/test/p/d=1/example.txt

2. 开通DLA SQL CU版
3. 绑定数据源网络。注意这里绑定的数据源网络和HDFS要在同一个vpc下面,确保网络可以联通。
4. 连接DLA,创建库:

CREATE DATABASE `my_hdfs_db`
WITH DBPROPERTIES (
  catalog = 'hive',
  location = 'hdfs://172.16.199.0:9000/test/'
)

这里location指定为库所在的目录。需要注意的是由于元数据系统和用户网络不能连通,DLA在建库/表时不会对目录做任何检查,所以需要用户自己保证这里指定的是一个可以从HDFS集群外部访问的正确路径。
关于建库语句的更多说明参见DLA SQL语法说明: https://help.aliyun.com/document_detail/72005.html?spm=a2c4g.11174283.6.587.4e37b1bfbH0xzX

5. 建表:

CREATE EXTERNAL TABLE p (
  `a` int,
  `b` int,
  `c` int
) partitioned by (d int)
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY ','
STORED AS `TEXTFILE`
LOCATION 'hdfs://172.16.199.0:9000/test/p/';

关于建表语句的更多描述参见DLA SQL语法说明:https://help.aliyun.com/document_detail/72006.html?spm=a2c4g.11186623.6.588.6388464dB88boC 。 注意HDFS表不支持auto.create.location属性。

6. 查询数据:

mysql> /*+ pool-selector=vc-test */ msck repair table p;
+-----------+-----------+
| Partition | Operation |
+-----------+-----------+
| d=1       | CREATED   |
+-----------+-----------+
1 row in set (16.47 sec)

mysql> /*+ pool-selector=vc-test */ select * from  p;
+------+------+------+------+
| a    | b    | c    | d    |
+------+------+------+------+
|    7 |    8 |    9 |    1 |
+------+------+------+------+
1 row in set (4.74 sec)

更多信息可参考DLA帮助文档。

使用DLA SQL分析HDFS数据的优势

对比通过自建Presto/Hive来分析HDFS上的数据,使用DLA SQL具有如下优势:

  • MySQL生态支持
  • 高可用
  • 开箱即用

MySQL生态的支持

使用自建的Presto/Hive,在选择外围客户端软件/BI软件/调度软件时,要考虑这些软件对Presto/Hive的支持,可选择的范围通常会有很大的限制。而DLA SQL兼容MySQL协议,可以使用MySQL生态庞大的周边软件设施,方便了用户,降低用户在这些周边软件上的投入。
image.png

高可用

在开源的Presto架构中Presto Coordinator是个单点,如果因为CPU/内存或者底层物理机的原因导致Coordinator不可用,会导致整个集群不可用,从而影响用户的使用,DLA SQL内置了多Coordinator HA,当一个Coordinator宕机,另外一个Coordinator会自动接管,保证整个集群的可用性:
image.png

开箱即用

DLA SQL通过在页面点击开通即可使用,CU版集群可以在一两分钟内创建好。然后进行数据查询,直接在DLA控制台就可以查询,或者任何支持MySQL协议的客户端都可以查询;最后因为DLA SQL支持了MySQL协议,云上有现成的BI服务: QuickBI,有现成的调度服务阿里云DMS, 阿里云DataWorks等等,因此BI报表展示以及任务的定时调度均可以在5分钟内完成;整个过程可以在30分钟内完成,真正做到开箱即用。


关于DLA SQL的更多介绍参见 https://developer.aliyun.com/article/770819

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
8月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
706 3
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
|
SQL 算法 数据挖掘
【SQL周周练】:利用行车轨迹分析犯罪分子作案地点
【SQL破案系列】第一篇: 如果监控摄像头拍下了很多车辆的行车轨迹,那么如何利用这些行车轨迹来分析车辆运行的特征,是不是能够分析出犯罪分子“踩点”的位置
316 15
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
447 12
|
SQL 数据库 开发者
ClkLog埋点分析系统支持自定义SQL 查询
本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。
ClkLog埋点分析系统支持自定义SQL 查询
|
SQL 存储 数据可视化
手机短信SQL分析技巧与方法
在手机短信应用中,SQL分析扮演着至关重要的角色
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
349 4
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
347 2
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
514 2
|
SQL 存储 分布式计算
HDFS数据(跨集群)迁移
HDFS数据(跨集群)迁移

热门文章

最新文章