通过EMR+DLF数据湖方案,可以为企业提供数据湖内的统一的元数据管理,统一的权限管理,支持数据湖的多种管理如数据生命周期、湖格式自动优化、存储分析等。同时支持多源数据入湖以及一站式数据探索的能力。本文为您介绍EMR+DLF数据湖方案具体实践步骤。
背景信息
采用EMR+DLF数据湖解决方案,相对传统EMR数据湖方案有下列优点:
DLF提供数据湖跨引擎的统一的,全托管免运维的元数据服务。
支持可视化的元数据管理,以及多版本管理和回退。
支持可视化一键元数据迁移。
支持元数据全文检索。
支持元数据DataProfile,如文件大小、行数、访问频次、小文件数量、文件冷热度、有效文件数等。
支持除EMR开源引擎外的更多计算引擎,如MaxCompute、Flink、Hologres等多种引擎。
DLF提供丰富的细粒度数据权限控制。
支持按照数据目录、数据库、数据列、函数等资源的各种细粒度权限点的可视化配置。
支持与EMR中多种计算引擎集成,包括Spark、Hive、Presto、Impala多种计算引擎。
提供丰富的数据湖管理能力。
支持多种维度的数据生命周期管理,可以对数据按照冷热、更新时间等自动化归档,节省存储成本。
支持针对Delta数据湖格式的自动化存储优化策略,节省存储成本。
EMR+DLF数据湖解决方案整体架构
其他说明
目前DLF服务已开通的地域,请参见已开通的地域和访问域名。
关于DLF收费,请参见计费模式。
操作流程
步骤一:创建DLF统一元数据的EMR DataLake集群
创建EMR集群,并使用DLF作为元数据。
创建E-MapReduce集群,输入选项如下:
业务场景:选择数据湖。
可选服务:需要至少选中Hive组件,其他组件根据业务需要选择。
元数据:选择DLF 统一元数据。
DLF数据目录:选择默认的DLF Catalog,或者新建一个数据目录(Catalog)。如果您没有开通DLF,会提醒您先开通DLF产品。
继续其他配置完成EMR集群创建。详情请参见创建集群。
步骤二:初始化元数据
初始化元数据分为以下三种情况:
步骤三:初始化数据
初始化数据一般常见的几种情况如下:
已有大数据集群,需要进行数据迁移。此时可以考虑通过JindoDistCp工具将已有集群的数据迁移到OSS中。
从RDS、MySQL、Kafka等业务系统接入数据。此时可以考虑通过实时计算Flink实现数据入湖到DLF中。可参考如何在Flink中管理DLF Catalog。
步骤四:通过Spark/Presto引擎查询DLF表
通过SSH登录到EMR集群的master-1-1节点。
通过spark-sql查询表departments。
通过presto查询表departments。
步骤五(可选):开启数据权限控制
有些业务场景对数据安全要求较高,需要对数据湖内的数据权限进行合理控制。此时您需要以下两步来完成数据权限的开启:
以上两个步骤完成后,您的整个EMR集群的数据访问将会受到数据权限控制,如果没有权限的用户访问集群数据,将会被拒绝。
此时可以参考DLF的新增授权,为相应的用户配置合理的数据权限。
步骤六(可选):生命周期管理
您可以通过生命周期管理对数据湖中的数据库、数据表配置数据管理规则,可以基于分区/表创建时间、分区/表最近修改时间、分区值三种规则类型,对数据定期进行OSS存储类型转换,从而节省数据存储成本。具体操作和说明请参考生命周期管理。