云原生数据湖探索DLI助力企业数据驱动决策|华为全联接2020
1. 趋势和挑战
1.1. 趋势
随着云化技术越来越成熟,企业开始逐步上云,其中辅助决策的数据分析业务也发生了如下几个方面的变化:
l 从结构化向多元化转变:随着数据采集技术的提高和存储设备的降价,半结构化、非结构化数据被越来越多的采集和存储,很多关键信息,如身份证(图片)中的个人信息,也需要被参与到日常的数据分析中
l 从单数据源向多数据源转变:除了读取存储业务数据信息的关系型数据库中的数据,存储全量数据的对象存储服务、存储多维数据的数据仓库服务等越来越多的数据源之间需要做一些联合查询
l 从统计分析向预测分析转变:BI/报表等是数据分析最常见的应用场景,这些场景更多的是去总结过去。随着AI技术的普及,如何从历史数据中预测未来的趋势成了数据分析师需要考虑的内容
1.2. 挑战
1.1.1. 多元化
半结构化数据主要包括CSV、XML、JSON等,非结构数据主要包括图像、音频、视频等,这些数据无法像传统结构化数据一样直接用数据库进行分析,需要按一定规则将其转化为结构化数据才能进行进一步分析。如身份证(图片),需要先通过图片识别提取身份证中的信息,再进行分析,整个过程比较繁琐。
1.1.2. 多数据源
为了实现不同特征的数据最高效地存储和分析,数据被分散存放在不同的存储服务中,不同的存储服务之间的数据形成了数据孤岛,如果想要做一些联合查询,需要在不同存储服务之间拷贝数据,不仅容易形成冗余存储,而且数据同步也是一个问题。
1.1.3. 预测分析
如果想要进行预测分析,势必需要用到AI机器学习算法。目前比较流行的开源机器学习框架主要有TensorFlow、PyTorch、Keras等。如果用户想在服务中直接调用AI框架,就需要提前手动登录机器,一台一台进行安装。如果后续删除/扩容集群,又需要重新进行安装。
2. 数据湖解决方案
2.1. 解决方案介绍
华为云数据湖探索(Data Lake Insight)DLI服务诞生之初,就是为了帮助企业以轻量级地方式快速解决这些挑战。这里说的轻量级,主要指两方面:
l 资源轻量级:DLI提供共享资源和独享资源两种资源,共享资源可以按需取用,不需要长期持有,支持按扫描量计费和按CU时(1CU = 1Core4GB)计费
l 开发轻量级:DLI主打会SQL就会大数据分析,批处理引擎Spark和流处理引擎Flink均提供SQL能力,用户日常80%以上的业务开发都可以直接使用SQL完成
数据湖探索(Data Lake Insight,简称DLI)是完全兼容Apache Spark和Apache Flink生态, 实现批流一体的Serverless大数据计算分析服务。DLI支持多模引擎,企业仅需使用SQL或程序就可轻松完成异构数据源的批处理、流处理等,挖掘和探索数据价值
2.2. 如何解决挑战
2.2.1 AI SQL
DLI内部封装了一些AI算子,可以使用SQL的方式直接调用AI能力。我们继续拿上面的身份证(图片)这个例子来举例,DLI内部封装了调用OCR的算子,通过SQL的方式调用OCR图像识别能力,建表时传入身份证路径及ORC相关信息,如:
CREATE TABLE id_cards(name STRING, age INT, city STRING) USING OCR OPTIONS ( path "obs://bucketName/id_cards", ocrApiUrl "/v1.0/ocr/plate-number", ocrEndpoint "https://ais.cn-north-4.myhuaweicloud.com", ocrRegion "cn-north-4")
使用id_cards表跟使用普通表一样,可以直接进行SELECT查询,DLI会自动调用OCR能力解析身份证获取相关属性。同时,可以对获取的相关属性使用SQL做进一步分析处理,如:获取上传身份证进行实名认证的游戏玩家的城市排名。
SELECT city, count(*) as c FROM id_cards GROUP BY city ORDER BY c
2.2.2 联合查询(跨源)
DLI目前支持绝大多数的数据源,如下图所示:
用户可以很方便地使用SQL来建表关联数据源,如
OBS数据源,只需要指定数据的存储格式和存储路径:
CREATE TABLE dli_to_obs (id INT, action STRING) USING CSV OPTIONS (path "obs://bucketName/filePath")
RDS数据源,只需要指定JDBC URL信息:
CREATE TABLE dli_to_rds USING JDBC OPTIONS ( 'url'='jdbc:mysql://to-rds-117405104-3eAHxnlz.datasource.com:3306', 'driver'='com.mysql.jdbc.Driver', 'dbtable'='rds_test.test1', 'passwdauth' = 'xxx', 'encryption' = 'true')
在DLI中建完对应数据源的跨源表后,就可以使用SQL直接对这些表进行联合查询,如:
SELECT t2.name, t1.action FROM dli_to_obs t1 JOIN dli_to_rds t2 ON t1.id = t2.id
借助联合查询功能,企业可以很方便地构建起企业的统一视图,更全面地完成业务创新和数据价值探索
2.2.3 支持K8S生态自定义镜像
DLI提供包含TensorFlow、PyTorch、Keras等这些开源AI框架的AI镜像,用户可以直接在业务代码中调用相关模型进行分析。同时,考虑到不同行业有不同的框架需求。DLI也提供带有Spark/Flink组件的基础镜像,用户可以基于基础镜像将自己需求的框架打包进去,上传到容器镜像服务SWR。DLI运行作业时,会自动从SWR中拉取对应名字的镜像。这种方式避免了用户手动重复安装依赖包,后续新增节点也无需做额外操作。
3. 总结
全托管Serverless服务DLI就像是我们日常使用的滴滴共享打车,我们不再需要为购买和保养私家车而支出固定成本。DLI除了AI SQL、联合查询、支持K8S生态自定义镜像这三个功能以外,还包括企业级多租户管理、批流一体、自动扩缩容等其它更多特性,下一次,我们再一一道来。
- 点赞
- 收藏
- 关注作者
评论(0)