课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的企业都引入了大数据等相关技术,而本文我们就通过案例分析来简单了解一下,数据湖的特点与架构分析。
数据湖一般具有以下特点:
数据湖使用统一的存储系统,可以存储结构化数据(数据库的表),半结构化数据(日志,JSON,xml等),也可以存储非结构化数据(图像音视频等二级制格式);
数据由外部系统进入数据湖时,不需要经过清洗转化后再加载进数据湖(ETL),而是采用ELT,直接进行抽取和加载;
数据湖中的数据,在后续需要针对具体场景进行分析时,才会对湖中已经存在的原始数据进行transform转化到特定的结构进而进行后续分析,即采用的是schemaonread而不是schemaonwrite;
由于采用了ELT和schemaonread,所以数据湖落地初期不强调数据建模,不需要事先根据领域知识进行详细的模型设计,所以数据湖相对数据仓库,项目落地速度更快;
数据湖具有开放性,其开放性体现在以下几点:
数据湖具有开放性,体现在数据湖中的数据可以使用多种文件格式进行存储(如开源的orc/parquet/avro等等);
数据湖具有开放性,体现在数据湖虽然内置了存储系统,但一般会对外开放底层存储系统的访问接口;(如可以直接访问HIVE底层表对应的HDFS/S3的文件);
数据湖具有开放性,也体现在数据湖中的数据可以使用多种分析引擎进行分析(本质还是因为数据湖底层存储层是开放的,所以可以支持spark/presto/flink等多种分析引擎);
数据湖开放性的特点,带来了以下优缺点:
通过底层存储系统的开放性,使得数据湖存储的数据结构可以是结构化的,可以是半结构化的,也可以是完全非结构化;
底层存储系统的开放性,使得上层可以对接多种分析引擎,各种引擎也可以根据自己针对的场景有针对性地进行各种性能优化;
但底层存储系统的开放性,也使得很多高阶的功能很难实现,例如细粒度(小于文件粒度)的权限管理和统一化的文件管理,所以数据湖中如何对数据进行全生命周期的细粒度的治理是一个难题(包括统一的完善的元数据管理和血缘体系等);
数据湖与上云无关,底层存储可以采用文件系统也可以采用对象存储,常见的实现有:
自建开源Hadoop数据湖架构(常见);
云上托管Hadoop数据湖架构(如阿里和AWS的EMR数据湖);
云上非hadoop数据湖,如Azure数据湖,阿里云OSS数据湖,Alluxio虚拟数据湖等(对象存储);
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。