构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)

背景

相较传统的重量级OLAP数据仓库,“数据湖”以其数据体量大、综合成本低、支持非结构化数据、查询灵活多变等特点,受到越来越多企业的青睐,逐渐成为了现代数据平台的核心和架构范式。

数据湖的核心功能,简单地可以分为数据存储与数据查询计算两个部分,在云端可以有多种的实现选择。在之前的文章中,我们曾介绍Azure上Azure Data Lake Storage (ADLS Gen1)和Azure Data Lake Analytics (ADLA)这一对可配合使用的服务。这对黄金搭档正是为数据湖而生,分别对应着大数据存储和查询计算的能力。

在数据湖存储服务方面Azure继续着快速发展的脚步,在重新梳理了产品思路之后,将ADLS与同为存储服务的Azure Storage进行了大力整合。的确,在底层存储基础设施方面,ADLS完全可以复用Azure Storage久经考验的存储机制和成熟实现,并在此基础上支持企业级大数据分析的特性并进行针对性优化。在这一新体系下的成果,则是微软于18年开放预览、于19年2月正式对外发布的Azure Data Lake Storage Gen2 (下称ADLS Gen2)。第二代ADLS的口号是“不妥协的数据湖平台,它结合了丰富的高级数据湖解决方案功能集以及 Azure Blob 存储的经济性、全球规模和企业级安全性”。

那么,全新一代的ADLS Gen2实际体验如何?在架构及特性上是否堪任大型数据湖应用的主存储呢?这正是本文希望探讨的话题。

ADLS Gen2初体验

百闻不如一见,我们首先来尝试创建一个ADLS Gen2的实例。需要注意的是,与第一代ADLS是独立服务不同,ADLS Gen2已经集成于大家熟悉的存储账号(Storage Account)的功能体系之中。在建立存储账号时,请注意勾选"Advanced"选项卡下"Hierarchical namespace"(中文译作“层次结构命名空间”)这个看似不起眼的选项:

当这个选项被勾选时,创建出的存储账号中的原Blob存储部分就自然被耳目一新的ADLS Gen2文件系统所替代了:

从这里的产品措辞可以看出,“层次结构”和“文件系统”是反复被强调的ADLS Gen2的最大特点,也是它有别于传统Blob对象存储的最大不同。传统对象存储虽然从路径上看起来也具有“目录”的虚拟概念,但其实目录通常并不实际存在,可认为仅是Blob对象路径字符串中的一部分,因为对象存储本质上是key-value形式的存储。而ADLS这样的“文件系统”级别的存储能力上,目录则是一等公民可以设置访问权限等元数据(并且能够被子节点继承),也可以使目录重命名等操作变得十分便捷迅速。这样的特性无疑使ADLS更适合作为企业数据湖这样应用的存储介质。

让我们继续操作。点击"Data Lake Gen2 file systems"来到文件系统的管理界面,可看到支持创建多个File System。我们先新建一个File System,这个步骤非常类似Blob存储中建立Container:

再尝试点击进入刚建立的cloudpickerfs这个文件系统,会发现界面上几乎空空如也,提示我们需要使用客户端工具Azure Storage Explorer才可进行操作:

不必对于这个简单的界面过于失望,ADLS Gen2毕竟还是一个初生的产品,相信之后会得到不断丰富。事实上在国际版Azure上已经有集成在Portal中的Storage Explorer,目前还在预览状态,相信之后也会在中国区发布。

我们打开最新版本的Azure Storage Explorer(该工具成熟度很高,非常推荐),可以看到轻松地识别出了刚才建立的文件系统:

尝试建立目录及上传一些文件,毫无问题:

ADLS Gen2特性测试:权限控制

如果说刚才我们走通了最基本的流程,接下来我们则需要对ADLS Gen2的特性进行深度的测试,尤其是针对其“文件系统”的设计目标和大数据应用的典型场景来进行实操体验。在本文中,我们先聚焦ADLS Gen2的权限控制

我们知道传统的存储账户主要依靠Access Key和SAS token等方式来进行身份认证,并且在权限控制的粒度上比较粗放,只能设置到整个存储账户或是Blob容器的粒度。而在ADLS Gen2中,一般推荐使用集成度更佳的Azure AD进行访问身份认证(Access Key和SAS token也同样支持),而权限方面的控制则可以非常精细:不仅支持文件系统粒度的RBAC权限指定,而且引入了类似POSIX的ACL体系,使得用户可以将权限设置下沉到目录乃至文件的级别。这样一来,ADLS这个大数据存储服务相当于提供了类似Linux文件系统的权限管理能力,极大地满足了企业级数据平台在资源管控和权限治理方面的需要。

接下来我们对于权限进行一个基本尝试。我们在cloudpickerfs文件系统中新建zone-a和zone-b两个目录来模拟企业不同业务领域的数据。

然后我们在Azure AD中新建一个用户Karl:

现在我们希望Karl拥有整个文件系统的读权限,但还能够对zone-a进行修改和写入。该需求应该如何实现呢?在ADLS Gen2上可以轻松地结合使用RBAC和目录ACL来达到目的。我们先为Karl添加文件系统粒度的Storage Blob Data Reader角色,这使得Karl可以基于RBAC权限机制读取cloudpickerfs这个文件系统中的所有数据:

然后再在Azure Storage Explorer中定位到zone-a,对该目录赋予Karl读写及执行权限,这样Karl就能够实现对于zone-a这个目录的完全控制。可以看到,这里的操作体验与Linux/Unix中的ACL权限机制非常接近:

(图中Default一栏对应的是目录中子项将继承的权限)

权限设置完成后,我们接下来使用一台Linux VM通过AzCopy这个工具来进行相关权限的实操验证。AzCopy作为微软官方的文件复制工具,已经全面地添加了对于ADLS Gen2的支持。

首先我们使用Karl的身份进行AzCopy的登录,注意需指定tenant-id参数为用户Karl所属AD的id:

./azcopy login --tenant-id xxxxxxxx-yyyy-zzzz-zzzz-xxxxxxxxxxxx
To sign in, use a web browser to open the page https://microsoft.com/devicelogin
and enter the code ******** to authenticate

这里按照AzCopy要求打开浏览器进行身份认证

成功后AzCopy现在就拥有Karl这个用户的权限了。我们先验证其全局读的能力,尝试下载一个cloudpickerfs文件系统下根目录的文件:

./azcopy cp https://cloudpickerdlg2.dfs.core.windows.net/cloudpickerfs/credit_card_loans.csv .
INFO: Scanning...
INFO: Using OAuth token for authentication.

Job e3ed4551-713a-2e40-5e47-72b5ee3e3280 has started
0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total,

Job e3ed4551-713a-2e40-5e47-72b5ee3e3280 summary
Elapsed Time (Minutes): 0.0333
Total Number Of Transfers: 1
Number of Transfers Completed: 1
Number of Transfers Failed: 0
Number of Transfers Skipped: 0
TotalBytesTransferred: 60991
Final Job Status: Completed

可以看到这个读取并下载的任务顺利完成。我们再测试向zone-a写入的权限是否被正确地开启了,把刚才下载的本地文件上传到zone-a文件夹:

./azcopy cp ./credit_card_loans.csv https://cloudpickerdlg2.dfs.core.windows.net/cloudpickerfs/zone-a/
INFO: Scanning...
INFO: Using OAuth token for authentication.

Job a9dc4d08-c279-974e-707d-cceb3fad3720 has started
0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total,

Job a9dc4d08-c279-974e-707d-cceb3fad3720 summary
Elapsed Time (Minutes): 0.0333
Total Number Of Transfers: 1
Number of Transfers Completed: 1
Number of Transfers Failed: 0
Number of Transfers Skipped: 0
TotalBytesTransferred: 60991
Final Job Status: Completed

再次获得了成功!最后,为了验证Karl仅拥有zone-a的写入权限,我们尝试向另一个目录zone-b写入看看效果:

./azcopy cp ./credit_card_loans.csv https://cloudpickerdlg2.dfs.core.windows.net/cloudpickerfs/zone-b/
INFO: Scanning...
INFO: Using OAuth token for authentication.

Job 484e24c1-366b-e94b-79b9-8f6351a4d503 has started
0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total,

Authentication failed, it is either not correct, or expired, or does not have the correct permission -> github.com/Azure/azure-storage-azcopy/azbfs.newStorageError, /home/vsts/work/1/s/azbfs/zc_storage_error.go:41
===== RESPONSE ERROR (ServiceCode=AuthorizationPermissionMismatch) =====
Description=403 This request is not authorized to perform this operation using this permission., Details: (none)
   PUT https://cloudpickerdlg2.dfs.core.windows.net/cloudpickerfs/zone-b/credit_card_loans.csv?resource=file&timeout=901
   Authorization: REDACTED
   User-Agent: [AzCopy/10.2.1 Azure-Storage/0.1 (go1.12; linux)]
   X-Ms-Cache-Control: []
   X-Ms-Client-Request-Id: [d8504958-5666-42c1-6041-6db6602713a9]
   X-Ms-Content-Disposition: []
   X-Ms-Content-Encoding: []
   X-Ms-Content-Language: []
   X-Ms-Content-Type: [text/csv; charset=utf-8]
   X-Ms-Version: [2018-11-09]
   --------------------------------------------------------------------------------
   RESPONSE Status: 403 This request is not authorized to perform this operation using this permission.
   Content-Length: [227]
   Content-Type: [application/json;charset=utf-8]
   Date: [Sat, 10 Aug 2019 16:33:21 GMT]
   Server: [Windows-Azure-HDFS/1.0 Microsoft-HTTPAPI/2.0]
   X-Ms-Error-Code: [AuthorizationPermissionMismatch]
   X-Ms-Request-Id: [206085ca-601f-0035-2699-4f617e000000]
   X-Ms-Version: [2018-11-09]

也如我们所期望的那样,向zone-b这个未授权目录的写入失败了。本次实验充分证明,ADLS Gen2大数据文件系统在ACL方式的加持下,可以轻松实现对目录层级的细粒度权限控制。

总结

Azure Data Lake Storage Gen2是微软Azure全新一代的大数据存储产品,专为企业级数据湖类应用所构建。它被称为“不妥协的存储基础设施”,是因为它继承了Azure Blob Storage易于使用、成本低廉的特点,同时又加入了目录层次结构、细粒度权限控制等企业级特性。值得一提的是,这个新近发布的PaaS服务也已经在Azure中国区正式上线。如果您近期有基于Azure构建数据平台的需求,ADLS Gen2非常值得考虑。

在云间拾遗的本次实践中,我们从无到有地创建了ADLS Gen2实例并进行了上传下载等基本操作;我们还基于一个相对复杂的需求场景深度体验了其权限控制特性。整个的测试体验是相当流畅的。在本文的下篇,我们还将进一步关注ADLS Gen2的目录原子操作能力,以及大数据集群挂载场景的表现。敬请期待。

“云间拾遗”专注于从用户视角介绍云计算产品与技术,坚持以实操体验为核心输出内容,同时结合产品逻辑对应用场景进行深度解读。欢迎扫描下方二维码关注“云间拾遗”微信公众号,或订阅本博客。

原文地址:https://www.cnblogs.com/yunjianshiyi/p/adls-gen2-part1.html

时间: 2024-10-06 19:05:31

构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)的相关文章

Data Lake Analytics,大数据的ETL神器!

0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析,可以不用做任何ETL.数据搬迁等前置过程,实现跨各种异构数据源进行大数据关联分析,从而极大的节省成本和提升用户体验.关于Data Lake的概念. 终于,阿里云现在也有了自己的数据湖分析产品:https://www.aliyun.com/product/datalakeanalyt

BI、数据仓库、数据湖和数据中台内涵与差异

http://km.ciozj.com/Detail.Aspx?AI=98314&CI=2 随着大数据技术的不断更新和迭代,数据管理工具得到了飞速的发展,相关概念如雨后春笋一般应运而生,如从最初决策支持系统(DSS)到商业智能(BI).数据仓库.数据湖.数据中台等,这些概念特别容易混淆,本文对这些名词术语及内涵进行系统的解析,便于读者对数据平台相关的概念有全面的认识. 一 数据仓库 数据仓库平台逐步从BI报表为主到分析为主.到预测为主.再到操作智能为目标. 商务智能(BI,Business In

Data Lake Analytics账号和权限体系详细介绍

一.Data Lake Analytics介绍数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake.基于数据湖做分析,可以不用做任何ETL.数据搬迁等前置过程,实现跨各种异构数据源进行大数据关联分析,从而极大的节省成本和提升用户体验. 阿里云数据湖分析产品Data Lake Analytics(简称DLA):https://www.aliyun.com/product/datalakeanalytics产品文档:h

什么是Azure Data Share

当今这个世界,数据被视为重要的战略资产,许多公司需要通过简单且安全的方式将其数据与客户和Vendor共享. 目前,客户可以通过许多方式实现此目标,例如使用文件服务器. FTP.电子邮件.API 等.通常情况下,如果通过 FTP 或通过建立组织自己的 API 基础结构来共享数据,则预配和管理费用会很昂贵. 使用这些方法进行大规模共享时,会有相关的管理开销. 同时公司也可能容易失去与其共享数据的人员的记录. 大多数情况下,公司不仅需要对其所共享数据的数据安全性负责,还希望能够以简单方式控制.管理和监

数据湖(Data Lake)前世今生解析(上)

EMC收购视频存储设备厂商Isilon Systems完善EMC在分布式Scale-Out架构NAS技术方面的不足,近几年isilon在媒资.大数据和HPC场景得到客户的一致认可,也在去年和另外一个产品线Povital Hadoop推出了数据湖解决方案,应对互联网浪潮下客户对半结构化和非结构化数据的处理.存储需求. 在讲数据湖之前,我们一起在回顾下数据库和数据仓库.数据库指在线交易数据系统.一般指OLTP事务处理,数据库中的数据也是进行了分类的:数据仓库一般指通过ETL工具抽取分类中的离线数据,

【免费公测中】为数据赋予超能力,阿里云重磅推出Serverless数据分析引擎-Data Lake

摘要: 近日,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics,Data Lake Analytics,帮助更多不具备分析能力的存储服务,赋予其分析的能力. 近日,阿里云重磅推出Serverless数据分析引擎-Data Lake Analytics,Data Lake Analytics,帮助更多不具备分析能力的存储服务,赋予其分析的能力. 从生活中的购物交易,到工业上的生产制造,再到社交网络媒体信息.企业化管理决策等等,大数据成为当前经济社会最重要的前进

O`Reilly FreeBook:数据湖构架 简介

O`Reilly 的 < Architecting Data Lakes Data Management Architectures for Advanced Business Use Cases >,全面介绍了数据湖的构架.工作机理.构建与管理.规划.价值.展望等诸多方面的内容. 其目录如下: 1. Overview What Is a Data Lake? Data Management and Governance in the Data Lake How to Deploy a Dat

为什么你的安全数据湖项目会失败

真搞不懂,一些团队由于某些原因居然认为他们可以建立一个安全数据湖和/或他们自己的大数据安全分析工具.让我来告诉你们会发生什么--失败. 提示一下数据沼泽笑话.想想数据浮渣.讨论一下在数据池里撒尿.结果是一样的--不会成功. 好吧,让我缓和一点来说说--0.1%的人将会成功(即使这种成功只是一定程度上的).(这个百分比是近似值,不是为了提供数据,意在增加这个"职位"戏剧性的影响.) 为什么我会对此如此坚持呢?在我们的UEBA研究期间,我们遇到了几个正在从DIY/定制安全分析迁移到COTS

Hadoop高级编程之为Hadoop实现构建企业级安全解决方案

本章内容提要 ●    理解企业级应用的安全顾虑 ●    理解Hadoop尚未为企业级应用提供的安全机制 ●    考察用于构建企业级安全解决方案的方法 第10章讨论了Hadoop安全性以及Hadoop中用于提供安全控制的机制.当构建企业级安全解决方案(它可能会围绕着与Hadoop数据集交互的许多应用程序和企业级服务)时,保证Hadoop自身的安全仅仅是安全解决方案的一个方面.各种组织努力对数据采用一致的安全机制,而数据是从采用了不同安全策略的异构数据源中提取的.当这些组织从多个源获取数据,接