共计 3229 个字符,预计需要花费 9 分钟才能阅读完成。
随着大数据时代到来和数字化的倒退,原始数据的非结构化比例越来越高,传统架构的数据库曾经无奈满足数据驱动业务的需要。
在这种背景下,湖仓一体架构的数据库日益受到关注。相比传统架构的数据库,湖仓一体架构有哪些劣势?如何确保湖仓之间数据顺畅流通?湖仓一体能为企业带来哪些扭转?
近日,HashData 资深数据库工程师陈亮和解决方案工程师张承万,通过网络直播分享了 HashData 湖仓一体设计理念与实际利用。
什么是数据湖?
在介绍湖仓一体之前,先要理解什么是数据湖?对于数据湖,微软、亚马逊等厂商各有不同的定义。总体来讲,数据湖应具备以下个性:
1. 数据湖是一个集中式的存储库。如上图所示,在数据湖的外围会有各类不同的利用或者零碎,这些利用产生的数据就好比是一条条小溪,不须要做任何的加工或结构化解决,能够间接汇聚到数据湖里。
2. 任意规模数据湖必须要提供任意规模的数据存储能力。现实状况下,数据湖的存储能力最好可能保留企业所有的数据,因为随着数据规模一直地减少,数据湖必须要反对超大规模的存储。而且,这个存储是能够任意扩大的。所以,数据湖底层的存储广泛都是采纳对象存储或者 hadoop 的 HDFS。
3. 任意构造数据湖能够存储海量任意类型的数据。这些数据蕴含结构化数据(行和列)、半结构化数据(如 CSV、日志、XML、JSON)、非结构化数据(如 email、文档、PDF 等)和二进制数据(如图像、音频、视频)。
4. 数据湖中的数据是原始数据,是业务数据的残缺正本,这些数据应该放弃在业务零碎中原来的状态。
5. 数据湖须要具备欠缺的数据管理能力(包含元数据),可能治理各类数据相干的因素,包含数据源、数据格式、连贯信息、数据 schema、权限治理等。如果不具备欠缺的数据的治理性能,数据湖就很容易变成数据沼泽。
6. 数据湖要具备欠缺的数据生命剖析治理能力。数据湖须要撑持各种各样的数据源,同时要从这些数据源中去取得全量的或者是增量的数据进行标准的存储,并可能把后果保留到适合的存储的引擎中,满足不同的利用的拜访需要。
数据湖是否代替数据仓库?
数据湖具备存储格局凋谢、有限拓展、老本低廉等长处,那是否能够用数据湖代替传统的数据仓库呢?
从应用模式来看,传统数仓应用的是写入型模式(schema on write),而数据湖是相同的,应用的是读取型的模式(schema on read),两者有着实质的差异。
应用模式的不同,导致数据湖与数据仓库的数据品质有着显著的差别。传统数仓写入数据的时候曾经对数据进行了查看、荡涤,能够保证数据准确利用到业务场景,是能够高度信赖的;而数据湖因为应用的是读取模式,数据在入库的时候没有通过严格荡涤和验证,容易呈现数据缺失、有效、反复等问题。
易用性方面,数据仓库内存储的是结构化的数据,能够应用 SQL 查问,应用老本绝对较低。而数据湖内的数据没有通过任何加工解决,每种类型的数据在应用时须要依照各自的规范或工具进行转换,应用老本绝对较高。
在性能方面,传统的数仓采纳固定的表构造,数据有着很好规范性,性能能够失去保障。数据湖因为存储数据的多样性,随着数据量的减少,数据管理的复杂性也会随之减少,性能体现不如传统数仓。
此外,传统数仓通过几十年的倒退,在数据安全方面曾经具备十分成熟的计划和技术。相比之下,数据湖作为新兴技术,且保留着大量原始数据,安全性还有待欠缺。
综上所述,数据湖并不能齐全取代数据仓库,两者各有偏重,各有善于,应用场景也不是完全相同的。在很多企业的理论利用当中,更多的是采纳两者并存的架构。
因而,如何无效施展数据湖与数据仓库各自的劣势,实现真正的“湖仓一体”,成为企业在数字经济时代所面临的挑战。
HashData 作为“湖仓一体”技术倡导者,基于湖仓一体模式构建,买通了数据仓库和数据湖,将数据仓库的高性能及治理能力与数据湖的灵活性、开放性交融了起来,底层反对多种数据类型并存,能实现数据间的互相共享,下层能够通过对立封装的接口进行拜访,可同时反对实时查问和剖析,为企业进行数据治理带来了更多的便利性。
HashData 湖仓一体翻新与实际
为了买通数据仓库和数据湖,HashData 提供了内部表和连接器两类组件。
通过内部表组件,能够和一般文件、对象存储、HDFS 进行集成,用户在不依赖任何第三方工具的状况下,简略地通过 SQL 语句即可实现包含数据加载、数据备份、归档数据长期查问等数据工程工作。
除常见的 gpfdist 内部表外,HashData 还反对 OSS、HDFS 等多种内部表协定与数据格式。内部表⽅案成熟稳固容易了解,且数据只须要进⾏⼀次数据复制即可屡次拜访,然而数据实时性较差,难以反对多样化业务需要,通常用于绝对动态、大量数据集成。
另一种计划是连接器。HashData 连接器组件目前曾经实现和 Kafka、Spark 以及 Hive 集成。
Hive 连接器 Hive 连接器会在 HashData 主节点部署 Hive Connector 插件,通过连贯 Hive Metastore Service,获取 Hive 表的元数据信息,利用获取到的元数据信息,基于 gphdfs 协定,在 HashData 创立相应的内部表。
Hive 连接器反对的 Hive 表格局:TEXT 和 ORC,Hive 版本 2.x、3.x;次要用于 Hive 联邦查问、数据湖(基于 Hive)拜访等场景。
Kafka 连接器 Kafka 连接器通过订阅卡夫卡的 topic 来实现,依据设置的 Task 最大值,启动多个 Task 并行读取 Partition 数据,读取后将记录缓存,到肯定工夫或记录数,通过 gpfdist 加载到 HashData。
Kafka 连接器通过同步 offset 的形式,来避免出现数据反复、失落;Kafka 连接器通常用于流数据采集场景。
Spark 连接器 Spark 连接器在 Spark 端应用,HashData 须要创立 OSS 表空间,供连接器独占应用。通过这个表空间,连接器调用 DataSource 的 Read 或 Write 办法,读取 HashData 数据,或长久化后果到 HashData。
Spark 连接器 Spark 版本为 2.3.x、2.4.x。Spark 连接器次要撑持数据科学实验场景为 Spark 提供历史数据;利用 Spark 资源进行简单计算。
连接器组件时效性好,适宜按需调用,及时获取最新数据,然而数据每次被拜访调⽤时,都须要进行一次传输,海量数据整体性能不⾼,通常被用于和内容可变、数据量可控的数据源集成。
HashData 的数据集成组件次要用于撑持以下利用场景:构建数据联邦,无需搬迁数据,能够通过规范 SQL 实现多数据源联邦查问;连贯各类数据源,实现数据采集,且满足企业批量和实时的时效性要求。通常来说,内部表能够满足企业对跑批业务的需要,而连接器能够很好地满足对实时性比拟高的业务需要;实现 Spark 计算引擎集成,构建企业级湖仓一体的数据分析平台。
借助内部表和连接器这两类组件,HashData 能够帮忙企业实现 Data Fabric 架构,在混合云或者多云的环境中,实现动静治理不同的数据源,并基于 MPP 引擎进行并行、高速的数据拜访,实现与企业混合数据生态的无缝集成。
HashData 湖仓一体解决方案,可能高效施展湖仓一体低成本、高可用、易拓展等劣势,帮忙企业建设对立治理、湖仓一体的云原生数据分析平台。
目前,HashData 云数仓已广泛应用于金融、电信、政府、能源、交通、互联网等畛域。
在能源畛域,HashData 与中油瑞飞独特构建了中国石油“幻想云”平台。其中,“幻想云”数据湖集中管理了中国石油历史勘探开发、生产经营等 6 大畛域及物探钻井等 15 个业余畛域数据,涵盖结构化、非结构化等 8 类数据,总量达 5PB,真正实现了海量数据入湖、治理、共享、剖析等性能。
同时,“幻想云”应用多种翻新技术,可能以较低成本实现数据管理,只需单个 100GB 节点即能够开始运行。随着业务的倒退,当数据量增大到 PB 级,利用控制台可能轻松实现扩大反对 1PB 及以上的用户数据。