您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [DORIS SUMMIT]:Apache Doris在Hadoop生态圈中的角色定位 - 发现报告

Apache Doris在Hadoop生态圈中的角色定位

2025-01-14 肖培根 DORIS SUMMIT 静心悟动
报告封面

肖培根(Bacon)-某家居行业公司大数据主管 自我介绍01现状分析02Doris平台建设03Doris平台应用04 目录 01自我介绍 分享嘉宾 大数据主管 02现状分析 中台价值 快速支撑业务应用 打破原有数据孤岛 挖掘数据内在价值 ①数据拉通:将所有的数据汇聚到数据中台,应用系统从数据中台取数,打破数据孤岛②统一指标:拉通各业务环节,明确指标owner,统一数据口径,提供统一指标服务,消除数据二义性③数据质量:连通全域数据,对数据进行常态化、周期性的质量管控与治理 ①数据服务:提供便捷、快速的数据服务能力,支持数据资产场景化能力的快速输出②业务赋能:根据业务场景形成可快速使用的数据模型,挖掘数据价值,为业务进行赋能 ①自助取数:围绕分析、取数等场景,面向业务人员建设简单易用的自助分析、自助取数工具②自助消费:建设低门槛数据自助消费工具集,实现简单数据使用场景自助服务 沉淀数据资产、高效取数服务 指标口径统一、数据质量提升 指标口径统一、数据质量提升 03Doris平台建设 Doris平台建设 CCR跨级群数据同步 完成情况 用于容灾备份、读写分离、集团与公司间数据传输和隔离升级等场景。 (1)搭建2套Doris集群,采用3FE+3BE组合;(2)Doris资源隔离和权限控制;(3)搭建CCR跨集群数据同步,主集群实时同步到副集群;(4)编写备份脚本,定期备份主集群数据到Hadoop;(5)配置Nginx负载均衡和高可用;(6)增加FE/BE故障告警到企业微信; Doris平台资源 1.1TB7.96TB288Core(s) 平台资源隔离 建设目标:弹性大数据服务组件、容器化、存储与计算分离、资源弹性伸缩。 WorkloadGroup:负责授予给特定的角色和用户,管理Doris集群所使用的CPU/内存/IO资源用量。 04Doris平台应用 ApacheDoris的定位 ApacheDoris的定位:满足报表分析、即席查询、统一数仓构建、湖仓一体等使用场景。 Doris功能研究 Doris和Paimon结合Catalog统一元数据冷热数据分层FlinkDorisConnectorSparkDorisConnectorBEOOM分析和内存管理OPENAPI服务资源管理数据备份和迁移湖仓一体研究SQL优化 湖仓一体实践 主要应用场景 便捷的元数据和数据打通 分析加速 湖仓查询加速数据导入和集成统一查询网关ETL/ELT加速 利用Doris高效的分析引擎加速热数据Cache到本地支持弹性计算节点,实现计算弹性加速外表处理结果可写入内表,形成加速视图 元数据映射、Cache和自动刷新支持大部分湖仓格式和metastore支持对接各类主流数据库已测试有:MySQL、Oracle、SQLServe、ESHive、Paimon、HANA Tableau自助分析推广 Doris数据提取:Catalog方式同步数据,T+1模式 Doris库表:最大的表有6亿多记录,总数据超12亿 业务场景:用户流量分析、客户画像、物料统计分析等 实现价值:自助取数和自助消费,面向业务人员建设自助分析工具,实现简单数据使用场景自助服务 FlinkCDC实时同步Doris Flink端操作 SQLserver数据库端操作 1、Downloadflink-sql-connector-sqlserver-cdc-3.1.0.jarandputitunder/lib/2、启动flinkclient./sql-client.shembeddedSETexecution.checkpointing.interval=10s;一定要设置否则无法同步3、创建源表t_source_sqlserver,使用SQLServerChangeDataCapture(CDC)连接器从SQLServer数据库读取数据CREATETABLEt_source_sqlserver(idINT,order_dateDATE,purchaserINT,quantityINT,product_idINT,PRIMARYKEY(id)NOTENFORCED)WITH('connector'='sqlserver-cdc',--使用SQLServerCDC连接器'hostname'=‘xx.xx.xx.xx',--SQLServer主机名'port'='30027',--SQLServer端口'username'='',--SQLServer用户名'password'='',--SQLServer密码'database-name'='cdc_test',--数据库名称'table-name'='dbo.orders'--要捕获更改的表名);4、创建目标表doris,使用JDBC连接器将数据写入doris数据库CREATETABLEdoris_test_sink(idINT,order_dateDATE,purchaserINT,quantityINT,product_idINT,PRIMARYKEY(id)NOTENFORCED)WITH('connector'='doris','fenodes'='xx.xx.xx.xx:8030','table.identifier'='xxx.orders','username'='root','password'='','sink.properties.format'='json','sink.properties.read_json_by_line'='true','sink.enable-delete'='true','sink.label-prefix'='doris_label');--从t_source_sqlserver表中选择数据,并将其插入到doris_test_sink表中5、INSERTINTOdoris_test_sinkSELECT*FROMt_source_sqlserver; step1:数据库开启CDC功能root登录服务器执行命令启用SqlServeragent后重启数据库/opt/mssql/bin/mssql-confsetsqlagent.enabledtruestep2:选择要进行CDC跟踪的表EXECsys.sp_cdc_enable_table@source_schema='dbo',@source_name='orders',@role_name='cdc_role';step3:检查开启了CDC的表selectname,is_tracked_by_cdcfromcdc_test.sys.tableswhereis_tracked_by_cdc='1' JavaUDF使用 实现原理:Doris支持使用JAVA编写UDF、UDAF和UDTF,对于用户来讲,HiveUDF可以直接迁移至Doris。 实现价值:通过使用UDF函数,可以实现复杂的数据处理、计算和转换,提高查询的灵活性和效率。 创建UDF •实现的jar包存放在远程服务端,让每个FE和BE节点都能获取到jar包。 •当链接session位于数据内部,直接使用UDF名字会在当前DB内部查找对应的UDF。否则用户需要显示的指定UDF的数据库名字,例:dbName.funcName •使用Java代码编写UDF,UDF的主入口必须为evaluate函数。 CREATEFUNCTIONDorisEncrypt(String)RETURNSStringPROPERTIES( "file"="file:///data/software/doris/doris/udf/hive-function-1.0-SNAPSHOT.jar","symbol"="com.suofy.udf.DorisEncrypt","always_nullable"="true","type"="JAVA_UDF" ); Doris平台资源监控 DorisManager Zabbix+Grafana 可视化运维管理(ClusterManagerforApacheDoris,简称Manager),能够快速拉起一套Doris/SelectDB集群,集成了监控告警、集群巡检和WebUI等模块,提供了集群启停、扩缩容和升级等常规运维操作可视化的快捷入口。 通过Zabbix进行监控,并通过Grafana将Zabbix监控到的数据进行可视化展示,更加方便了解主机以及虚拟机的运行状况。 基于ApacheDoris的新一代数仓平台 离线数仓:ApacheSpark+ApacheHive,Spark是一个统一的大规模数据处理分析引擎,基于内存计算,Hive负责结构化数据的存储管理。实时数仓:ApacheDoris,是一款基于MPP架构的高性能、实时的分析型数据库,海量数据查询秒级响应时间,支持高吞吐的复杂分析场景。 ThanksforWatching!