一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Doris的实时数仓设计方法、装置、设备及存储介质与流程

2022-08-27 00:39:11 来源:中国专利 TAG:
基于doris的实时数仓设计方法、装置、设备及存储介质
技术领域
:1.本发明属于物流平台的数据仓库
技术领域
:,尤其涉及于doris的实时数仓设计方法、装置、设备及存储介质。
背景技术
::2.随着快递行业的日益增长,物流快递数据的单日票件量已达亿级,面对如此大的数据量,不仅有票件数据,还有智能硬件、比如说车辆摄像头等一些监控方面的数据,要对这些数据进行处理,需要有一个交互的分析平台,以便业务人员执行一些adhoc(多跳网)命令去查询不同的数据,还要支持通用的sql(结构化查询语言)语法,降低学习成本,并且需要查询快捷。3.在实时数据处理时经常发生挂掉或阻塞的情况。4.另外,每天的数据量达到了百亿级以上,不仅要求分析平台的性能要快,还要有各种票单量的明细级多表去join(连接)亿级的多个票单量维表。另外,需要多表的票单量精确去重,并保证数据的准确性。同时平台还需要要支持多种报表的导出和多种数据源的导入。现有的物流平台的数仓建设上无法做到上述需求。技术实现要素:5.本发明提供了一种基于doris的实时数仓设计方法、装置、设备及存储介质,解决技术中实时数据导入时挂掉或阻塞的情况,另外也提供支持更多数据源导入的方案。6.本方法包括:7.将业务实时数据导入到kakfa队列,并放入适配的topic标签中,提供消费所述topic标签中数据的至少一消费任务,设置适配的routineload任务监控;8.所述routineload任务监控实时读取用于表明所述topic标签中消费当前数据所在位置信息的偏移量;9.若所述偏移量在预设时间内未增长,则重新启动所述routineload任务监控,从所述偏移量继续执行所述消费任务;10.将所述消费任务执行后的streamload数据流导入到doris中。11.进一步,将所述消费任务执行后的streamload数据进行导入到doris中进一步包括:在实时计算集群flink上创建一个所述streamload数据流最终输出位置到所述doris中的sink:flink-connector-dorisdb;streamload数据通过缓存并批量直接由http导入至所述doris中。12.本方案还包括对二次业务逻辑处理的数据的实时导入,则包括:13.将所述消费任务执行后的streamload数据流导入到doris中之后还包括:14.找到需要二次业务逻辑处理的实时数据,先对所述实时数据通过flink进行所述二次业务的逻辑处理,再对所述逻辑处理后的数据进行缓存,最后将缓存的所述数据由streamload导入doris。需要二次业务逻辑处理的至少一实时数据先通过flink的二次业务逻辑处理进一步包括:至少一所述实时数据的二次业务逻辑设置成一任务管理,所述任务管理提交适配的任务作业给jobmanager,所述jobmanager负责所述作业的调度和资源分配,所述jobmanager将所述作业分给对应的taskmanager,所述taskmanager收到所述任务作业后,启动线程去执行,并向所述jobmanager报告所述任务状态和自身运行状态;当所述任务执行结束后,所述jobmanager将收到通知,并将二次业务逻辑处理后的数据后发送给对应的任务管理。15.举例中,需要二次业务逻辑处理的至少一实时数据先通过flink的二次业务逻辑处理进一步包括:16.先从ods日志主题消费数据,然后通过用户行为,将所述数据中的行为数据分为3种:页面日志,曝光日志,启动日志;17.通过定义了一个flink的状态变量为时间,用于过滤新用户的所述数据,判断是否是新用户,如果是第一次来,对应的状态是空,将现在的时间更新至所述状态,否则状态不为空,则所述当前用户修改为老用户;18.对进行过滤处理后的所述数据进行分流处理,所述启动日志和所述曝光数据写入侧输出流,所述页面数据写入主流并通过json获取对应的值,在start中写入启动所述测输出流,去除所述启动日志全部为所述页面日志,将所述页面日志写入到主流,再将所述曝光日志写入到曝光侧输出流19.本方法还包括离线业务数据的导入,其包括:20.在离线业务场景中,利用brokerload将所述离线业务数据从hdfs导入所述doris;21.通过sql方式,使用dolphinschedule配置调度任务,批处理完成所述离线业务数据的处理,后汇总到一个总表中。22.本方法还包括相对固定的数据导入,其还包括:23.在实际业务场景中相对固定的数据,直接对接数据服务大厅,由所述数据服务大厅与powerbi工具和前端报表对接。24.基于相同的构思,本发明还提供一种基于doris的实时数仓设计装置,包括:25.routineload任务监控设置模块:用于将业务实时数据导入到kakfa队列,并放入适配的topic标签中,后提供消费所述topic标签中数据的至少一消费任务,设置适配的routineload任务监控;26.routineload任务监控处理模块:用于所述routineload任务监控实时读取用于表明所述topic标签中消费当前数据所在位置信息的偏移量;27.所述routineload任务监控启动模块:用于若所述偏移量在预设时间内未增长,则重新启动所述routineload任务监控,从所述偏移量继续执行所述消费任务;28.导入模块:用于将所述消费任务执行后的streamload数据流导入到doris中。29.基于相同的构思,本发明还一种计算机设备,包括:30.存储器,所述存储器用于存储处理程序;31.处理器,所述处理器执行所述处理程序时实现上述的基于doris的实时数仓设计方法。32.基于相同的构思,本发明还提供一种可读存储介质,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现上述基于doris的实时数仓设计方法方法。33.采用上述技术方案后,与现有技术相比,本发明的有益之处在于:34.本发明做了一个自定义的routineload监控,去实时读取它的offset,如果发现了offset不再增长之后,就会手动通过监控系统去执行停掉routineload的任务,并重新启动routineload,offset用之前的,这样既能保证数据不丢,也不会重复,同时恢复routineload,本发明提升实时数据导入处理的效率且提升其安全性,不容易阻塞。数据无积压,保障在数据量高峰访问时平稳运行。35.本发明支持多种报表的导出和多种数据源的导入。对于数仓建设在提高业务支持效率、降低维护成本上都具有非常重大的意义。比如,在复杂的业务逻辑中,业务实时数据先通过flink处理,再利用redis或pika缓存,处理完成既可以用streamload方法导入doris;在离线业务场景中,业务数据利用brokerload将业务数据从hdfs导入doris,再通过sql方式,使用dolphinscheduler跑批处理复杂业务数据,最后汇总到一个总表中;在实际业务场景中,直接对接数据服务大厅,由数据服务大厅对接powerbi工具和前端报表。多表的票单量精确去重,并保证数据的准确性;完全可以支持多种报表的导出和多种数据源的导入。附图说明36.下面结合附图对本发明的具体实施方式作进一步详细说明,其中:37.图1为本发明基于doris的实时数仓设计方法的第一实例原理程图;38.图2为本发明基于doris的实时数仓设计系统的原理框图;39.图3为本发明基于doris的实时数仓设计方法的第二实例流程图;40.图4为本发明基于doris的实时数仓设计装置实施例示意图;41.图5为本发明计算机设备的实施例示意图。具体实施方式42.以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。43.需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。44.实施例一45.大数据的时代,数据的处理能力大大增强,但在最后一个环节,即数据应用服务环节依然存在较大的瓶颈。原来业务数据库时代,高并发、高灵活性是一个矛盾体,如何让一线在灵活定制分析sql(结构化查询语言)时候,虽然拖拉拽生成了不忍直视的sql,但希望查询引擎依旧可以保持强劲的性能指标,不管是并发度还是查询时间都能让客户满意,是蛮有挑战的一件事情。目前的查询分析非常多,并且还在不断的涌现出来,引擎层出不穷,各有优势也有其缺点,比如adb、hologres、presto、kylin、hbase(几种数据库名称),这些产品本质上都是用资源换时间,或者空间换时间,本质上就是计算机制重构、硬件提速(比如ssd磁盘,即固态硬盘)、索引提速(比如位图)、空间转换(比如预计算)等维度是提升性能。不断涌现且更新的技术产品也从侧面印证了查询引擎的问题依然很多,痛点依旧没有解决,同时也大有可为。doris(多里斯)是最近适应于实时分析场景,确实解决了查询引擎的一些场景下的痛点问题的一数据库系统。46.doris由frontenddorisdb(前端节点)和backenddorisdb(后端节点)核心组件组成。前端节点负责管理元数据、管理客户端的连接、进行查询规划和调度等工作;后端节点负责数据存储、计算执行、副本管理等;另外还包括dorismanager(doris管理工具)和broker(纪经),dorismanager管理工具,负责提供集群管理、在线查询、故障查询、监控报警的可视化工具;broker负责和外部存储(hdfs,hadoop分布式文件系统或对象存储)进行数据的导出导入等辅助功能;doris可以通过mysql客户端直接访问。47.doris核心组件及运行模式如下(以下frontenddorisdb简称fe,backenddorisdb简称be):48.首先介绍fe。49.1)管理元数据,执行sqlddl命令,用catalog(记录库),表,分区,tablet副本等信息。50.2)fe高可用部署,使用复制协议选主和主从同步元数据,所有的元数据修改操作,由feleader节点(fe主节点)完成,fefollower节点(fe跟踪节点)可执行读操作。元数据的读写满足顺序一致性。fe的节点数目采用2n 1,可容忍n个节点故障。当feleader故障时,从现有的follower节点重新选主,完成故障切换。51.3)fe的sqllayer(sql层)对用户提交的sql进行解析,分析,改写,语义分析和关系代数优化,生产逻辑执行计划。52.4)fe的planner(sql物理计划)负责把逻辑计划转化为可分布式执行的物理计划,分发给一组be。53.5)fe监督be,管理be的上下线,根据be的存活和健康状态,维持tablet(副本)的数量。54.6)fe协调数据导入,保证数据导入的一致性。55.其次介绍be。56.1)be管理tablet(副本),tablet是table经过分区分桶形成的子表,采用列式存储。57.2)be受fe指导,创建或删除子表。58.3)be接收fe分发的物理执行计划并指定becoordinator节点(be协调节点),在becoordinator的调度下,与其他beworker(be执行节点)共同协作完成执行。59.4)be读本地的列存储引擎获取数据,并通过索引和谓词下沉快速过滤数据。60.5)be后台执行compact(压缩)任务,减少查询时的读放大。61.以查询为例,通过fe的组织、协调、控制,对提交的sql进行解析,分析,改写,优化和规划,生成分布式执行计划,然后由若干be执行,并在若干be中选定一个coordinator(协作者),由协作者协调n个be进行本地计算,然后返回给协作者,协作者汇总后返回给fe最终结果,最后由fe将最终结果提供给最终用户。62.本技术方案提供了一种基于doris的实时数仓设计方法的第一实例原理程图(请参阅图1),包括对多种数据用不同的方式导入到doris数仓中:63.s1:对实时数据的导入:通过将业务实时数据从flume(海量日志收集聚合传输系统)或canal(阿里开源的中间件)中导入到kafka(一种高吞吐量的分布式发布订阅消息系统),kafka(一种分布式日志系统)中业务实时数据经过多次数据处理,数据处理后用sql导入到doris。64.s2:对复杂的实时数据的导入:一般对实时数据需要进行二次逻辑处理称为复杂的实时数据的业务逻辑。这类业务实时数据先通过flink(针对流数据和批数据的分布式处理引擎,即实时计算集群)处理,再利用redis或pika(奇虎公司开源的一款类redis存储系统)缓存,处理完成既可以用streamload(一种同步的导入方式)方法导入doris。具体来说,先找到需要二次业务逻辑处理的实时数据,先对所述实时数据通过flink进行所述二次业务的逻辑处理,再对所述逻辑处理后的数据进行缓存,最后将缓存的所述数据由streamload导入doris。65.s13:对离线业务数据的导入:业务数据利用brokerload(一个异步的导入方式)将业务数据从hdfs(hadoop分布式文件系统)导入doris,再通过sql方式,使用dolphinscheduler(批处理计划)跑批处理复杂业务数据,最后汇总到一个总表中。换个角度来说,如果数据源是hive/hdfs,推荐采用brokerload导入,如果数据表很多导入比较麻烦可以考虑使用hive外表直连查询,性能会比brokerload导入效果差,但是可以避免数据搬迁,如果单表的数据量特别大,或者需要做全局数据字典来精确去重可以考虑sparkload导入。66.s14:固定数据(如特别表格等)的导入:在实际业务场景中,直接对接数据服务大厅,由数据服务大厅对接powerbi工具和前端报表。多表的票单量精确去重,并保证数据的准确性;本发明的提案支持多种报表的导出和多种数据源的导入;数据无积压,保障在数据量高峰访问时平稳运行。67.本发明中,一个导入作业可以分为几个阶段:68.1)loading69.该阶段先对数据进行清洗和转换,然后将数据发送给be处理。当数据全部导入后,进入等待生效过程,此时导入作业状态依旧是loading。70.2)finished71.在导入作业涉及的所有数据均生效后,作业的状态变成finished,finished后导入的数据均可查询。finished是导入作业的最终状态。72.3)cancelled73.在导入作业状态变为finished之前,作业随时可能被取消并进入cancelled状态,如用户手动取消或导入出现错误等。cancelled也是导入作业的一种最终状态。74.本发明的导入作业可以适用场景如下所示:75.1)hdfs导入76.源数据存储在hdfs中,数据量为几十gb到上百gb时,可采用brokerload方法向dorisdb导入数据。此时要求部署的broker进程可以访问hdfs数据源。导入数据的作业异步执行,用户可通过showload命令查看导入结果。77.源数据存储在hdsf中,数据量达到tb级别时,可采用sparkload方法向dorisdb导入数据。此时要求部署的spark进程可以访问hdfs数据源。导入数据的作业异步执行,用户可通过showload命令查看导入结果。78.对于其它外部数据源,只要broker或spark进程能读取对应数据源,也可采用brokerload或sparkload方法导入数据。79.2)本地文件导入80.数据存储在本地文件中,数据量小于10gb,可采用streamload方法将数据快速导入dorisdb系统。采用http协议创建导入作业,作业同步执行,用户可通过http请求的返回值判断导入是否成功。81.3)kafka导入82.数据来自于kafka等流式数据源,需要向dorisdb系统导入实时数据时,可采用routineload方法。用户通过mysql协议创建例行导入作业,dorisdb持续不断地从kafka中读取并导入数据。83.4)insertinto导入84.手工测试及临时数据处理时可以使用insertinto方法向dorisdb表中写入数据。其中,insertintotblselect...;语句是从dorisdb的表中读取数据并导入到另一张表;insertintotblvalues(...);语句向指定表里插入单条数据。85.5)同时,还有其他一些方式json数据导入(对于一些半结构化的比如json类型的数据,我们可以用streamload或者routineload的方式进行导入。streamload:对于文本文件存储的json数据,我们可以使用streamload进行导入。routineload:对于kafka中的json格式数据,可以使用routineload的方式导入)、flink-connector-dorisdb(内部实现是通过缓存并批量由streamload导入)、datax-dorisdb-writer(doriswriter插件实现了写入数据到dorisdb的目的表的功能。在底层实现上,doriswriter通过streamload以csv或json格式导入数据至dorisdb。内部将reader读取的数据进行缓存后批量导入至dorisdb,以提高写入性能。总体数据流是source-》reader-》dataxchannel-》writer-》dorisdb。)86.数据导出(export)是dorisdb提供的一种将数据导出并存储到其他介质上的功能。该功能可以将用户指定的表或分区的数据,以文本的格式,通过broker进程导出到远端存储上,如hdfs/阿里云oss/awss3(或者兼容s3协议的对象存储)等。87.用户提交一个导出作业后,dorisdb会统计这个作业涉及的所有tablet,然后对这些tablet进行分组,每组生成一个特殊的查询计划。该查询计划会读取所包含的tablet上的数据,然后通过broker将数据写到远端存储指定的路径中。其处理流程主要包括:1)用户提交一个export作业到fe。88.2)fe的导出调度器会通过两阶段来执行一个导出作业:3)pending:fe生成一个exportpendingtask,向be发送snapshot命令,对所有涉及到的tablet做一个快照,并生成多个查询计划。4)exporting:fe生成一个exportexportingtask,开始执行一个个的查询计划。89.实例二90.请参阅图2,其为本发明一种基于doris的实时数仓设计实例原理系统图。它包括数据中台11、doris数仓12、flink实时计算集群14(后简称flink)、kafka13、hdfs15.数仓整体以doris12为核心构建企业级数据仓库,(通过数据采集系统,多种数据采集手段,包括mysqlbinlog解析(cannal),日志采集可以通过flume(doris审计日志)、埋点接口等实现多种异构数据的采集,将采集的数据统一通过消息队列(kafka13)完成高并发的数据吞吐,同时实现数仓及计算引擎的解耦。flink14完成数据的etl处理及实时数据的统计。数据中台11完成上述事项的管控,包括数据质量管理和数据存储及数据服务全生命周期的数据管理,其是实现对从数据采集到数据etl处理,数据存储及数据服务全生命周期的数据管理,包括元数据,数据质量,数据规范、数据安全等。hdfs15是实现离线数据的存储,用于将离线数据导入至doris11中。数据中台11可以由很多服务器集群或服务器来实现,后续为了说明方便,简称服务器。91.上述实现实时数仓设计的原理系统有很多种,以上仅是一种举例说明。92.请参阅图3,一种基于doris的实时数仓设计方法的流程图。包括:93.s110:将业务实时数据导入到kakfa队列,并放入适配的topic标签中,提供消费topic标签中数据的至少一消费任务,设置适配的routineload任务监控;94.s120:routineload任务监控实时读取用于表明topic标签中消费当前数据所在位置信息的偏移量;95.s130:若所述偏移量在预设时间内未增长,则重新启动所述routineload任务监控,从所述偏移量继续执行所述消费任务;96.s140:将消费任务执行后的streamload数据流导入到doris中。97.本流程是针对业务实时数据且不需要特殊复杂的二次处理的数据实时导入至doris。在kakfa队列设置多个topic标签(如图1所示,包括第一topic标签131、第二topic标签132、…第ntopic标签133)。业务实时数据按需或按类别导入到kakfa队列,并放入其适配的topic标签中,如果直接消费topic的streamload数据流直接导入到doris时,会发现数据会被阻塞,经常挂掉的情况,为此,我司技术人员经过分析获知由于导入的数据量大,事务数量比较大才尽管如发现积压数据的问题。为此,我司在服务器上设置routineload任务监控。提供消费topic标签中数据的消费任务一般适配一routineload任务监控。在本发明中,第一topic标签131、第二topic标签132、…第ntopic标签133中,提供消费一topic标签中数据的消费任务可能有多个,比如第一topic标签131可能有多个消费任务,而且根据需要处理或统计数据,实时会创建新的消费任务。本发明中,是针对消息任务来创建对应的routineload任务监控,当预先设定的时间(如几秒)内routineload任务监控中的偏移量不发生变化时,则重新启动所述routineload任务监控,根据所述偏移量继续执行所述消费任务,即重新启动执行该消费人任务中对应的streamload数据流导入到doris中。在本实例中,可以建立routineload任务监控组,每一topic标签131设置一routineload任务监控组,当预先设定的时间内有load任务监控组若存在多组偏移量不发生变化,可以一并分别启动各种的routineload任务监控。当在预先设定的时间内,该种状换发生多次时,可以发出需要手动处理的通知,这种设置更提升处理的效率且提升其安全性。本实例做了一个自定义的routineload监控,去实时读取它的offset,如果发现了offset不再增长之后,就会手动通过监控系统去执行停掉routineload的任务,并重新启动routineload,offset用之前的,这样既能保证数据不丢,也不会重复,同时恢复routineload。98.另外,本实例中,最常用的streamload可以通过自定义了flink的sink,这个操作也比较简单,就直接用http把数据导入到doris。即,将消费任务执行后的streamload数据进行导入到doris中进一步包括:99.在flink实时计算集群上创建一个所述streamload数据流最终输出位置到所述doris中的sink:flink-connector-dorisdb;100.streamload数据通过缓存并批量直接由http导入至所述doris中。101.具体地,要先下载connector的jar包并放入flink的lib/目录下,然后进入cli后执行如下命令即可创建一个到dorisdb的sink。创建一个flink-connector-dorisdb:streamload数据流最终输出位置到doris中的sink。增设exactly-once的数据sink,需要外部系统的twophasecommit机制。由于dorisdb无此机制,申请人需要依赖flink的checkpoint-interval在每次checkpoint时保存已经缓存的数据组及其label,在之后的数据传入时阻塞flush所有state中已经缓存的数据,以此达到精准一次。但如果dorisdb挂掉了,会导致用户的flinksinkstream算子长时间阻塞,并引起flink的监控报警或强制kill。本发明可以默认使用csv格式进行导入。如果遇到还存在导入停止的情况,本发明还可以增加flink任务的内存来提升工作效率。102.实例三103.上述实例二主要是对针对业务实时数据的导入,本实例三可以在此基础上增设实时数据需要二次业务逻辑处理后的导入doris。实时导入之前,还有很多数据或任务需要各种二次处理才能导入,这样情况,本发明采用如下方案实现:104.需要二次业务逻辑处理的至少一实时数据先通过flink的二次业务逻辑处理,再进行缓存,后将处理完成后streamload数据导入doris。具体来说还包括:找到需要二次业务逻辑处理的实时数据,先对所述实时数据通过flink进行所述二次业务的逻辑处理,再对所述逻辑处理后的数据进行缓存,最后将缓存的所述数据由streamload导入doris。比如,数据中有大量重复数据记录,则可以对二次业务逻辑处理包括对该些数据进行查重和去重处理,后再将查重和去重的数据先进行缓存,再通过streamload导入doris。105.需要二次业务逻辑处理的至少一实时数据先通过flink的二次业务逻辑处理进一步包括:106.至少一所述实时数据的二次业务逻辑设置成一任务管理,所述任务管理提交适配的任务作业给jobmanager,所述jobmanager负责所述作业的调度和资源分配,107.所述jobmanager将所述作业分给对应的taskmanager,taskmanager收到所述任务作业后,启动线程去执行,并向jobmanager报告所述任务状态和自身运行状态;108.当所述任务执行结束后,所述jobmanager将收到通知,并将二次业务逻辑处理后的数据后发送给对应的任务管理。109.举个例子来说,需要二次业务逻辑处理的至少一实时数据先通过flink的二次业务逻辑处理进一步包括:110.先从ods日志主题消费数据,然后通过用户行为,将所述数据中的行为数据分为3种:页面日志,曝光日志,启动日志;111.通过定义了一个flink的状态变量为时间,用于过滤新用户的数据:判断是否是新用户,如果是第一次来的话,其状态就是空,将现在的时间更新进所述状态,否则状态不为空,则所述当前用户修改为老用户;112.对进行过滤处理后的数据进行分流处理,所述启动日志和所述曝光数据写入侧输出流,所述页面数据写入主流并通过json获取对应的值,在start中写入启动测输出流,去除所述启动日志全部为页面日志,将所述页面日志写入到主流,再判断是否是曝光日志,然后写入到曝光侧输出流。113.实例四114.与实例二或实例三相比,本实例四中包含对离线业务的导入方案的处理。其进一步包括:在离线业务场景中,利用brokerload将所述离线业务数据从hdfs导入所述doris;通过sql方式,使用dolphinscheduler配置调度任务,批处理完成所述离线业务数据的处理,后汇总到一个总表中。115.在dolphinscheduler配置调度任务,即哪些离线业务需要导入配置的调度任务,即可通过hdfs将对应的数据导至至doris,并且可以根据需要汇总至一张总表中。还有,通过下述的命令查询导入的结果116.showloadwherelabel="ts_202111221719";117.cancelled:导入失败,可查看http链接报错原因118.loading:正常导入中。119.finished:导入完成120.通过上述命令对每一调度任务进行跟踪反馈,及时获知导入的结果并进行。121.实例五122.本实例还包括:在实际业务场景中相对固定的数据,直接对接数据服务大厅,由所述数据服务大厅与powerbi工具和前端报表对接。该步骤的目的是对于一些相对固定的数据,直接输出到前端报表中。对于adhoc的数据,提供bi工具供业务人员查询。powerbi是一款实力非凡的产品,出自于微软公司,powerbi是基于excel的高级功能,在这上面延伸并开发出了多样化的功能点作为集合,最后造就了这款bi工具。powerbi能就常规的文件格式数据进行直接导入分析,比如大家熟知的excel、txt等等,也可以直接对传统数据库和多维数据库的对接。不容分说,powerbi作为大厂的手笔,稳定性和使用的流畅度都是很奈斯的。另外,powerbi提供了一些可视化界面的操作选项,结合m语言和dax函数,可以进行数据加工处理123.实施例六124.如图4所示,基于相同的构思,本发明还一种基于doris的实时数仓设计装置,包括:125.routineload任务监控设置模块401:用于将业务实时数据导入到kakfa队列,并放入适配的topic标签中,后提供消费所述topic标签中数据的至少一消费任务,设置适配的routineload任务监控;126.routineload任务监控处理模块402:用于所述routineload任务监控实时读取用于表明所述topic标签中消费当前数据所在位置信息的偏移量;127.所述routineload任务监控启动模块403:用于若所述偏移量在预设时间内未增长,则重新启动所述routineload任务监控,从所述偏移量继续执行所述消费任务;128.导入模块404:用于将所述消费任务执行后的streamload数据流导入到doris中。129.该实时数仓库设计装置可以集成中上述的数据中仓中,也可以单独为一服务器。130.实施例七131.如图5所示,基于相同的构思,本发明还提供一种计算机设备600,该计算机设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器610(centralprocessingunits,cpu)710(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在计算机设备600上执行存储介质630中的一系列指令操作。132.计算机设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件或者组合某些部件,或者不同的部件布置。133.所述计算机可读指令被所述处理器执行时,通过将业务实时数据从flume或canal中导入到kafka,kafka中业务实时数据经过多次数据处理,数据处理后用sql导入到doris;在复杂的业务逻辑中,业务实时数据先通过flink处理,再利用redis或pika缓存,处理完成既可以用streamload方法导入doris;在离线业务场景中,业务数据利用brokerload将业务数据从hdfs导入doris,再通过sql方式,使用dolphinscheduler跑批处理复杂业务数据,最后汇总到一个总表中;在实际业务场景中,直接对接数据服务大厅,由数据服务大厅对接powerbi工具和前端报表。多表的票单量精确去重,并保证数据的准确性;支持多种报表的导出和多种数据源的导入;数据无积压,保障在数据量高峰访问时平稳运行。134.在一个实施例中,提出了一种可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述一种基于doris的实时数仓设计方法,具体步骤在此不再赘述。135.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。136.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。137.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献