CN104462486B - 生成数据库的对象定义的方法及装置 - Google Patents

生成数据库的对象定义的方法及装置 Download PDF

Info

Publication number
CN104462486B
CN104462486B CN201410797882.9A CN201410797882A CN104462486B CN 104462486 B CN104462486 B CN 104462486B CN 201410797882 A CN201410797882 A CN 201410797882A CN 104462486 B CN104462486 B CN 104462486B
Authority
CN
China
Prior art keywords
file
database
group
database object
title
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410797882.9A
Other languages
English (en)
Other versions
CN104462486A (zh
Inventor
马燕龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410797882.9A priority Critical patent/CN104462486B/zh
Publication of CN104462486A publication Critical patent/CN104462486A/zh
Application granted granted Critical
Publication of CN104462486B publication Critical patent/CN104462486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种生成数据库的对象定义的方法及装置。该方法包括:获取用户预先设定的数据库的数据结构信息,数据结构信息包括Analysis Service数据库的根目录;遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息,其中,组信息包括:多个数据库对象组的组名称以及数据库对象组中的每个数据库对象的名称;根据数据库对象组的组信息生成目标对象文件,其中,目标对象文件包括数据库的对象定义。本发明解决现有技术中将数据库中大量的对象定义手动的添加到目标文件中导致容易出错的问题。

Description

生成数据库的对象定义的方法及装置
技术领域
本发明涉及计算机软件领域,具体而言,涉及一种生成数据库的对象定义的方法及装置。
背景技术
基于OLAP(On-Line Analytical Processing,联机分析处理)数据仓库技术,使用Analysis Service(分析服务)数据库作为后端数据存储来开发应用程序比如说前端网站时,前端网站要根据Analysis Service数据库的对象定义生成查询语句从而发起对Analysis Service数据库的访问,因此前端网站需要记录Analysis Service数据库定义了哪些Analysis Service对象,现有技术的做法是将Analysis Service数据库的对象定义预先手动的添加到目标文件中(xml(Extensible Markup Language,可扩展标记语言)文件,代码文件,资源文件)。
这里需要说明的是,Analysis Service数据库中通常包含上百个AnalysisService对象定义,采用人工手动的将上述上百个Analysis Service对象定义添加到上述目标文件(xml文件,代码文件,资源文件)中,耗费时间长,而且容易出错,而且每次修改数据库的时候,还要手动的对上述目标文件中的对象定义进行修改,如果遗漏的话,发起对数据库的查询就会失败,影响开发的产品的稳定性。
针对现有技术中将Analysis Service数据库中大量的对象定义手动的添加到目标文件中导致容易出错的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种生成数据库的对象定义的方法及装置,以解决现有技术中将数据库中大量的对象定义手动的添加到目标文件中导致容易出错的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种生成数据库的对象定义的方法。该方法包括:获取用户预先设定的数据库的数据结构信息,数据结构信息包括数据库的根目录;遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息,其中,组信息包括:多个数据库对象组的组名称以及数据库对象组中的每个数据库对象的名称;根据数据库对象组的组信息生成目标对象文件,其中,目标对象文件包括数据库的对象定义。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种生成数据库的对象定义的装置。该装置包括:第一获取模块,用于获取用户预先设定的数据库的数据结构信息,数据结构信息包括数据库的根目录;遍历模块,用于遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息,其中,多个数据库对象组的组信息包括:多个数据库对象组的组名称以及多个数据库对象组中的每个数据库对象的名称;生成模块,用于根据数据库对象组的组信息生成目标对象文件,其中,目标对象文件包括数据库的对象定义。
根据发明实施例,通过获取用户预先设定的数据库的数据结构信息,数据结构信息包括数据库的根目录;遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息,其中,组信息包括:多个数据库对象组的组名称以及数据库对象组中的每个数据库对象的名称;根据数据库对象组的组信息生成目标对象文件,其中,目标对象文件包括数据库的对象定义。解决了现有技术中将数据库中大量的对象定义手动的添加到目标文件中导致容易出错的问题。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的生成数据库的对象定义的方法的流程图;以及
图2是根据本发明实施例二的生成数据库的对象定义的装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
本申请专业术语如下解释:
(1)OLAP,一中建立数据***的方法,核心思想就是建立多维度的数据立方体,以维度(Dimension)和度量(Measure)为基本概念,辅以元数据,实现可以钻取、切片、切块、旋转等灵活、***、直观的数据展现。数据仓库也经常用到此种模式。
(2)Analysis Service数据库,一种基于OLAP的数据库,只支持查询,不支持增删改,通常我们说的数据库是OLTP(on-line transaction processing,联机事务处理)支持增删改查操作。
(3)指标,可以进行聚合运算的值,聚合运算包括:求和、平均、计数等,比如PV(page view,页面访问量)数是一个指标,使用求和进行聚合;平均停留时间是一个指标,使用平均进行聚合。
(4)维度,查看指标的不同角度,比如浏览器是一个维度,从浏览器这个维度查询PV,即为用户使用哪些浏览器查看页面,使用这些浏览器查看的页面次数。
实施例一
本发明实施例提供了一种生成数据库的对象定义的方法。如图1所示,该方法包括步骤如下:
步骤S10,获取用户预先设定的数据库的数据结构信息,数据结构信息包括数据库的根目录。
这里需要说明的是,在本文中出现的数据库均可以为Analysis Service数据库即分析服务数据库。
具体的,由于不同用户可能将上述Analysis Service数据库安装在不同的根目录下,因此在本方案中,可以先获取由用户设定或提供的已安装的Analysis Service数据库的根目录,在获取到上述根目录后,Analysis Service数据库的数据结构就可以确定了。
步骤S12,遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息,其中,上述多个数据库对象组的组信息包括:多个对象组名称以及每个数据库对象组中的数据库对象的名称。
具体的,上述根目录下的数据库对象文件中可以包含多个数据库对象组,在本方案中,可以通过遍历的方法来获取上述多个数据库对象组的组信息,可选的,在一种可选的实施例中,数据库对象文件中的一个数据库对象组的组信息如表1所示。表1中所示的是同一个数据库对象组的具体的两个数据库对象的信息。
表1:
组名称 数据库对象名称
Ad AdSource
Ad AdGroup
步骤S14,根据数据库对象组的组信息生成目标对象文件,目标对象文件包括Analysis Service数据库的对象定义。
具体的,在本方案中,可以根据上述获取的组信息生成目标对象文件,上述目标对象文件中可以为xml文件、代码文件、资源文件,在上述三个文件中只保存数据库的对象定义,该三个文件中的对象定义用于被解析,进而生成查询语句以对数据库发起查询。
本实施例首先通过在用户安装Analysis Service数据库的根目录中的存储数据结构的文件中读取数据库对象的定义,再根据上述数据库的定义自动生成目标对象文件中的对象定义,解决了现有技术中将Analysis Service数据库中大量的对象定义手动的添加到只保存数据库对象定义的目标文件中导致容易出错的问题,实现了自动生成AnalysisService数据库的对象定义的方法,这里需要说明的是,如果Analysis Service数据库中的数据结构发生了变化,***会自动生成变化之后的对象定义,无需人工修改。
在一种可选的实施例中,上述数据库对象文件中的多个数据库对象组包括:维度组、指标组,其中,维度组中包含多个维度称,指标组包含多个指标。
具体的,上述数据库对象文件中可以包括维度的定义和指标的定义。而在本方案中则根据数据库对象文件中的维度的定义和指标的定义生成目标文件中的新的维度的定义和新的目标指标的定义,上述数据库对象文件中的维度的定义可以体现为维度组和维度组中每个维度的信息,指标的定义可以体现为指标组和指标组中每个指标的信息,关于维度组和维度组中每个维度的信息如表2所示,关于指标组和指标组中每个指的的信息如表3所示,表2示出的为同一维度组的具体两个不同的维度的信息,表3示出的为同一指标组的具体的两个不同的指标的信息。
表2:
维度组名称 维度名称
Ad AdSource
Ad AdGroup
表3:
指标组名称 指标名称
Session Impressions
Session Visits
这里需要说明的是,由于上述数据库的对象文件包含着维度的定义和指标的定义,因此在步骤S12中,遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息的步骤可以包括:
步骤S121,遍历根目录下用于定义维度组的第一文件,读取第一文件中的每个维度组的名称以及维度组中的每个维度的名称。
具体的,在本方案中,上述第一文件可以是上述安装Analysis Service数据库的根目录下的以.dim.xml结尾的文件,该第一文件中为对数据库中的维度的定义。如下是Ad.dim.xml文件的一个例子,需要说明的是,该例子删除了无关的元素、属性,删除了大多数Analysis Service数据库的维度对象,只保留了一部分Analysis Service数据库的维度对象:
这里需要说明的是,在本方案中,可以在上述xml文件中获取Dimension元素下Name元素的值Ad以及Attribute元素下的Name元素的值AdSource、AdGroup,这里还需要说明的是,在上述xml文件中获取的为上述第一文件中的每个维度组的名称,在上述xml文件中获取的AdSource、AdGroup为上述维度组中的每个维度的名称。
步骤S122,遍历根目录下用于定义指标组的第二文件,读取第二文件中的每个指标组的名称以及指标组中的每个指标的名称。
具体的,在本方案中,上述第二文件可以是上述安装Analysis Service数据库的根目录下的Cub结尾目录下的以.det.xml结尾的文件,该文件中为对数据库中的指标的定义。如下是Ad.det.xml文件的一个例子,需要说明的是,该例子删除了无关的元素、属性,删除了大多数Analysis Service数据库的指标对象,只保留了一部分Analysis Service数据库的指标对象:
这里需要说明的是,在本方案中,可以在上述xml文件中获取MeasureGroup元素下Name元素的值Session以及Measures元素下的Name元素的值Visits、Impressions,这里还需要说明的是,在上述xml文件中获取的Session为上述第一文件中的每个指标组的名称,在上述xml文件中获取的Visits、Impressions为上述指标组中的每个指标的名称。
可选的,在步骤S14,根据数据库对象组的组信息生成目标对象文件之前,本实施例提供的方法还可以包括:
步骤S131,创建待替换文件,其中,待替换文件为以下任意一个或多个文件:xml文件、代码文件以及资源文件。
步骤S132,在待替换文件中预先定义每个数据库对象组的名称所对应的一个或多个位置,并定义每个数据库对象的名称所对应的一个或多个位置。
步骤S133,在每个数据库对象组的名称所对应的一个或多个位置上设定相同的第一占位符,并在每个数据库对象的名称所对应的一个或多个位置上设定相同的第二占位符。
具体的,在本方案中,由于在待替换文件(xml文件,代码文件以及资源文件)中,欲生成的相同的每个数据库对象组名称和每个数据库对象会出现多次,因此,在上述待替换文件中设定多个相同的第一占位符和第二占位符。
这里说明的是,由于资源文件分为xml文件、代码文件以及资源文件,而数据库对象定义分为维度的定义和指标的定义,所以本文在每一种具体的应用场景展开描述来解释上述步骤S131至步骤S133。
下面以在xml文件中生成维度的定义来解释上述步骤S131至步骤S133:
在本案中,在读取了数据库对象文件中的维度的定义即每个维度组名称以及维度组中的每个维度名称之后,可以创建xml文件,首先,在xml文件中创建ViewportGroup元素,在ViewportGroup元素下添加ViewportID元素,在一种可选的实施例当中,上述xml文件可以包含下列代码:
具体的,在上述代码中,多个占位符“0”与维度组是对应的,多个占位符“1”和“2”与维度组中具体的维度是对应的。
下面结合在代码文件中为生成维度而设定占位符为例解释上述步骤S131至步骤S133:
具体的,上述代码文件可以为如下代码:
具体的,在上述代码中,多个占位符“0”与维度组是对应的,多个占位符“1”和“2”与维度组中具体的维度是对应的。
下面结合在资源文件中为生成维度而设定占位符为例解释上述步骤S131至步骤S133:
具体的,在本方案中,由于需要对Analysis Service数据库中的对象定义根据不同的语言进行翻译,因此添加多语言的资源文件,每个语言资源文件存储的是AnalysisService对象在该语言下的翻译。以下是英文资源的一个例子:
具体的,在资源文件中添加data元素,name属性为维度组的名称,因为上述资源文件有两个维度,占位符“1”和“2”与维度组中具体的维度是对应的。
下面结合在xml文件中为生成指标而设定占位符为例解释上述步骤S131至步骤S133:
具体的,在上述xml文件中,占位符“3”对应指标组名称,“4”“5”分别对应指标组中指标的名称。
在一种可选的实施例中,在本方案中,结合上述xml代码,可以在上述xml文件中添加GroupRelationships元素,并在GroupRelationships元素下添加string元素,其
格式为[MetricGroup].[3]+[ViewportGroup].[0]。
下面结合在代码文件中为生成指标而设定占位符为例解释上述步骤S131至步骤S133:
具体的,在上述代码文件中,占位符“3”对应指标组名称,“4”“5”分别对应指标组中指标的名称。
下面结合在资源文件中为生成指标而设定占位符为例解释上述步骤S131至步骤S133:
具体的,在上述资源文件中,占位符“4”对应指标组名称,“5”对应指标组中指标的名称。
可选的,在步骤S14,根据数据库对象组的组信息生成目标对象文件的步骤可以包括:
在步骤S141,根据读取到的数据库对象文件中的每个数据库对象组的名称从待替换文件中获取任意一个数据库对象组的名称所对应的第一占位符。
在步骤S142,根据读取到的数据库对象文件中的每个数据库对象的名称从待替换文件中获取任意一个数据库对象的名称所对应的第二占位符。
在步骤S143,使用数据对象文件中读取到的第一数据库对象组名称来替换其在待替换文件中对应的第一占位符。
在步骤S144,使用数据库对象文件中读取到的第一数据库对象名称来替换其在待替换文件中对应的第二占位符。
具体的,在本方案中,在读取到数据库对象文件中任意一个对象组的名称后,可以获取与上述对象组的名称对应的第一占位符,具体的,结合在xml文件中生成维度为例:
在上述以Ad.dim.xml文件中获取到维度组名称Ad和维度名称AdSource与AdGroup之后,则上述维度组名称Ad在xml文件、代码文件以及资源文件对应的第一占位符为“0”,上述AdSource对应的第二占位符则为“1”,上述AdGroup对应的第二占位符则为“2”,在本方案中,可以获取上述占位符,再用上述Ad和AdSource、AdGroup去替换各自对应的占位符,从而生成维度的对象定义。
同样的,在上述以Ad.det.xml文件中获取到指标组名称Session和指标名称Visits与Impressions之后,则上述指标组名称Session在xml文件、代码文件以及资源文件对应的第一占位符为“3”,上述Visits对应的第二占位符则为“4”,上述Impressions对应的第二占位符则为“5”,在本方案中,可以获取上述占位符,再用上述Session和Visits、Impressions去替换各自对应的占位符,从而生成指标的对象定义。
可选的,在本方案中,在上述xml、代码文件、资源文件中生成新的指标和维度的定义之后,本实施例提供的方法还可以包括:
步骤S16,接收用户的查询指令。
步骤S18,根据查询指令加载待替换文件,读取待替换文件中维度和指标的定义并生成针对数据库的查询语句。
具体的,在本方案中,可以通过前端网站来根据上述待替换文件(xml、代码文件、资源文件)中的指标和对象的定义来生成查询语句,进而发起对数据库的访问。
下面结合具体场景对本申请进行详细描述:
基于OLAP数据仓库技术开发的产品可以使用Analysis Service数据库作为后端数据存储。前端网站就是根据Analysis Service对象生成查询语句,对Analysis Service数据库发起查询,因此,前端需要记录Analysis Service数据库定义了哪些AnalysisService对象。具体记录方式为如下三个文件:
(1)XML文件,前端统一将这些Analysis Service对象定义存储在XML文件中,***启动时会加载这个XML,读取XML文件中的定义。如下所示是该XML文件的一个例子,这里限于篇幅进行了删减,实际***中包含上百个Analysis Service对象:
(2)代码文件,定义维度和指标等Analysis Service对象Id,Id唯一标识了一个Analysis Service对象,方便在代码中引用这些Analysis Service对象。如下所示是一个例子,进行了删减:
(3)资源文件,需要对Analysis Service对象根据不同的语言进行翻译,因此添加多语言的资源文件,每个语言资源文件存储的是Analysis Service对象在该语言下的翻译。
以下是英文资源的一个例子,进行了删减:
从上述三个文件可知,Analysis Service数据库中通常包含多个上百个AnalysisService对象定义,我们需要将这上百个对象定义添加到上述的保存Analysis Service对象定义的文件中。同时,Analysis Service数据库结构发生变化时,我们还需要修改这些文件。这里最大的问题是添加这些文件工作量巨大,增加开发时间,且十分繁琐、易于出错、效率低下。每次修改数据库结构,也需要手动修改,如果遗漏的话,发起查询就会失败,影响产品使用和稳定性。
基于此,本申请提出如下方案:
Analysis Service数据库的结构是在多个XML文件中定义的,通过解析这些XML文件,我们最终可以生成Analysis Service对象定义。由于每个用户可能将AnalysisService数据库安装在不同目录下,因此Analysis Service数据库没有固定的根目录,这里需要本解决方案使用者提供Analysis Service数据库结构的根目录。知道根目录以后,根目录下的目录和文件组织结构就是确定的了。具体步骤如下:
(1)由使用者提供Analysis Service数据库结构定义的根目录。
(2)遍历根目录下所有以.dim.xml结尾的文件,这些都是数据库中维度相关对象定义,根据这些文件生成维度相关对象定义。具体的:如下是Ad.dim.xml文件的例子,删除了无关的元素、属性,删除了大多数Analysis Service对象,只保留了一部分AnalysisService对象:
如上所示,Dimension元素是ViewportGroup定义,和上述三个文件中的xml文件中的ViewportGroup元素是等价的,Attribute元素是Viewport定义,和三个文件中的xml文件中的Viewport元素是等价的,由此,本方案可以包括:
1.读取Dimension元素下Name元素的值。
2.生成在XML文件中定义。
2.1在上述三个文件中的xml文件中的ViewportGroups元素下添加ViewportGroup元素,Id属性为[ViewportGroup].[{0}],第0个占位符处使用Dimension的Name元素值替换,Name属性为Dimension的Name元素值.
2.2读取所有Attribute元素下Name元素值,首先在上一步的ViewportGroup元素下添加ViewportIDs元素,然后依次添加string元素,该元素值格式如下:[{0}].[{1}],第0个占位符处使用Dimension的Name元素值替换,第1个占位符处使用Attribute的Name元素值替换。
2.3生成在代码文件中定义。具体的:
2.3.1在上述三个文件中的代码文件中PreDefinedAnalysisObjectID类中,***维度组定义,格式如下:public static readonly string{0}ViewportGroup=“[ViewportGroup].[{0}]”;第0个占位符处有Dimension的Name元素值替换。
2.3.2在上述三个文件中的代码文件中PreDefinedViewportID类下依次***维度定义,格式如下:public static readonly string{1}=“[{0}].[{1}]”;第0个占位符处使用Dimension的Name元素值替换,第1个占位符处使用Attribute的Name元素值替换
2.4生成在资源文件中定义。
2.4.1为维度组添加data元素,Name属性为Dimension的Name元素值,Value元素值为空。
2.4.2为每个维度添加data元素,Name属性为Attribute的Name元素值,Value元素值为空。
需要说明的是,Value值是由每个应用程序开发者填充,因为Analysis Service数据库中的对象的翻译根据每个应用程序的需求决定的,这些翻译不是在Analysis Service数据库中定义的
3.1读取根目录下cub结尾目录下.det.xml结尾的文件,这些都是数据库中指标相关对象定义,根据这些文件生成指标相关对象定义,具体的:
3.2读取MeasureGroup元素下Name元素的值。
3.2.1生成在XML文件中定义。
在上述三个文件中的xml文件中的MetricGroups元素下添加MetricGroup元素,Id属性为[MetricGroup].[{0}],第0个占位符处使用MeasureGroup的Name元素值替换,Name属性为MeasureGroup的Name元素值。
3.2.2读取所有Measure元素下Name元素值,首先在上一步的MetricGroup元素下添加MetricIDs元素,然后依次添加string元素,该元素值格式如下:[Measures].[{0}],第0个占位符处使用Measure的Name元素值替换
3.2.3读取Dimensions元素下所有Dimension元素CubeDimensionID元素,在1.1节GroupRelationships元素下添加string元素,其格式如下:[MetricGroup].[{0}]+[ViewportGroup].[{1}],第0个占位符处使用MeasureGroup元素Name元素值替换,第1个占位符处使用Dimension元素CubeDimensionID元素值替换。
3.3生成在代码文件中定义。具体的:
3.3.1在上述三个文件中的代码文件中PreDefinedAnalysisObjectID类,***指标组定义,格式如下:public static readonly string{0}MetricGroup=“[MetricGroup].[{0}];上述第0个占位符处有MeasureGroup的Name元素值替换。
3.3.2在上述三个文件中的代码文件中PreDefinedMetricID类下依次***维度定义,格式如下:
public static readonly string{0}=“[Measures].[{0}]”;第0个占位符处使用Measure的Name元素值替换。
3.4生成在资源文件中定义的键值。
3.4.1为指标组添加data元素,Name属性为MeasureGroup的Name元素值,Value元素值为空。
3.4.2为每个指标添加data元素,Name属性为Measure的Name元素值,Value元素值为空。
需要说明的是,Value值是由每个应用程序开发者填充,因为Analysis Service对象的翻译根据每个应用程序的需求决定的,这些翻译不是在Analysis数据库中定义的。综上,本申请的发明点在于:根据Analysis Service数据库结构自动生成Analysis Service对象定义,无需手动添加和修改Analysis Service对象定义。这样极大提高开发效率,而且还减少出错的概率,提升***稳定性。其中,根据Analysis Service数据库结构生成Analysis Service对象定义,具体包括:根据以.dim.xml结尾的XML文件生成维度组和维度定义和根据以.det.xml结尾的XML文件生成指标组和指标定义,以及生成维度组和指标组关系定义。
实施例二
本发明实施例还提供了一种生成Analysis Service数据库的对象定义的装置,如图2所示,该装置可以包括:
第一获取模块20,用于获取用户预先设定的Analysis Service数据库的数据结构信息,数据结构信息包括Analysis Service数据库的根目录。
具体的,由于不同用户可能将上述Analysis Service数据库安装在不同的根目录下,因此在本方案中,可以先获取由用户设定或提供的已安装的Analysis Service数据库的根目录,在获取到上述根目录后,Analysis Service数据库的数据结构就可以确定了。
遍历模块22,用于遍历根目录下的数据库对象文件,获取数据库对象文件中的多个数据库对象组的组信息,其中,上述多个数据库对象组的组信息包括:多个数据库对象组的组名称以及数据库对象组中的每个数据库对象的名称。
具体的,上述根目录下的数据库对象文件中可以包含多个数据库对象组,在本方案中,可以通过遍历的方法来获取上述多个数据库对象组的组信息,可选的,在一种可选的实施例中,数据库对象文件中的一个数据库对象组的组信息如表4所示。表4中所示的是同一个数据库对象组的具体的两个数据库对象的信息。
表4:
生成模块24,用于根据数据库对象组的组信息生成目标对象文件,其中目标对象文件包括Analysis Service数据库的对象定义。
具体的,在本方案中,可以根据上述获取的组信息生成目标对象文件,上述目标对象文件中可以为xml文件、代码文件、资源文件,在上述三个文件中只保存数据库的对象定义,该三个文件中的对象定义用于被解析,进而生成查询语句以对数据库发起查询。
本实施例首先通过在用户安装Analysis Service数据库的根目录中的存储数据结构的文件中读取数据库对象的定义,再根据上述数据库的定义自动生成目标对象文件中的对象定义,解决了现有技术中将Analysis Service数据库中大量的对象定义手动的添加到只保存数据库对象定义的目标文件中导致容易出错的问题。实现了自动生成AnalysisService数据库的对象定义的方法,这里需要说明的是,如果Analysis Service数据库中的数据结构发生了变化,***会自动生成变化之后的对象定义,无需人工修改。
可选的,数据库对象文件中的多个数据库对象组包括:维度组、指标组,其中,维度组中包含多个维度,指标组包含多个指标。
可选的,本实施例提供的装置还可以包括:创建模块,定义模块,设定模块。
其中,创建模块,用于创建待替换文件,其中,待替换文件为以下任意一个或多个文件:xml文件、代码文件以及资源文件。定义模块,用于在待替换文件中预先定义每个数据库对象组的名称所对应的一个或多个位置,并定义每个数据库对象的名称所对应的一个或多个位置。设定模块,用于在每个数据库对象组的名称所对应的一个或多个位置上设定相同的第一占位符,并在每个数据库对象的名称所对应的一个或多个位置上设定相同的第二占位符。
可选的,上述生成模块还可以包括:第二获取模块、第三获取模块、第一替换模块、第二替换模块。
其中,第二获取模块,用于根据读取到的数据库对象文件中的每个数据库对象组的名称从待替换文件中获取任意一个数据库对象组的名称所对应的第一占位符;第三获取模块,用于根据读取到的数据库对象文件中的每个数据库对象的名称从待替换文件中获取任意一个数据库对象的名称所对应的第二占位符;第一替换模块,用于使用数据对象文件中读取到的第一数据库对象组名称来替换其在待替换文件中对应的第一占位符;第二替换模块,用于使用数据库对象文件中读取到的第一数据库对象名称来替换其在待替换文件中对应的第二占位符。
可选的,本实施例提供的装置还可以包括:接收模块、查询模块。
其中,接收模块,用于接收用户的查询指令,其中,查询指令用于查询数据库;查询模块,用于根据查询指令加载待替换文件,读取待替换文件中维度和指标的定义并生成针对数据库的查询语句。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种生成数据库的对象定义的方法,其特征在于,包括:
获取用户预先设定的数据库的数据结构信息,所述数据结构信息包括所述数据库的根目录;
遍历所述根目录下的数据库对象文件,获取所述数据库对象文件中的多个数据库对象组的组信息,其中,所述多个数据库对象组的组信息包括:所述多个数据库对象组的组名称以及所述多个数据库对象组中的每个数据库对象的名称;
根据所述数据库对象组的组信息生成目标对象文件,其中,所述目标对象文件包括所述数据库的对象定义。
2.根据权利要求1所述的方法,其特征在于,所述数据库对象文件中的多个数据库对象组包括:维度组、指标组,其中,所述维度组中包含多个维度,所述指标组包含多个指标。
3.根据权利要求2所述的方法,其特征在于,在根据所述数据库对象组的组信息生成目标对象文件之前,所述方法还包括:
创建待替换文件,其中,所述待替换文件为以下任意一个或多个文件:xml文件、代码文件以及资源文件,所述xml文件用于存储所述数据库对象的定义,所述代码文件用于定义所述数据库对象的Id,所述资源文件用于存储所述数据库对象在对应的语言下的翻译;
在所述待替换文件中预先定义每个数据库对象组的名称所对应的一个或多个位置,并定义每个数据库对象的名称所对应的一个或多个位置;
在所述每个数据库对象组的名称所对应的一个或多个位置上设定相同的第一占位符,并在每个数据库对象的名称所对应的一个或多个位置上设定相同的第二占位符。
4.根据权利要求3所述的方法,其特征在于,根据所述数据库对象组的组信息生成目标对象文件的步骤包括:
根据读取到的所述数据库对象文件中的每个数据库对象组的名称从所述待替换文件中获取任意一个数据库对象组的名称所对应的第一占位符;
根据读取到的所述数据库对象文件中的每个数据库对象的名称从所述待替换文件中获取任意一个数据库对象的名称所对应的第二占位符;
使用所述数据对象文件中读取到的第一数据库对象组名称来替换其在所述待替换文件中对应的所述第一占位符;
使用所述数据库对象文件中读取到的第一数据库对象名称来替换其在所述待替换文件中对应的所述第二占位符。
5.根据权利要求4所述的方法,其特征在于,根据所述数据库对象组的组信息生成目标对象文件之后,所述方法还可以包括:
接收用户的查询指令;
根据所述查询指令加载所述待替换文件,读取所述待替换文件中维度和指标的定义并生成针对所述数据库的查询语句。
6.一种生成数据库的对象定义的装置,其特征在于,包括:
第一获取模块,用于获取用户预先设定的数据库的数据结构信息,所述数据结构信息包括所述数据库的根目录;
遍历模块,用于遍历所述根目录下的数据库对象文件,获取所述数据库对象文件中的多个数据库对象组的组信息,其中,所述多个数据库对象组的组信息包括:所述多个数据库对象组的组名称以及所述多个数据库对象组中的每个数据库对象的名称;
生成模块,用于根据所述数据库对象组的组信息生成目标对象文件,其中,所述目标对象文件包括所述数据库的对象定义。
7.根据权利要求6所述的装置,其特征在于,所述数据库对象文件中的多个数据库对象组包括:维度组、指标组,其中,所述维度组中包含多个维度,所述指标组包含多个指标。
8.根据权利要求7所述的装置,所述装置还包括:
创建模块,用于创建待替换文件,其中,所述待替换文件为以下任意一个或多个文件:xml文件、代码文件以及资源文件,所述xml文件用于存储所述数据库对象的定义,所述代码文件用于定义所述数据库对象的Id,所述资源文件用于存储所述数据库对象在对应的语言下的翻译;
定义模块,用于在所述待替换文件中预先定义每个数据库对象组的名称所对应的一个或多个位置,并定义每个数据库对象的名称所对应的一个或多个位置;
设定模块,用于在所述每个数据库对象组的名称所对应的一个或多个位置上设定相同的第一占位符,并在每个数据库对象的名称所对应的一个或多个位置上设定相同的第二占位符。
9.根据权利要求8所述的装置,其特征在于,所述生成模块包括:
第二获取模块,用于根据读取到的所述数据库对象文件中的每个数据库对象组的名称从所述待替换文件中获取任意一个数据库对象组的名称所对应的第一占位符;
第三获取模块,用于根据读取到的所述数据库对象文件中的每个数据库对象的名称从所述待替换文件中获取任意一个数据库对象的名称所对应的第二占位符;
第一替换模块,用于使用所述数据对象文件中读取到的第一数据库对象组名称来替换其在所述待替换文件中对应的所述第一占位符;
第二替换模块,用于使用所述数据库对象文件中读取到的第一数据库对象名称来替换其在所述待替换文件中对应的所述第二占位符。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收用户的查询指令,其中,所述查询指令用于查询所述数据库;
查询模块,用于根据所述查询指令加载所述待替换文件,读取所述待替换文件中维度和指标的定义并生成针对所述数据库的查询语句。
CN201410797882.9A 2014-12-18 2014-12-18 生成数据库的对象定义的方法及装置 Active CN104462486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410797882.9A CN104462486B (zh) 2014-12-18 2014-12-18 生成数据库的对象定义的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410797882.9A CN104462486B (zh) 2014-12-18 2014-12-18 生成数据库的对象定义的方法及装置

Publications (2)

Publication Number Publication Date
CN104462486A CN104462486A (zh) 2015-03-25
CN104462486B true CN104462486B (zh) 2017-12-19

Family

ID=52908521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410797882.9A Active CN104462486B (zh) 2014-12-18 2014-12-18 生成数据库的对象定义的方法及装置

Country Status (1)

Country Link
CN (1) CN104462486B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688388A (zh) * 2019-08-29 2020-01-14 威富通科技有限公司 一种数据立方体的动态更新方法及服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841918A (zh) * 2012-06-29 2012-12-26 用友软件股份有限公司 二进制长对象流化数据处理装置和方法
CN104182484A (zh) * 2014-08-07 2014-12-03 北京京东尚科信息技术有限公司 一种实现HBase数据与Java域对象映射的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250258A1 (en) * 2003-06-04 2004-12-09 Raghuvir Yuvaraj Athur System and method for rule based object navigation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841918A (zh) * 2012-06-29 2012-12-26 用友软件股份有限公司 二进制长对象流化数据处理装置和方法
CN104182484A (zh) * 2014-08-07 2014-12-03 北京京东尚科信息技术有限公司 一种实现HBase数据与Java域对象映射的方法和装置

Also Published As

Publication number Publication date
CN104462486A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
Kaur et al. Modeling and querying data in NoSQL databases
CN101694668B (zh) 网页结构相似性确定方法及装置
CN107423391B (zh) 网页结构化数据的信息提取方法
US8266150B1 (en) Scalable document signature search engine
CN109558575A (zh) 在线表格编辑方法、装置、计算机设备及存储介质
US8880463B2 (en) Standardized framework for reporting archived legacy system data
CN103309806B (zh) 一种快速开发测试的装置及方法
US9350823B2 (en) Identifying properties of a communication device
CN103034633A (zh) 生成扩展的搜索结果页面摘要的方法及装置
CN108717407A (zh) 实体向量确定方法及装置,信息检索方法及装置
JP2015531126A (ja) 製品特性のナビゲーションを実現する方法および装置
CN106021583A (zh) 页面流量数据的统计方法及其***
CN102262658B (zh) 一种基于实体的自底向上Web数据抽取方法
CN110720097A (zh) 图数据库中元组和边的功能性等价
CN104462486B (zh) 生成数据库的对象定义的方法及装置
CN103092973A (zh) 信息抽取方法和装置
CN115062206B (zh) 一种网页元素的搜索方法和电子设备
WO2010147453A1 (en) System and method for designing a gui for an application program
Gentile et al. Self training wrapper induction with linked data
KR20220102169A (ko) 교차검증, 사이트 검색 및 포맷 재구성을 이용한 논문 내 참고문헌 적합성 검증 서비스 제공 시스템
JP2012155681A (ja) フォントサーバ
Dong Search-engine-oriented theme crawler design
Xia et al. Automatic web data extraction using tree alignment
Gkotsis et al. Entropy-based automated wrapper generation for weblog data extraction
CN104536989A (zh) 电子出版物的推荐方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Database object definition generating method and device

Effective date of registration: 20190531

Granted publication date: 20171219

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

PP01 Preservation of patent right
PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20171219