数据仓库有哪些存储方案(数据仓库数据湖)
数据仓库有哪些存储方案(数据仓库数据湖)1.3.3云原生数据湖的特征通用数据湖架构(3)lakehouse:直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。1.3.1数据湖特征1.3.2数据湖架构
一、基本概念1.1数仓发展历史数据湖是以集中方式存储各种类型数据,提供弹性的 容量和吞吐能力,能够覆盖广泛的数据源,支持多种计算与处理分析引擎直接对数据进行访问的统一存储平台。它 能够实现数据分析、机器学习,数据访问和管理等细粒度的授权、审计等功能。
数据湖对存取的数据没有格式类型的限制,数据产生后,可以按照数据的原始内容和属性,直接存储到数据湖, 无需在数据上传之前对数据进行任何的结构化处理。数据湖可以存储结构化数据(如关系型数据库中的表),半结 构化数据(如 CSV、JSON 、XML、日志等),非结构化数据(如电子邮件、文档、PDF 等)以及二进制数据 (如图形、音频、视频等)
1.2数据湖、数据仓、湖仓一体发展历程(1)数据仓库,适合结构化数据,但不适合非结构化数据。
(2)数据湖:支持多种格式存储数据库。但不支持事务处理、不保证数据质量in过去缺乏一致性/隔离性,无法实现混合追加和读取数据,以及完成批处理和流式作业。
(3)lakehouse:直接在用于数据湖的低成本存储上实现与数据仓库中类似的数据结构和数据管理功能。
1.3数据湖1.3.1数据湖特征
- 保真性,有一份业务原始数据,对业务数据一模一样完整拷贝。
- 灵活性,读取型Schema,数据逻辑处理延后
- 可管理,数据管理能力,包括数据源、数据连接、数据格式、数据schema(库/表/列/行),权限等。
- 可追溯,数据生命周期管理,定义、接入、存储、处理、分析、应用全过程,可清楚重现数据完整产生过程和流动过程。
- 丰富计算引擎,批处理 流式技术 交互式分析 机器学习。
- 多模态的存储引擎
1.3.2数据湖架构
通用数据湖架构
1.3.3云原生数据湖的特征
1.4数据湖与数据仓库对比首先,数据捕获时未定义架构。数据湖在功能上可以实现各种类型数据的存储,数据湖中的数据可以是非结构 化的、未处理的形态,数据可以在确定需要使用时才会对数据进行对应处理与转换;而数据仓库则通常存放的是经 过处理的、结构化的数据,数据存储的 Schema 在数据存储之前就需要被定义好。
其次,存储到数据湖中的数据通常会按照原始形态直接存储,随着业务和使用场景的发展,会使用不同的计算 存储的数据进行分析与处理,数据湖中的数据在一个企业组织中通常会被多个不同应用、系统和部门使覆盖的场景广泛并且范围也会动态延展,因此需要提供更多的灵活性以适应快速变化的应用场景;数据通常使用场景是在数据收集期间就已经明确,数据仓库通常集中在 BI、业务、运营等商业决策相关场 仓库也可以把已经存在的数据转换到新场景,但在灵活性方面不如数据湖,需要有更多的数据转换时间 投入。
1.5批处理和流式处理区别:
(1)数据范围:批处理对数据集中的所有或大部分数据进行查询或处理。流处理对滚动时间窗口内的数据或仅对最近的数据记录进行查询或处理。
(2)数据大小 ,批处理针对的是大批量数据(如GB或者PB级别)。流处理针对的是单条记录或包含几条记录的微批数据(如KB或者MB)。
(3)性能 ,批处理所需的时间一般是几分钟至几小时的延迟。流处理所需的时间几毫秒至几秒的延迟。
(4)场景 ,批处理使用的场景分析起来很复杂。流处理只需要简单的响应调用,聚合和滚动指标。
二、阿里大数据治理平台2.1产品架构DataWorks(大数据开发治理平台)是阿里云重要的PaaS(Platform-as-a-Service)平台产品,为您提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。
DataWorks支持多种计算和存储引擎服务,包括离线计算MaxCompute、开源大数据引擎E-MapReduce、实时计算(基于Flink)、机器学习PAI、云原生数据仓库 AnalyticDB for PostgreSQL,云原生数据仓库AnalyticDB for MySQL,并且支持用户自定义接入计算和存储服务。DataWorks为您提供全链路智能大数据及AI开发和治理服务。
- 全面托管的调度
- DataWorks提供强大的调度功能,详情请参见调度配置。
- 支持根据时间、依赖关系,进行任务触发的机制。详情请参见时间属性配置说明和配置同周期调度依赖。
- 支持每日千万级别大规模周期性任务调度,其将根据DAG关系准确、准时地运行。
- 支持分钟、小时、天、周、月、年多种调度周期配置。
- 完全托管的服务,无需关心调度的服务器资源问题。
- 提供隔离功能,确保不同租户之间的任务不会相互影响。
- DataWorks提供丰富的节点类型,详情可参考:选择数据开发节点。全面的引擎能力封装,让您无需接触复杂的引擎命令行。并提供自定义节点插件化机制,支持您扩展计算任务类型,自主接入自定义计算服务,同时,支持您结合DataWorks其他节点进行复杂数据处理。
- 数据集成:依托DataWorks中数据集成的强力支撑,支持超过20种数据源,为您提供稳定高效的数据传输功能。详情请参见数据集成。
- 数据转化:
- 依托引擎强大的能力,保证了大数据的分析处理性能。例如:创建ODPS SQL节点、ODPS spark、EMR Hive、EMR MR等节点。
- 提供通用类型节点 ,结合引擎节点可实现复杂数据分析处理过程。例如:赋值节点、do-while、for-each等节点。
- 支持自定义节点,通过自定义计算服务进行数据开发。关于自定义节点配置详情,可参考文档:概述。
- 可视化开发DataWorks提供可视化的代码开发、工作流设计器页面,无需搭配任何开发工具,简单拖拽和开发,即可完成复杂的数据分析任务。详情请参见界面功能点介绍。只要有浏览器有网络,您即可随时随地进行开发工作。
- 监控告警运维中心提供可视化的任务监控管理工具,支持以DAG图的形式展示任务运行时的全局情况,详情请参见运维中心。您可以方便地配置各类报警方式,任务发生错误可及时通知相关人员,保证业务正常运行。详情请参见智能监控。
2.2.1数据集成
数据集成有两个定位,第一是数据中台对接外界核心枢纽,即对接云上系统之间数据流转的打通;第二是跨云跨网一站式数据传输,即在数据集成中,所有数据的进出都可以提供一站式的解决方案。
批量配置数据源和批量配置同步任务。
向导模式和脚本模式,向导模式配置数据源后,参数自动生成。
过程:选择数据源-添加同步任务。
规则类型,8种,例如,目标表前缀;新增字段、字段赋值;目标表子端替换;
同步任务运行方式:测试运行、补数据运行和周期运行。
同步速度调优:任务切分(切分键、作业并发数)、资源占用;
- 切分键,切分源端数据;并发数小于DMU两倍。
- 资源单位DMU,为完成同步需要占用的CPU、内存、网络资源
- 任务DMU<=5,并发资源数<=10
- 自定义资源组,独占资源,利用专线 独占资源=提高速度
2.2.2数据建模
DataWorks 数据建模同时支持关系(ER、3NF)建模和维度建模(星型,雪花)。不同类型的模型没有最好,只有更适合。用户应该从企业的实际场景出发选择建模方式。根据经验总结,大多数企业都会同时存在以上两种建模方式,底层模型用关系建模,力求做到数据精简,往上维度建模就更适合,靠数据冗余带来可用性、分析性和可操作性。
2.2.3数据开发-降本增效利器
DataWorks数据开发(DataStudio、StreamStudio、HoloStudio)面向各引擎提供可视化开发的主界面,赋予用户智能代码开发、多引擎混编工作流、规范化任务发布的强大能力,让用户轻松构建离线数仓、实时数仓与即席分析系统。支持引擎:MaxCompute、E-MapReduce、Flink、Hologres、AnalyticDB for PostgreSQL,满足用户不同的企业级业务场景。
大幅提升工作效率
- 非技术人员1~2小时即可掌握完整的数据研发流程
- 无需维护各类开源技术栈,释放更多人力专注于业务
从容面对复杂场景
- 支持顺序、循环、分支、判断等节点类型
- 支持跨引擎、跨地域、跨周期的任务调度
提供更规范、科学的开发模式
- 高效的多人协同任务开发模式
- 规范且安全的任务发布上线流程
2.2.4数据治理
2.2.5数据服务
2.3应用场景- 资源优化:帮您节省计算、存储费用
- 移动运维:轻松搞定任务运维
- 运行诊断:为您快速定位疑难问题
- 智能监控:提高生产力,更加智慧的告警处理方式
- 字段级数据血缘:快速定位脏数据源头
- 多种控制节点:满足复杂业务场景逻辑
- 数据保护伞:进行数据安全保障
- 实时流计算开发:极大降低新技术使用门槛
https://support.huaweicloud.com/usermanual-dgc/dgc_01_0024.html
3.1产品架构华为云整个的数据湖解决方案,完整覆盖了数据处理的生命周期,并且明确支持了数据治理,并提供了基于模型和指标的数据治理流程工具,在华为云的数据湖解决方案中逐渐开始往“湖仓一体化”方向演进。
DGC基于数据湖底座,提供数据集成、开发、治理、开放等能力。DGC支持对接所有华为云的数据湖与数据库云服务作为数据湖底座,例如数据湖探索(Data Lake Insight,简称DLI)、MRS hive、数据仓库服务DWS等,也支持对接企业传统数据仓库,例如Oracle、Greenplum等。DGC包含如下功能组件:
- 管理中心,提供DGC数据连接管理的能力,将DGC与数据湖底座进行对接,用于数据开发与数据治理等活动。
- 数据集成之批量数据迁移,批量数据迁移提供20 简单易用的迁移能力和多种数据源到数据湖的集成能力,全向导式配置和管理,支持单表、整库、增量、周期性数据集成。
- 数据集成之实时数据集成,实时数据接入为处理或分析流数据的自定义应用程序构建数据流管道,主要解决云服务外的数据实时传输到云服务内的问题。实时数据接入每小时可从数十万种数据源(例如日志和定位日志事件、网站点击流、社交媒体源等)中连续捕获、传送和存储数TB数据。
- 规范设计,作为数据治理的一个核心模块,承担数据治理过程中的数据加工并业务化的功能,提供智能数据规划、自定义主题数据模型、统一数据标准、可视化数据建模、标注数据标签等功能,有利于改善数据质量,有效支撑经营决策。
- 数据开发,大数据开发环境,降低用户使用大数据的门槛,帮助用户快速构建大数据处理中心。支持数据建模、数据集成、脚本开发、工作流编排等操作,轻松完成整个数据的处理分析流程。
- 数据质量,数据全生命周期管控,数据处理全流程质量监控,异常事件实时通知。
- 数据资产,提供企业级的元数据管理,厘清信息资产。通过数据地图,实现数据资产的数据血缘和数据全景可视,提供数据智能搜索和运营监控。
- 数据服务,数据服务定位于标准化的数据服务平台,提供一站式数据服务开发、测试部署能力,实现数据服务敏捷响应,降低数据获取难度,提升数据消费体验和效率,最终实现数据资产的变现。
- 数据安全,数据安全为数据湖治理中心提供数据生命周期内统一的数据使用保护能力。通过敏感数据识别、分级分类、隐私保护、资源权限控制、数据加密传输、加密存储、数据风险识别以及合规审计等措施,帮助用户建立安全预警机制,增强整体安全防护能力,让数据可用不可得和安全合规。
批量数据迁移基于分布式计算框架,利用并行化处理技术,支持用户稳定高效地对海量数据进行移动,实现不停服数据迁移,快速构建所需的数据架构。
- 表/文件/整库迁移支持批量迁移表或者文件,还支持同构/异构数据库之间整库迁移,一个作业即可迁移几百张表。
- 增量数据迁移支持文件增量迁移、关系型数据库增量迁移、HBase/CloudTable增量迁移,以及使用Where条件配合时间变量函数实现增量数据迁移。
- 事务模式迁移支持当CDM作业执行失败时,将数据回滚到作业开始之前的状态,自动清理目的表中的数据。
- 字段转换支持去隐私、字符串操作、日期操作等常用字段的数据转换功能。
- 文件加密在迁移文件到文件系统时,CDM支持对写入云端的文件进行加密。
- MD5校验一致性支持使用MD5校验,检查端到端文件的一致性,并输出校验结果。
- 脏数据归档支持将迁移过程中处理失败的、被清洗过滤掉的、不符合字段转换或者不符合清洗规则的数据单独归档到脏数据日志中,便于用户查看。并支持设置脏数据比例阈值,来决定任务是否成功。
使用数据开发模块,用户可进行数据管理、脚本开发、作业开发、作业调度、运维监控等操作,轻松完成整个数据的处理分析流程。
支持的功能 |
说明 |
数据管理 |
支持管理DWS、DLI、MRS Hive等多种数据仓库。支持可视化和DDL方式管理数据库表。 |
脚本开发 |
提供在线脚本编辑器,支持多人协作进行SQL、Shell、Python脚本在线代码开发和调测。支持使用变量和函数。 |
作业开发 |
提供图形化设计器,支持拖拉拽方式快速构建数据处理工作流。预设数据集成、SQL、Shell等多种任务类型,通过任务间依赖完成复杂数据分析处理。支持导入和导出作业。 |
资源管理 |
支持统一管理在脚本开发和作业开发使用到的file、jar、archive类型的资源。 |
作业调度 |
支持单次调度、周期调度和事件驱动调度,周期调度支持分钟、小时、天、周、月多种调度周期。 |
运维监控 |
支持对作业进行运行、暂停、恢复、终止等多种操作。支持查看作业和其内各任务节点的运行详情。支持配置多种方式报警,作业和任务发生错误时可及时通知相关人,保证业务正常运行。 |
华为的数据湖解决方案比较完整,DLI承担了所有的数据湖构建、数据处理、数据管理、数据应用的核心功能。DLI最大的特色是在于分析引擎的完备性,包括基于SQL的交互式分析以及基于Spark Flink的流批一体处理引擎。在核心存储引擎上,DLI依然通过内置的OBS来提供,和AWS S3的能力基本对标。华为数据湖解决方案在上下游生态上做的比AWS相对完善,对于外部数据源,几乎支持所有目前华为云上提供的数据源服务。
DLI可以与华为的CDM(云数据迁移服务)和DIS(数据接入服务)对接:1)借助DIS,DLI可以定义各类数据点,这些点可以在Flink作业中被使用,做为source或者sink;2)借助CDM,DLI甚至能接入IDC、第三方云服务的数据。
为了更好的支持数据集成、数据开发、数据治理、质量管理等数据湖高级功能,华为云提供了DAYU平台。DAYU平台是华为数据湖治理运营方法论的落地实现。DAYU涵盖了整个数据湖治理的核心流程,并对其提供了相应的工具支持;甚至在华为的官方文档中,给出了数据治理组织的构建建议。DAYU的数据治理方法论的落地实现如图11所示(来自华为云官网)。
四、阿里云数据湖方案对象存储 OSS 是基于阿里云自研的分布式存储引擎——盘古搭建,提供体系化的数据采 力,支持结构化/半结构化/非结构化数据源。体系由数据湖对象存储 OSS、云原生数据湖分析 DLA、数据湖构建 DLF、E-MapReduce、 Works 等产品强强组合,在存储与计算分离架构下,提供“湖存储”、“湖加速”、“湖计算”的企业级数据湖解决方案。
- 数据存储:OSS
- 数据加工:数据湖构建 E-mapreduce
- 数据湖构建(DLF),云原生数据湖架构核心组成部分,帮助用户简单快速构建云原生数据湖解决方案,DLF提供湖上云数据统一管理、企业级权限控制,并无缝对接多种计算引擎,打破数据孤岛,洞察业务价值。
- E-mapreduce,构建在阿里云服务器ECS上的开源Hadoop、spark、Hbase、hive、Flink生态大数据Pass产品。提供用户在云上使用开源技术建设数据仓库、离线批处理、在线流式处理、即时分析、机器学习等场景下的大数据解决方案。
- 数据分析与治理,对企业数据的可用性、完整性和安全性全面管理。数据湖采用API接口让数据湖实现多引擎的统一元数据管理和权限管理。
- MaxCompute :MaxCompute 是一项面向分析的大数据计算服务,它以 Serverless 架构提供快速、全托 管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高 效的分析处理海量数据。
- 云原生数据湖分析(Data Lake Analytics,简称 DLA) 采用全新的云原生 Serverless 据库与大数据一体化架构,支持企业级权限管理、高效入湖、 ETL、机器学习、流计算与交互式分析等。核心组 包括:统一Meta、Lakehouse、Serverless Spark、Serverless Presto.
- 机器学习 PAI:机器学习 PAI(Platform of Artificial Intelligence)是阿里云面向企业客户及开发者,提供 轻量化、高性价比的云原生机器学习平台支持百亿特征、千亿样本规模加速训练,百余种落地场景,全面提升机器 学习工程效率
- 日志服务SLS,日志大数据解决方案,一站式提供数据收集、清洗、分析、可视化和告警功能。
- dataworks,基于EMR/MC-Hologres 等大数据计算引擎,为客户提供专业高效、安全可 的一站式大数据开发与治理平台。
4.2.1产品架构
阿里云数据湖构建(Data Lake Formation,简称 DLF)是一款全托管的快速帮助用户构建云上数据湖及Lakehouse的服务,为客户提供了统一的元数据管理、统一的权限与安全管理、便捷的数据入湖能力以及一键式数据探索能力。DLF可以帮助用户快速完成云原生数据湖及Lakehouse方案的构建与管理,并可无缝对接多种计算引擎,打破数据孤岛,洞察业务价值。
- 元数据管理,通过控制台查看和管理数据湖中元数据库和表的信息,通过API的方式操作元数据,集成到第三方应用服务。并支持多版本管理、可通过元数据发现和入湖任务自动生成元数据。
- 数据入湖,通过入湖任务的方式将分散在MySQL、Kafka和PolarDB等数据统一存储,入湖过程如果没有定义元数据信息,入湖任务会自动生成元数据的表信息。
- 数据权限管理,可以加强湖上数据权限控制,保障数据安全。可支持对元数据库、元数据表、元数据列三种粒度的权限。
- 数据探索,为您提供一键式数据探索能力,可支持Spark 3.0 SQL语法,可以保存历史查询,预览数据,导出结果,一键生产tpc-ds测试数据集。
- 湖管理,将为您提供对湖内数据存储的分析及优化建议,加强对数据生命周期管理,优化使用成本,方便您进行数据运维管理。
4.2.2应用场景
- 数据分析场景,通过元数据发现、数据探索能力,可以快速的对OSS内结构化、半结构化数据进行分析、探索。
- 结合E-MapReduce、OSS两个产品,DLF协助客户快速构建云上数据湖。
- 结合MaxCompute、Dataworks、E-MapReduce3个产品,DLF协助客户快速构建湖仓一体架构。
- 结合Databricks、OSS产品,构建云上全托管Lakehouse数据架构。
4.2.3阿里DDI(databricks datainsight 数据洞察)
产品核心:
- 基于商业版 Spark 的全托管大数据分析& AI 平台
- 内置商业版 Spark 引擎 Databricks Runtime ,在计算层面提供高效、稳定的保障
- 与阿里云产品集成互通,提供数据安全、动态扩容、监控告警等企业级特性
产品引擎与服务:
- 100% 兼容开源 Spark,经阿里云与 Databricks 联合研发性能优化
- 提供商业化 SLA 保障与7*24小时 Databricks 专家支持服务
产品关键信息与优势
4.2.3.1产品架构
- Databricks数据洞察构建在ECS之上,使用阿里云对象存储服务(OSS)为核心存储。存储访问加速层方便您可以像操作HDFS上的数据一样访问OSS上的数据。
- Databricks数据洞察提供了两种执行Spark作业的方式,包括通过Notebook或者在项目空间里新建Spark作业。
- Databricks数据洞察还提供了监控告警、元数据管理、权限管理等功能,方便您对集群资源进行管理。
4.2.3.2应用场景
1、数据湖分析
使用阿里云对象存储OSS作为云上存储,DDI集群提供灵活的计算资源,OSS上的数据可以被多个DDI集群共享,减少数据冗余。同时,DataInsight Notebook支持多用户同时协同工作,您可以在Notebook中完成作业编辑、提交和结果查看。
2、实时数仓
利用Databricks Delta Lake的ACID事务特性,可以构建云上大数据的实时数仓。
五、华为数据湖探索(Data Lake Insight,以下简称DLI)5.1产品架构数据湖探索(Data Lake Insight,以下简称DLI)是完全兼容Apache Spark、Apache Flink、openLooKeng(基于Presto)生态,提供一站式的流处理、批处理、交互式分析的Serverless融合处理分析服务。DLI是完全托管的大数据处理分析服务,企业使用标准SQL、Spark、Flink程序就可轻松完成多数据源的联合计算分析,挖掘和探索数据价值。数据无需复杂的抽取、转换、加载(ETL),使用SQL或程序就可以对云上CloudTable、RDS、DWS、CSS、OBS、ECS自建数据库以及线下数据库的异构数据进行探索。
5.2功能介绍
DLI用户可以通过可视化界面、Restful API、JDBC、ODBC、Beeline等多种接入方式对云上CloudTable、RDS和DWS等异构数据源进行查询分析,数据格式兼容CSV、JSON、Parquet、Carbon和ORC五种主流数据格式。
- 三大基本功能
- SQL作业支持SQL查询功能:可为用户提供标准的SQL语句。具体内容请参考《数据湖探索SQL语法参考》。
- Flink作业支持Flink SQL在线分析功能:支持Window、Join等聚合函数、地理函数、CEP函数等,用SQL表达业务逻辑,简便快捷实现业务。具体内容请参考《数据湖探索SQL语法参考》。
- Spark作业提供全托管式Spark计算特性:用户可通过交互式会话(session)和批处理(batch)方式提交计算任务,在全托管Spark队列上进行数据分析。具体内容请参考《数据湖探索API参考》。
- 多数据源分析:
- Spark跨源连接:可通过DLI访问CloudTable,DWS,RDS和CSS等数据源。具体内容请参考《数据湖探索用户指南》。
- Flink跨源支持与多种云服务连通,形成丰富的流生态圈。数据湖探索的流生态分为云服务生态和开源生态:具体内容请参见《数据湖探索开发指南》。
- 云服务生态:数据湖探索在Flink SQL中支持与其他服务的连通。用户可以直接使用SQL从这些服务中读写数据,如DIS、OBS、CloudTable、MRS、RDS、SMN、DCS等。
- 开源生态:通过增强型跨源连接建立与其他VPC的网络连接后,用户可以在数据湖探索的租户独享队列中访问所有Flink和Spark支持的数据源与输出源,如Kafka、Hbase、ElasticSearch等。
- BI工具
- 对接永洪BI:与永洪BI对接实现数据分析。具体内容请参考《数据湖探索开发指南》。
- 支持地理空间查询。具体内容请参考《数据湖探索开发指南》。
(1)大数据ETL处理
- 大数据ETL:具备TB~EB级运营商数据治理能力,能快速将海量运营商数据做ETL处理,为分布式批处理计算提供分布式数据集。
- 高吞吐低时延:采用Apache Flink的Dataflow模型,高性能计算资源,从用户自建的Kafka、MRS-Kafka、DMS-Kafka消费数据,单CU每秒吞吐1千~2万条消息。
- 细粒度权限管理:P公司内部有N个子部门,子部门之间需要对数据进行共享和隔离。DLI支持计算资源按租户隔离,保障作业SLA;支持数据权限控制到表/列,帮助企业实现部门间数据共享和权限管理。
(2)异构数据源联邦分析
- 多源数据分析免搬迁:关系型数据库RDS中存放车辆和车主基本信息,表格存储CloudTable中存放实时的车辆位置和健康状态信息,数据仓库DWS中存放周期性统计的指标。通过DLI无需数据搬迁,对多数据源进行联邦分析。
- 数据分级存储:车企需要保留全量历史数据支撑审计类等业务,低频进行访问。温冷数据存放在低成本的对象存储服务OBS上,高频访问的热数据存放在数据引擎(CloudTable和DWS)中,降低整体存储成本。
- 告警快速敏捷触发服务器弹性伸缩:对CPU、内存、硬盘空间和带宽无特殊要求。
(3)海量日志分析
- 高效的Spark编程模型:使用Spark Streaming直接从DIS中获取数据,进行数据清理等预处理操作。只需编写处理逻辑,无需关心多线程模型。
- 简单易用:直接使用标准SQL编写指标分析逻辑,无需关注背后复杂的分布式计算平台。
- 按需计费:日志分析按实效性要求按周期进行调度,每次调度之间存在大量空闲期。DLI按需计费只在使用期间收费,成本较独占队列降低50%以上。
Dremio由MapR的前员工:Tomer Shiran(CEO)和Jacques Nadeau(CTO)于2015年创立。融资总额为4500万美元。其总部位于美国,2017年发布了v1.0产品,客户包括帝亚吉欧(Diageo)、微软、瑞银、Nutanix和皇家加勒比游轮公司。
6.2产品架构Dremio是一款DaaS(Data-as-a-Service)数据即服务平台,可对接多类数据源来进行BI分析,该产品直接使用数据湖的源数据进行快速访问以达到直接进行数据分析而不经过数据的清洗、处理、加工、建模等方式。数据湖的意思就是将不同存储类型、不同种类的数据汇聚在一起,这个存储集群统一对外就是一个数据湖了。而Dremio通过直接在云数据湖存储中进行实时的、交互式的查询来释放数据价值。
Dremio的技术特点:
- 快速的数据查询
在Dremio中,查询数据是直达数据湖存储的,无论数据是存储在S3、ADLS、Hadoop、MySQL、Mongodb等载体上。Dremio使用了包括不限于以下技术来加速每次的查询:
- Data Reflections
- Columnar Cloud Cache (C3)
- Predictive Pipelining work alongside Apache Arrow
- 使用Predictive Pipelining和Columnar Cloud Cache(C3)技术加速数据读取
Dremio的Predictive Pipelining技术使得来自数据源的数据只有在执行引擎真正需要到时才会去拉取,这个做法能显著降低引擎等待数据的时间成本。同样地,C3技术则是会自动地在数据存取时将数据缓存到本地的NVMe存储载体,使得查询访问数据湖中的数据能有NVMe存取速度级别的表现。
- 为云而建造的现代化执行引擎
Dremio的执行引擎是建立在Apache Arrow及其生态技术上的,一个Dremio集群能够根据存储数据的体量规模弹性伸缩。
- Data Reflections - 能够更高效查询速度的开关
通过在Dremio提供的客户端页面的几下点击,就能够创建反射,反射是一种物理层面上对数据结构的优化,能够加速各种查询模式,根据你的需要可以创建任意数量的反射,Dremio会隐形并自动地在查询计划中合并反射,并保证查询到最新数据。
- Arrow Flight - 以1000x的倍速移动数据
AF被设计出来是用于取代处理小规模数据的ODBC和JDBC协议,AF在高速、分布式传输协议的基础上,为Dremio和应用的数据传输提供了1000x倍速度提升的吞吐。
- 自助式服务语义层
Dremio提供了一个应用安全和商业意义的抽象层,以支持用户能够探索数据,以及派生出新的虚拟数据集。
- 可自定义化的语义抽象层
Dremio的语义层是一个能够索引出所有用户元数据的集成化、可搜索的目录。在此语义层上,虚拟数据集以及空间构成了语义层,并且都是能够倍索引和搜索的。
- 高效的数据上下文管理
通过虚拟上下文的管理,Dremio让可以使得筛选、转换、联表、聚合一个或多个数据源的数据变得快速,容易并且成本低。另外,Dremio的虚拟数据集是通过标准SQL定义的,如此我们使用起来旧不需要再另外学习一套查询语法了。
- 直接应用在BI或数据科学工具上
Dremio其实就如同关系型数据库一样,并且Dremio可以暴露ODBC、JDBC、REST以及Arrow Flight协议的接口,这样我们就可以在一些BI应用上连接Dremio获取数据。
- 细粒度的访问权限控制
Dremio提供行级和列级的权限控制,可以让我们基于敏感数据、基于角色来控制对数据的访问权限。
- 数据血缘
Dremio的data graph管理着数据源、虚拟数据集以及查询语句之间的关系,我们可以通过data graph获知到当前查询的数据集的来源。
七.Databricks7.1公司概况1、Databricks 于 2013 年在旧金山成立,是大型数据分析工具的最大供应商之一,由美国伯克利大学AMP实验室的开源处理引擎系统Apache Spark的多位创始人联合创立,专注于大数据和AI人工智能,致力于提供基于Spark的云服务及开放统一的数据平台。
2、Databricks开创了云计算领域的“Lakehouse”结构概念,这一术语是由“Data Lakes”与“Data Warehouses”合成而成。目前Databricks提供四种产品:Spark、Delta Lake、MLflow(开发和维护 AI 生命周期管理平台)和Koalas(数据分析工具)。
3、公司定位:
- Databricksis the Data AI company,为客户提供数据分析、数据工程、数据科学和人工智能方面的服务,一体化的 Lakehouse 架构
- 开源版本 VS 商业版本:公司绝大部分技术研发资源投入在商业化产品
- 多云策略,与顶级云服务商合作,提供数据开发、数据分析、机器学习等产品,Data AI 一体化分析平台
4、市场地位
- Databricks的全球客户数量达5000多家,且全球有超过40%的财富500强企业都在使用Databricks的云平台。
- 2021年8月20日,H轮,15亿美元,估值380亿美元。
7.2.1Delta Lake
Delta Lake 是一个统一的数据管理系统,为云上数据湖带来数据可靠性和快速分析。Delta Lake 运行在现有数据湖之上,并且与 Apache Spark 的 API 完全兼容。使用Delta Lake,您可以加快高质量数据导入数据湖的速度,团队也可以在云服务上快速使用这些数据,安全且可扩展。
- ACID 事务性:Delta Lake 在多个写操作之间提供 ACID 事务性。每一次写操作都是一个事务操作,事务日志(Transaction Log)中记录的写操作都有一个顺序序列。事务日志(Transaction Log)跟踪了文件级别的写操作,并使用了乐观锁进行并发控制,这非常适用于数据湖,因为尝试修改相同文件的多次写操作的情况并不经常发生。当发生冲突时,Delta Lake 会抛出一个并发修改异常,抛给供用户处理并重试其作业。Delta Lake 还提供了最高级别的隔离(可序列化隔离),允许工程师不断地向目录或表写入数据,而使用者不断地从同一目录或表读取数据,读取数据时会看到数据的最新快照。
- Schema 管理(Schema management):Delta Lake 会自动验证正在写入的DataFrame 的 Schema 是否与表的 Schema 兼容。若表中存在但 DataFrame 中不存在的列则会被设置为 null。如果 DataFrame 中有额外的列不在表中,那么该操作将会抛出异常。Delta Lake 具有 DDL(数据定义语言)显式添加新列的功能,并且能够自动更新 Schema。
- 可伸缩的元数据(Metadata)处理:Delta Lake 将表或目录的元数据信息存储在事务日志(Transaction Log)中,而不是元数据 Metastore 中。这使得 Delta Lake够在固定时间内列出大目录中的文件,并且在读取数据时效率很高。
- 数据版本控制和时间旅行(Time Travel):Delta Lake 允许用户读取表或目录的历史版本快照。当文件在写入过程中被修改时,Delta Lake 会创建文件的新的版本并保留旧版本。当用户想要读取表或目录的较旧版本时,他们可以向 Apach Spark的 read API 提供时间戳或版本号,Delta Lake 根据事务日志(Transaction Log)中的信息来构建该时间戳或版本的完整快照。这非常方便用户来复现实验和报告,如果需要,还可以将表还原为旧版本。
- 统一批流一体:除了批处理写入之外,Delta Lake 还可以作为 Apache Spark 的结构化流的高效流接收器(Streaming Sink)。与 ACID 事务和可伸缩元数据处理相结合,高效的流接收器(Streaming Sink)支持大量近实时的分析用例,而无需维护复杂的流和批处理管道。
- 记录更新和删除:Delta Lake 将支持合并、更新和删除的 DML(数据管理语言)命令。这使得工程师可以轻松地在数据湖中插入和删除记录,并简化他们的变更数据捕获和 GDPR(一般数据保护条例)用例。由于 Delta Lake 在文件级粒度上进行跟踪和修改数据,因此它比读取和覆盖整个分区或表要高效得多。
7.2.2产品架构
1、Databricks 产品支持执行 Spark、Python、Scala、Java 和 R 等语言,甚至支持 SQL,适用于不同类型的用户。
2、强大的数据版本控制:Databricks 原生支持 DELTA 格式。Delta Lake 是完全兼容 ACID 的,这就解决了 Spark 的 不兼容 ACID 这一主要问题。
7.2.3湖仓一体
- 事物支持:Lakehouse 在企业级应用中,许多数据管道通常会同时读取和写入数据。通常多方同时使用 SQL 读取或写入数据,Lakehouse 保证支持ACID事务的一致性。
- 模式实施和治理:Lakehouse 应该有一种支持模式实施和演变的方法,支持 DW 模式规范,例如 star /snowflake-schemas。该系统应该能够推理数据完整性,并且应该具有健壮的治理和审核机制。
- BI支持:Lakehouse 可以直接在源数据上使用BI工具。这样可以减少陈旧度和等待时间,提高新近度,并且降低必须在数据湖和仓库中操作两个数据副本的成本。
- 存储与计算分离:事实上,这意味着存储和计算使用单独的群集,因此这些系统能够扩展到更多并发用户和更大数据量。一些现代数据仓库也具有这种属性。
- 兼容性:Lakehouse 使用的存储格式是开放式和标准化的,例如 Parquet,并且它提供了多种 API,包括机器学习和 Python/R 库,因此各种工具和引擎都可以直接有效地访问数据。
- 支持从非结构化数据到结构化数据的多种数据类型:Lakehouse 可用于存储,优化,分析和访问许多新数据应用程序所需的数据类型,包括图像,视频,音频,半结构化数据和文本。
- 支持各种工作场景:包括数据科学,机器学习和 SQL 分析。这些可能依赖于多种工具来支持的工作场景,它们都依赖于相同的数据存储库。
- 端到端流式任务:实时报告是许多企业的日常需要。对流处理的支持消除了对专门服务于实时数据应用程序的单独系统的需求。
1、团队背景
(1)LinkedIn开发Apache Kafka实时信息列队技术的程序员,创立confluent,核心是利用Apache Kafka。
- 三个创始人:Jay Kreps(美国加州人)和清华毕业的饶军(Jun Rao)及来自印度的女生纳赫(Neha Narkhede)。
2、融资情况
2021-6-25美股上市,市值143.64亿美元。
3、商业化产品
商业化产品有3大类:
- 主营产品:Confluent Platform,Confluent Cloud
- 支撑产品:无法单独购买,主要用来给楼上引流,例如应用市场中的各种插件
- 咨询服务类:例如专家服务,培训等
4、不同实时计算工具的对比
Spark 做批处理、Flink 做流处理、Clickhouse 做交互分析,这是最简单的一套。再复杂一点,可能还要部署 HBase 做 KV 查询,用 ElasticSearch 做文本检索。
产品 | |
Spark streaming |
不是特别适合于做秒级甚至亚秒级的计算 |
Kafka streaming |
很难满足我们对大体量的复杂计算的需求 |
Storm |
没有批处理能力 |
Flink |
批流结合 |
Confluent是用来管理和组织不同数据源的流媒体平台,可以实时地把不同源和位置的数据集成到一个中心的事件流平台。而且还强调了这个平台很可靠、性能很高,总之就是很好用,很强大。Confluent目前提供了社区版和商业版两个版本,社区版永久免费,商业版面向企业收费。
- 社区版提供了Connectors、REST Proxy、KSQL、Schema-Registry等基础服务。
- 商业版为企业提供了控制面板、负载均衡,跨中心数据备份、安全防护等高级特性。
(1)Confluent Control Center(控制中心),让我们很容易地管理kafka的连接,创建,编辑,和管理与其他系统的连接。我们可以从producer到consumer监控data streams,保证我们的每一条消息都被传递,还能测量出消息的传输耗时多久。使用confluent control center能让开发人员不写一句代码,也能构建基于kafka的数据生产管道。
(2)Confluent Replicator(数据复制与迁移),Confluent Platform使我们可以比以往更轻松地在多个数据中心内维护多个Kafka群集。管理数据中心之间的数据复制和topic配置,比方说:ative-active地理定位部署:允许用户访问最近(附近)的数据中心,以优化其架构,实现低延迟和高性能
- 集中分析:将来自多个Kafka集群的数据聚合到一个地方,以进行组织范围的分析
- 云迁移:可以使用kafka完成本地应用与云之间的数据迁移
我们可以利用Confluent Replicator从Confluent Control Center或CLI工具配置管理所有这些方案的复制。
(3)Confluent Auto Data Balancer(解决负载均衡),随着集群的增长,topic和partition以不同的速度增长,随着时间的推移,添加和删除会导致跨数据中心资源的工作负载不平衡。有一些brokers是空闲的(数据倾斜),而其他brokers则对大量或多个partitions负载,从而减慢了消息传递的速度。当执行时,Confluent Auto Data Balancer会监控您的群集中的broker数量,partition大小,partition数量以及群集中的broker数量。它允许我们转移数据以在整个群集中创建均匀的工作负载,同时限制重新平衡流量,以最大限度地减少重新平衡时对生产工作负载的影响。
(4)Confluent JMS Client,Confluent Platform包含适用于Kafka的JMS兼容客户端。通过用Kafka替换旧的JMS消息代理,现有的应用程序可以与我们的现代流式平台集成,而无需重新编写应用程序。
(5)Confluent Security Plugins,目前,有一个可用于Confluent REST Proxy的插件,它有助于验证传入的请求并将经过身份验证传到kafka请求。
Kafka Brokers(开源)。构成Kafka的消息,数据持久性和存储层。
Kafka Java Clients(开源)。Java 库,写消息到kafka 或者从kafka 读消息。
Kafka Streams(开源)。Kafka Streams是一个库使kafka转换成功能齐全的流处理系统。
Kafka Connect(开源)。一种可扩展的和可靠的连接Kafka框架与外部系统(如数据库,键值存储,搜索索引和文件系统)的框架。
除了Kafka以外, Confluent Platform 包括更多的工具和服务,使构建和管理数据流平台更加容易。
Confluent Control Center(闭源)。管理和监控Kafka最全面的GUI驱动系统。
Confluent Kafka Connectors(开源)。连接SQL数据库/Hadoop/Hive
Confluent Kafka Clients(开源)。对于其他编程语言,包括C/C Python
Confluent Kafka REST Proxy(开源)。允许一些系统通过HTTP和kafka之间发送和接收消息。
Confluent Schema Registry(开源)。帮助确定每一个应用使用正确的schema当写数据或者读数据到kafka中。
总的来说,Confluent Platform平台的组件给你的团队朝着建立统一而灵活的方式建立一个企业范围的数据流平台。