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

数据仓库构建方法、装置、计算机设备和存储介质与流程

2021-12-04 02:13:00 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,具体而言,涉及一种数据仓库构建方法、装置、计算机设备和存储介质。
背景技术
::2.数据仓库(dw,datawarehouse)是一个面向主题的、集成的、随时间变化的、相对稳定的数据集合,用于支持管理决策。传统方式中,是通过传统数仓架构或者使用基于mapreduce计算框架的hadoop框架来构建数据仓库。然而传统的数据仓库构建方式非常的繁琐,需要技术人员技术过硬,需要学习专有的技术语言,技术人员的学习成本较高,导致企业的数据仓库构建成本较高。技术实现要素:3.本技术的主要目的在于提供一种能够通过减少企业人才的学习成本,以降低企业的数据仓库构建成本的数据仓库构建方法、装置、计算机设备和存储介质。4.为了实现上述目的,根据本技术的一个方面,提供了一种数据仓库构建方法。5.根据本技术的数据仓库构建方法包括:6.获取埋点数据,以及结构化数据;7.将所述埋点数据以及所述结构化数据分别存储至hive表中;8.对所述hive表中的数据进行数据主题划分,根据划分的数据主题确定数据仓库的构建类型;9.根据确定的数据仓库的构建类型构建数据仓库。10.进一步的,所述将所述埋点数据以及所述结构化数据分别存储至hive表中,包括:11.将所述埋点数据实时上传至分布式消息队列,将所述分布式消息队列中的数据存储至分布式文件系统,通过hive将所述分布式文件系统中的数据导入至hive表中;12.将所述结构化数据存储至所述hive表中。13.进一步的,所述根据确定的数据仓库的构建类型构建数据仓库,包括:14.根据确定的数据仓库的构建类型生成事实表与维度表;15.根据生成的事实表与维度表构建数据仓库。16.进一步的,所述获取埋点数据,包括:17.通过数据埋点追踪事件数据,利用flume收集数据埋点追踪的事件数据,将收集的事件数据作为埋点数据。18.进一步的,所述方法还包括:19.获取数据查询请求,所述数据查询请求携带请求参数;20.通过hivesql语言根据所述请求参数生成查询语句;21.执行所述查询语句,在所述数据仓库中进行数据查询。22.为了实现上述目的,根据本技术的另一方面,提供了一种数据仓库构建装置。23.根据本技术的数据仓库构建装置包括:24.通信模块,用于获取埋点数据,以及结构化数据;25.数据存储模块,用于将所述埋点数据以及所述结构化数据分别存储至hive表中;26.构建类型确定模块,用于对所述hive表中的数据进行数据主题划分,根据划分的数据主题确定数据仓库的构建类型;27.数据仓库构建模块,用于根据确定的数据仓库的构建类型构建数据仓库。28.进一步的,所述数据存储模块还用于将所述埋点数据实时上传至分布式消息队列,将所述分布式消息队列中的数据存储至分布式文件系统,通过hive将所述分布式文件系统中的数据导入至hive表中;将所述结构化数据存储至所述hive表中。29.进一步的,所述数据仓库构建模块还用于根据确定的数据仓库的构建类型生成事实表与维度表;根据生成的事实表与维度表构建数据仓库。30.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。31.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。32.上述数据仓库构建方法、装置、计算机设备和存储介质,获取埋点数据,以及结构化数据,将埋点数据以及结构化数据分别存储至hive表中,对hive表中的数据进行数据主题划分,根据划分的数据主题确定数据仓库的构建类型,根据确定的数据仓库的构建类型构建数据仓库。由于hive使用的是hivesql语言来进行程序的编写,与标准的sql差别不大,从而可以使开发人员更快的进入系统的主题,减少了不必要的学习成本,有效降低了企业的数据仓库构建成本。附图说明33.构成本技术的一部分的附图用来提供对本技术的进一步理解,使得本技术的其它特征、目的和优点变得更明显。本技术的示意性实施例附图及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:34.图1是一个实施例中数据仓库构建方法的应用环境图;35.图2为一个实施例中数据仓库构建方法的流程示意图;36.图3为一个实施例中星型模型的结构示意图;37.图4为一个实施例中雪花模型的结构示意图;38.图5为一个实施例中星座模型的结构示意图;39.图6为一个实施例中将埋点数据以及结构化数据分别存储至hive表中步骤的流程示意图;40.图7为另一个实施例中数据仓库构建方法的流程示意图;41.图8为一个实施例中数据仓库构建装置的结构框图;42.图9为一个实施例中计算机设备的内部结构图。具体实施方式43.为了使本
技术领域
:的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。44.需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。45.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。46.本技术提供的数据仓库构建方法,可以应用于如图1所示的应用环境中。其中,终端102与服务器104通过网络进行通信。终端102中预先安装有应用程序(application),用户可以通过登录终端的应用程序,发送数据仓库构建请求至服务器104,服务器对数据仓库构建请求进行解析,获取到埋点数据,以及结构化数据,将埋点数据以及结构化数据分别存储至hive表中,对hive表中的数据进行数据维度划分,根据划分的数据维度确定数据仓库的构建类型,根据确定的数据仓库的构建类型构建数据仓库。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。47.在一个实施例中,如图2所示,提供了一种数据仓库构建方法,以该方法应用于图1中的服务器为例进行说明,包括如下的步骤202至步骤208:48.步骤202,获取埋点数据,以及结构化数据。49.埋点数据是指应用程序的数据埋点向服务器请求的时候附带的一些能够帮助用户提升用户体验的数据。通过数据埋点可以实现收集需要监控的数据。例如,埋点数据可以是日志信息、业务数据、缓存及图片、文件、各类报表或音频、视频等非结构化数据。非结构化数据是指数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。50.结构化数据与非结构化数据是相对应的。本实施例中的结构化数据可以是结构化的本地数据。结构化数据一般是来源于关系型数据库中的数据,这些数据一般比较规范,有一定的数据模型,遵循一定的数据规范。结构化数据的一种形式为半结构化数据,半结构化数据一般是xml和json这种有一定的结构,但它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。51.在本实施例的一种可选方式中,获取埋点数据,包括:通过数据埋点追踪事件数据,利用flume收集数据埋点追踪的事件数据,将收集的事件数据作为埋点数据。应用程序中预先设置有数据埋点,数据埋点可以追踪事件数据,进一步的,可以使用flume收集数据埋点追踪的事件数据。flume是cloudera提供的一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。flume还可以用于收集事件数据和传输事件数据。52.步骤204,将埋点数据以及结构化数据分别存储至hive表中。53.hive表是hive中存储的一种数据类型。hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为mapreduce任务进行运行。54.服务器将获取到的埋点数据先存储至分布式文件系统(hdfs),再讲分布式文件系统中的数据存储至hive表中。针对结构化数据,可以直接存储至hive表中。55.步骤206,对hive表中的数据进行数据主题划分,根据划分的数据主题确定数据仓库的构建类型。56.步骤208,根据确定的数据仓库的构建类型构建数据仓库。57.由于数据仓库(dw,datawarehouse)是一个面向主题的、集成的、随时间变化的、相对稳定的数据集合,为了构建数据仓库,可以对hive表中的数据进行数据主题划分,得到多个数据主题,每个数据主题可以对应多个数据维度。例如,数据主题可以包括日志主题、上网维度主题、产品主题等。服务器根据数据主题与对应的维度之间的关系确定数据仓库的构建类型。数据仓库的构建类型在构建数据仓库时,是非常直观的,能够紧紧围绕着业务模型,可以直观地反映出业务模型中的业务,且不需要经过特别的抽象处理即可以完成数据仓库的构建。58.数据仓库的构建类型可以包括雪花模型、星型模型、星座模型。本实施例中确定的数据仓库的构建类型可以是一种模型,也可以是多种模型的结合。如图3所示为星型模型的结构示意图。星型模型是由一张事实表作为中心,周围是关联该表的维度表,但是维度表只有一层。如图4所示为雪花模型的结构示意图。雪花模型即在星型模型的基础上在外面有多层维度表。如图5所示为星座模型的结构示意图。星座模型则是两个或多个星型模型的维度表共用一张的情况。其中,事实表(facttable)是指存储有事实记录的表,如系统日志、销售记录等。事实表的记录在不断地动态增长,所以它的体积通常远大于其他表。发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。比如一次购买行为可以理解为是一个事实。维度表(dimensiontable)或维表,有时也称查找表(lookuptable),是与事实表相对应的一种表。它保存了维度的属性值,可以与事实表做关联,相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。例如,常见的维度表有日期表(存储与日期对应的周、月、季度等的属性)、地点表(包含国家、省/州、城市等属性)等。59.在其中一个实施例中,根据确定的数据仓库的构建类型构建数据仓库,包括:通过确定的数据仓库的构建类型生成事实表与维度表,从而根据生成的事实表与维度表构建数据仓库。数据仓库的构建类型中包括事实表与维度表之间的对应关系,根据该对应关系可以生成事实表与维度表,从而构建数据仓库。能够快速构建数据仓库,得到用户大数据时代的数据仓库系统,进而建立起自动化流程进行日常的常规数据的收集与维度。60.本实施例中,获取埋点数据,以及结构化数据,将埋点数据以及结构化数据分别存储至hive表中,对hive表中的数据进行数据主题划分,根据划分的数据主题确定数据仓库的构建类型,根据确定的数据仓库的构建类型构建数据仓库。由于hive使用的是hivesql语言来进行程序的编写,与标准的sql差别不大,从而可以使开发人员更快的进入系统的主题,减少了不必要的学习成本,有效降低了企业的数据仓库构建成本。61.在一个实施例中,如图6所示,将埋点数据以及结构化数据分别存储至hive表中的步骤,包括:62.步骤602,将埋点数据实时上传至分布式消息队列,将分布式消息队列中的数据存储至分布式文件系统,通过hive将分布式文件系统中的数据导入至hive表中。63.步骤604,将结构化数据存储至hive表中。64.利用flume收集数据埋点追踪的事件数据,作为埋点数据。将flume收集的埋点数据实时上传至分布式消息队列(kafka),进行数据数据的缓冲存储。kafka作为一个分布式消息队列,可以配合flume作为实时数据处理的数据源。通过将flume收集的数据实时存储至分布式消息队列,可以达到削峰填谷的目标,消除因为数据发送过快来不及处理导致的应用卡死或者程序无响应等问题。65.之后,将分布式消息队列中的数据存储至分布式文件系统,可以通过hive提供的相关功能将分布式文件系统中的数据导入hive表中。对于结构化数据,则可以直接存储至hive表中。66.在本实施例中,将埋点数据实时上传至分布式消息队列,将分布式消息队列中的数据存储至分布式文件系统,通过hive将分布式文件系统中的数据导入至hive表中,以及将结构化数据直接存储至hive表中,实现将数据通过hive存储在hive表,能够避免数据发送过快导致应用程序卡死或无响应的问题,且由于hive可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为mapreduce任务进行运行,数据仓库的数据管理高效且快速。另外,埋点数据是实时存储至hive表中的,可以实现实时的数据仓库构建,而hive表还存储有离线的结构化本地数据,实现离线的数据仓库构建。数据仓库构建方式更灵活。67.在另一个实施例中,如图7所示,一种数据仓库构建方法,可以如下所示:68.通过flume部署flume_agent和flume_collector,flume_agent为一个java应用程序,每个flume_agent可以对应接收一个application的数据,flume_collector接收所有flume_agent上传的数据,将数据实时存储至分布式消息队列(kafka)中,再将分布式消息队列(kafka)中的数据存储至分布式文件系统(hdfs集群)中,进而将分布式文件系统中的数据导入至hive表。通过将flume收集的数据实时存储至分布式消息队列,可以达到削峰填谷的目标,消除因为数据发送过快来不及处理导致的应用卡死或者程序无响应等问题。由于hive使用的是hivesql语言来进行程序的编写,与标准的sql差别不大,从而可以使开发人员更快的进入系统的主题,减少了不必要的学习成本,有效降低了企业的数据仓库构建成本。69.在一个实施例中,上述方法还包括:获取数据查询请求,数据查询请求携带请求参数;通过hivesql语言根据请求参数生成查询语句;执行查询语句,在数据仓库中进行数据查询。70.使用hive对构建的数据仓库进行日常的数据统计、查询和计算等。例如,当获取到终端发送的数据查询请求时,对数据查询请求进行解析,得到请求参数。请求参数可以包括查询字段。通过hive使用hivesql语言将请求参数生成查询语句,并通过执行查询语句,实现数据查询操作。由于hive使用的是hivesql语言进行程序的编写,hivesql与标准sql只有略微的差异,这样减少了技术人员的学习成本,从而更有效的解决了问题,便于快速建立起用于大数据时代的数据仓库系统,进而建立起自动化流程进行日常的常规数据收集与维护。71.在一个实施例中,在将埋点数据以及结构化数据分别存储至hive表之后,上述方法还包括:对hive表中的数据进行数据清洗;对数据清洗后的数据进行格式调整,得到格式调整后的数据;对格式调整后的数据进行过滤处理。72.数据清洗是指发现并纠正数据中可识别的错误的最后一道程序,包括检查数据一致性、处理无效值和缺失值等。具体的,可以利用数理统计、数据挖掘或预定义的清理规则将hive表中的脏数据(异常数据或无价值数据)转化为满足数据质量要求的数据。73.由于数据清洗后的数据的格式可能是不同的,可以根据数据仓库的数据格式要求对数据清洗后的数据进行格式调整。例如,日志数据需要进行解析、组装、转换等操作得到标准格式。之后,还可以对格式调整后的数据进行过滤处理,过滤掉空数据、异常数据、错误数据等。74.在本实施例中,通过对hive表中的数据进行数据清洗、格式调整和过滤,实现将采集到的数据转换为规范、干净的数据,提高了数据仓库的准确性。75.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。76.在一个实施例中,如图8所示,提供了一种数据仓库构建装置,包括:通信模块802、数据存储模块804、构建类型确定模块806和数据仓库构建模块808,其中:77.通信模块802,用于获取埋点数据,以及结构化数据。78.数据存储模块804,用于将埋点数据以及结构化数据分别存储至hive表中。79.构建类型确定模块806,用于对hive表中的数据进行数据主题划分,根据划分的数据主题确定数据仓库的构建类型。80.数据仓库构建模块808,用于根据确定的数据仓库的构建类型构建数据仓库。81.在一个实施例中,数据存储模块804还用于将埋点数据实时上传至分布式消息队列,将分布式消息队列中的数据存储至分布式文件系统,通过hive将分布式文件系统中的数据导入至hive表中;将结构化数据存储至hive表中。82.在一个实施例中,数据仓库构建模块808还用于根据确定的数据仓库的构建类型生成事实表与维度表;根据生成的事实表与维度表构建数据仓库。83.在一个实施例中,通信模块802还用于通过数据埋点追踪事件数据,利用flume收集数据埋点追踪的事件数据,将收集的事件数据作为埋点数据。84.在一个实施例中,上述装置还包括:85.数据查询模块,用于获取数据查询请求,数据查询请求携带请求参数;通过hivesql语言根据请求参数生成查询语句;执行查询语句,在数据仓库中进行数据查询。86.关于数据仓库构建装置的具体限定可以参见上文中对于数据仓库构建方法的限定,在此不再赘述。上述数据仓库构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。87.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储一种数据仓库构建方法中的埋点数据、结构化数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据仓库构建方法。88.本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。89.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的步骤。90.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的步骤。91.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。92.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。93.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献