CN104145472A - 存储数据记录的方法和装置 - Google Patents
存储数据记录的方法和装置 Download PDFInfo
- Publication number
- CN104145472A CN104145472A CN201280070874.3A CN201280070874A CN104145472A CN 104145472 A CN104145472 A CN 104145472A CN 201280070874 A CN201280070874 A CN 201280070874A CN 104145472 A CN104145472 A CN 104145472A
- Authority
- CN
- China
- Prior art keywords
- message recording
- station message
- attribute
- data
- nodes
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/41—Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/43—Billing software details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M15/00—Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
- H04M15/70—Administration or customization aspects; Counter-checking correct charges
- H04M15/74—Backing up
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种用于存储数据记录以便创建被格式化用于插入到计费数据库中的串行计费记录的方法和数据访问单元。所述方法包括:遍历分级计费记录,并且针对所述分级计费记录的每个部分节点,识别所述部分节点的属性;以及基于计费数据库配置定义,确定所述属性是否是关键字属性或搜索属性,并且如果是,则将所述属性的属性值存储到串行计费记录的字段中。基于分级计费记录配置定义,将包括所述属性值和数据值标记的部分段存储到所述串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示所述部分节点在所述分级计费记录中的位置的部分节点指示符。还公开了一种用于创建分级计费记录的方法和数据访问单元。优点是,串行计费记录可以存储到一个存储实体(例如,表格的行)中。
Description
技术领域
本发明涉及数据记录的存储,并且更具体的涉及用于存储数据记录的方法和装置。
背景技术
在服务支撑系统(BSS)的合适组件中,对从网元收集到的呼叫或者计费数据记录(CDR)进行估价和计费。在进行估价处理的同时,用户的详细信息、与使用的服务有关的信息、所计算的费用和所应用的折扣丰富了这些记录。在估价和计费之后,在收费周期(通常为一个月)的期末为记录开具发票之前,需要将所述记录存储到操作数据存储器中。
在开具发票的流程期间,从持久性存储器中检索适用于收费时间框架的所有CDR。如果在该流程期间,促销和收费时间折扣被应用到CDR,则CDR因促销和折扣信息得到丰富,并且CDR被再次存储回持久性存储器中。
经过估价和折扣后的记录对于客户服务和自我服务组件也是可见的。
CDR收集与呼叫期间对一个或更多服务的使用以及相关的定价和折扣有关的所有信息。为此,CDR被自然地构造为树形,所述树具有针对各种使用的服务和所有的定价要素的分支。
出于若干原因,CDR必须是持久性的。一方面,它们必须可用于收费和客户服务。另一方面,它们必须被转发给数据分析组件以报告出现的问题。
存储需求的典型分布是:5-10%用于客户服务数据,10-20%用于票据图像,以及剩余的75%用于使用数据记录,所述使用数据记录是经过估价和计费后的呼叫详细记录。
当前存储的实现是将CDR预先存储到关系数据库系统中。作为第一步骤,通过设计合适的表格和关系,存储模型反映规范化关系结构中的树形结构。在第二步骤中,出于导致信息重复的性能原因,对这种规范化的模型进行非规范化(de-normalization)。
现今的电信服务已经从普通的电话应用演变到创建大量呼叫数据的高度复杂的多样性的解决方案。为了保证运营商的收益,要求必须使得可能匿名的呼叫详细信息持续较长的时间。
为了支持具有足够的性能和延迟的不同服务流程,BSS系统需要处理因巨大的数据量引起的各种问题。这不仅对应用软件提出了要求,还对参与到该流程中的硬件组件提出了要求。
以上描述的操作呼叫数据存储的基本存储概念会产生各种问题:
-由于大量的CDR和因大量的CDR信息属性造成的单个CDR的大尺寸而导致的高存储消耗。每个CDR的存储大小随着存储的每个呼叫的服务信息的复杂度的增大而增大。由于需要使冗余信息变得持久的事实,非规范化增大了存储大小。
-经典的非规范化方案不足以解决如今的大量的CDR和高存储容量引起的性能和延迟问题。
-如果进行更新(例如,在收费流程期间进行更新),非规范化会导致一致性问题。
运营商需要花费大量的资源来满足用于他们的计费系统的操作CDR数据存储的需求。重要的成本动因是必须提供大量高性能的存储空间。
发明内容
本发明的目的是提供一种用于创建被格式化用于插入到计费数据库中的串行计费记录和分级计费记录的方法和装置,以解决现有技术方案中的问题。
本发明的一个方面涉及一种用于创建被格式化用于插入到计费数据库中的串行计费记录的方法,所述方法包括:接收包括具有计费相关数据的部分节点的分级计费记录。获取指定所述分级计费记录的数据结构的分级计费记录配置定义,并且获取计费数据库配置定义。
所述方法还包括:遍历所述分级计费记录,并且针对所述分级计费记录的每个部分节点,识别所述每个部分节点的属性;以及基于所述计费数据库配置定义,确定所述属性是否是关键字属性或搜索属性,并且如果是,则将所述属性的属性值存储到所述串行计费记录的字段中。
基于所述分级计费记录配置定义,将包括所述属性值和数据值标记的部分段存储到所述串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示所述部分节点在所述分级计费记录中的位置的部分节点指示符。
本发明的优点是:一条串行计费记录可被存储到一个存储实体(例如,表格的一行)中,而在本发明之前的存储方案中,一般需要多个存储实体。
本发明的另一方面涉及一种用于创建分级计费记录的方法,所述方法包括:接收包括具有计费相关数据的部分段的串行计费记录;并且获取指定分级计费记录的数据结构的分级计费记录配置定义。
从所述串行计费记录中提取有效载荷主体字段,并且遍历所述有效载荷主体字段。所述遍历包括:检测标识部分节点的部分节点指示符;基于所述部分节点标识符,为所述分级计费记录配置定义所确定的所述部分节点分配内存;检测指示部分段的数据值标记;从所述数据值标记中提取特性;基于所述特性,为所述部分节点的属性分配内存;从所述部分段中读取数据值;以及将所述数据值存储到为所述部分节点分配的内存中。
本发明的另一方面涉及一种用于创建被格式化用于插入到计费数据库中的串行计费记录的数据访问单元。
所述访问单元包括接口单元,适配所述数据访问单元,以接收包括具有计费相关数据的部分节点的分级计费记录;获取指定所述分级计费记录的数据结构的分级计费记录配置定义以及获取计费数据库配置定义。
所述访问单元还包括格式化单元,适配所述数据访问单元,以遍历所述分级计费记录,并且针对所述分级计费记录的每个部分节点,识别所述每个部分节点的属性;以及基于所述计费数据库配置定义,确定所述属性是否是关键字属性或搜索属性,如果是,则将所述属性的属性值存储到所述串行计费记录的字段中。
所述接口单元还适配所述数据访问单元,以基于所述分级计费记录配置定义,将包括所述属性值和数据值标记的部分段存储到所述串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示所述部分节点在所述分级计费记录中的位置的部分节点指示符。
本发明的另一方面涉及一种用于创建被格式化用于插入到计费数据库中的分级计费记录的数据访问单元。
所述访问单元包括接口单元,适配所述数据访问单元,以接收包括具有计费相关数据的部分段的串行计费记录;并且获取指定分级计费记录的数据结构的分级计费记录配置定义。
所述访问单元还包括格式化单元,适配所述数据访问单元,以从所述串行计费记录中提取有效载荷主体字段;并且遍历所述有效载荷主体字段。
所述遍历包括:检测标识部分节点的部分节点指示符;基于所述部分节点标识符,为所述分级计费记录配置定义所确定的所述部分节点分配存储空间;检测指示部分段的数据值标记;从所述数据值标记中提取特性;基于所述特性,为所述部分节点的属性分配内存;从所述部分段中读取数据值;以及将所述数据值存储到为所述部分节点分配的内存中。
现在将参考附图详细描述本发明的实施例。
附图说明
图1是示出了内存中的具有树形结构的CR的数据结构的示意图。
图2是示出了在可以使用本发明的完整的服务支撑系统的上下文中的收费系统的框图。
图3是示出了用于创建被格式化用于插入到计费数据库中的串行计费记录的流程图。
图4是示出了串行计费记录的数据结构的示意图。
图5A-D示出了创建串行计费记录并将其存储到数据库中的流程图。
图6示出了用于将计费记录格式化为有效载荷主体字段的流程图。
图7A-C是示出了从数据库检索计费记录的逻辑的流程图。
图8是示出了对具有图4描述的数据结构的字节数组去格式化并且创建内存中的具有树形结构的呼叫详细记录的逻辑的流程图。
图9是示出了可以使用本发明的示例计费架构的框图。
图10是示出了具有计算机系统环境1000形式的数据访问单元的示例性实施例的框图。
具体实施方式
以下对示例性的实施例的详细描述参考了附图。不同附图中的相同的附图标记表示相同或者相似的元件。此外,以下的详细描述不限制本发明。相反,本发明的范围由所附的权利要求书限定。
特别的,每当使用术语计费(或呼叫)数据/详细记录(CDR)时,应当理解为所述术语同样适用于任何计费记录(CR)-包括承载计费数据的任何数据记录,例如,呼叫数据、会话数据或者事件数据(例如,事件数据记录(EDR))。
本方案涉及一种用于数据记录(例如,计费记录)的新的优化的存储模型。该存储模型通过应用完全不同的存储模型,消除了传统的非规范化方法的限制。
该方案包括以下部分:
-内存中的表示具有树形结构的串行的计费记录的字节数组。
-创建表示CR的字节数组的算法。该算法通过将数据结构(例如,树形)转化为可以存储(例如,可以存储到关系数据库、hbase数据库、文件或内存缓冲器、或者通过网络连接链路传输)并且以后可以在同样的或者另一计算机环境中重建的格式,将CR串行化。
-使用字节数组表示的数据库(例如,关系数据库)中的CR的存储模型。
-有效地在数据库(例如,关系数据库)中的单个行中存储整个CR。
因此,计算机内存中的构造为树形的CR被串行化,并且可被进一步精简和压缩成字节数组,从而避免了冗余。精简是通过将每个属性的数据值编码为依赖于要被编码的数据的类型和数据大小的精简格式来执行的。压缩是通过在不依赖与所包括的数据类型有关的信息的情况下对字节数组应用压缩算法来执行的。用于创建字节数组的格式是平台无关的关键字/数值格式,反映树节点的标记丰富了该格式。该格式被设计为清楚数据类型和数目大小、包含在CR中的字段的字符串和数据类型。应用类型特定的算法来精简单个属性值。串行的计费记录被存储在数据库表格的单个行中,并且包括用于表示为二进制数组(举例来说,例如,二进制大对象(BLOB))的字节数组的列和用于CR标识、搜索和检索的一些关键字列。
对于数据上传,针对一条CR创建一个单个行。通过检索表格的行、重新格式化和重写字节数组(例如,BLOB)列,可以容易地更新该CR。
通过使用两步法的搜索和查询机制来实现对数据的访问。将每个搜索查询划分为适用于关键字列并且从而可以通过初始数据库检索步骤进行评估(例如,通过关系数据库管理系统(RDMBS)结构化的查询语言(SQL)引擎来实现)的条件和在解串行化(即,与通过提取数据结构(例如,字节数组的树形结构)来重建CR相反的操作)后对结果集进行过滤的第二组条件。
通过提供在C++和java库中的合适的数据层实现,可以使包括格式和访问方法在内的持续层(persistence layer)的细节不受使用数据的应用的影响。
字节数组格式预设了包括其他外部实时压缩算法并将它们应用到数据数组的选项。如果已经应用了该外部算法,则字节数组被适当地标记。
样本数据层实现提供了插件(plug-in)功能,其允许在创建或者检索串行计费记录(例如,数据库的行)时调用对字节数组的压缩和解压缩方法。
现在将参考附图来描述本发明的实施例。
图1是示出内存中的具有树形结构的计费记录的数据结构的示意图。
下面所指示的存储器中的CR结构的不同组件的命名约定并不旨在限制本发明,而制定所述命名约定仅为了描述涉及的术语。
可以将存储器中的呼叫详细记录自然地构造为具有分支的树形100,所述分支对应于与服务使用、计算的费用、应用的折扣等有关的各种信息。
树是特定类型的网络拓扑,其中,根节点110是树的最高级的单个节点,其连接到分级结构中低一个级别的一个或者多个节点120。第二级节点可以连接到分级结构中低一个级别的一个或者多个节点。将在上级节点和低一个级别的节点之间的连接表示为父子关系。在树拓扑中允许一个孩子具有一个唯一的父亲这样的父子关系。
部分(part)是指树形结构中的特定级别上的一个或者多个节点,其也与服务含义相关联。
记录部分130是CR的树形结构的最高节点级别(第一级),其承载树中的所有其他分支公有的呼叫详细记录的信息(例如,CR的唯一标识符)。CR的树形结构的第二级上是基础部分140,其承载与呼叫期间特定服务的使用有关的信息。费用部分150是CR的树形结构的第三节点级别,其承载与涉及父节点(基础部分)中提到的服务的费用有关的信息。CR的树形结构的第四节点级上是折扣&账目部分160,其承载与应用到父节点(费用部分)中提到的费用的折扣和账户变化有关的信息。
成员170是用于具体说明部分的节点的关联属性(例如,费用金额和货币)的集合的第一级结构。节点具有一组称作成员的命名结构。每个命名结构/成员都具有一组属性。属性是命名结构/成员的一部分,命名结构/成员又是节点的一部分。属性是成员中包含的并且具有值的特定性能的名称。举例来说,费用部分具有费用的成员,该成员具有值为100的“费用金额”属性和值为欧元(EUR)的“货币”属性。
图2是示出在可以使用本发明的完整的服务支撑系统200环境下的收费系统的框图,该计费系统包括估价和计费单元210和收费单元293的。
由呼叫收集单元(CCU)220接收CR,并经由消息子系统(MSS)240将其转发到估价区域单元(RAU)230。RAU对CR进行估价并经由MSS将经过估价的CR的转发到费用控制和计费区域单元(CCCAU)250,例如,CCCAU 250计算实时的折扣,实施支出控制和将费用记到账户上。CCCAU对客户的账户进行计费,并将计费的CR转发给CR持久性数据库上传单元(CDUU)260,所述CDUU 260执行CR的串行化,以为了通过使用CR数据访问单元(CRDB)270将其插入到主数据库(MDB)280的费用记录数据库(CRDB)270做准备。
MDB还可以包括客户参考数据库294。
可以允许订户通过自我服务单元(SCU)291访问相关的计费数据,在所述SCU 291中设有CR数据访问单元(CDAU)以提供对CRDB中的数据的读取访问。
此外,收费单元293可以访问并更新相关的计费数据,在所述收费单元293中设有CDAU以提供对CRDB中的数据的读取访问,以便行读取、删除和更新/改变。
图3是示出了用于创建被格式化用于插入到计费数据库中的串行计费记录的流程图。
在步骤310,接收包括具有计费相关数据的部分节点的分级计费记录。在步骤320,获取指定分级计费记录的数据结构的分级计费记录配置的规范定义,并且在步骤330,获取计费数据库配置定义。
在步骤340,遍历分级计费记录,并且通过顺序地处理部分节点中呈现的成员-属性元组的集合,识别该部分节点的属性。
在步骤350,基于计费数据库配置定义,确定属性是否是关键字属性或者搜索属性,如果是,则将属性的属性值存储到串行计费记录(对应于关键字属性或者搜索属性)的字段中。
在步骤360,如果属性不是将要分开存储的关键字属性或者搜索属性,则可选地应用类型特定的算法来精简特定类型的属性的值,以节省存储空间。该种类型特定的算法可以包括:例如,通过用n字节的整数类型(INTEGER)表示属性值来精简整数型属性值,其中,n是足以表示属性值的最少的字节数;和/或通过省略尾部零字节并且在使用的第一字节中设置属性值的大小来精简双精度浮点型(DOUBL)属性值;和/或通过对日期属性值的每个字节进行掩码(mask)得到构成日期特征的半个字节,并且以成对的方式对所得的半个字节进行串连,来精简日期型(DATE)属性值。
在步骤370,基于分级计费记录配置定义,将包括数据值标记(即,成员/属性关键字)和属性值(即,数据值)的部分段(part segment)存储到串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示部分节点在分级计费记录中的位置的部分节点指示符。有效载荷主体字段可以是二进制大对象(BLOB),即,要在数据库管理系统中存储为单个项目的二进制数据的集合。此外,ASCII格式也是可能的,其中,主体也可以是大的ASCII字符串(CLOB)。
为了节省存储空间,如果属性是已经存储到串行计费记录的字段中的关键字或者搜索属性,从而可以省略将它们存储到有效载荷主体字段中。因此,在步骤370,将属性值(即,数据值)和数据值标记(即,成员/属性关键字)存储到串行计费记录的有效载荷主体字段中可被作为可选项,仅在属性不是关键字属性或者搜索属性时才执行。
因此,字节数组将不会包括被配置为存储到分开的表格的列中的关键字属性和搜索属性,这样可以通过例如从收费或者客户服务应用执行的SQL语句来访问它们。
在步骤380,可以可选地使用压缩算法来压缩有效载荷主体字段,以进一步减小存储空间。所述压缩最好是无损数据压缩算法。
在步骤390,可以将使用压缩算法的指示存储到串行计费记录的字节数组控制头中,或者如果可能使用多个压缩算法,则可以将使用哪个压缩算法的指示存储到串行计费记录的字节数组控制头中。字节数组控制头是BLOB的前缀,并且可以和BLOB一起存储到同一个数据库列中。
图4是示出串行计费记录的数据结构的示意图。
有效载荷主体字段410是可以使用BLOB(二进制大对象)或者字符型大对象(CLOB)实现的字节数组,其中所述BLOB是可用于存储字节数组的数据库列的类型。这种数据库列的类型是由最流行的关系或者hbase数据库系统提供的。
利用这种列类型,有可能在一列中存储多个CR(所述CR可选地是精简的二进制格式,并且可选地是经过压缩的),这样就不再需要将CR属性与专门的表格列相关联。使用这个概念,表格中的列的数量可以减少到该字节数组(例如,BLOB)的列加上动态读取语句的条件项(例如,选择的SQL语句的WHERE项)所需的属性的数量(即,搜索列420)以及定义关键字430所需的属性的数量。关键字也可以是由多个属性/部分组成的组合关键字。
有效载荷主体字段将还将包括字节数组控制头字段440。如果使用了压缩,可以附加压缩头435,即,将所述压缩头435添加到有效载荷主体字段的开头或者尾部以指示经过压缩的CR,并且如果多种压缩方法是可能的,则所述压缩头435还可以指示使用了哪种压缩方法。这具有以下优点:当没对完整CR的字节数组/BLOB进行压缩时,产生具有必要信息的完整的CR。
一个CR将被存储到一个表格行中,然而在本发明之前的存储方案中,通常需要多个行,所需要的行的数量取决于CR树的叶子数量。
从而,串行计费记录将包括关键字列、搜索列和包含格式化的CR的字节数组列(例如,BLOB)。
在下面的表格中描述了一个样本表格结构。该表格结构是根据数据库配置定义建立的。数据库结构的定义是指对记录结构的定义,并且标识将使得哪些成员/属性是持久的。
二进制格式是包含CR树的所有部分的信息(可选的,是精简和/或压缩过的信息)的字节数组。
控制信息被结构化为标记,标记是特殊的位序列。
存在三种标记:
-特殊标记
-开始部分标记
-日期值标记
字节数组控制头440中的控制信息仅由特殊标记组成。
特殊标记定义附加信息,例如,整数值的字节顺序(小端,大端)或者外部压缩方法。该格式是固定的,并且包含特殊标记指示符、特殊标记长度、特殊标记类型和特殊标记主体。
主体410中的其他控制信息或者涉及树形结构(该情况下,是开始部分标记450),或者涉及属性(在该情况下,是日期值标记460)。
控制信息并不是原始CR中存在的,而是在将CR格式化为字节数组并创建串行数据记录期间添加的。
呼叫详细记录的每个部分(具有与之关联的服务意义的特定级别的节点)是通过所谓的部分标识符(部分id)来标识。开始部分标记被用于标记串行计费记录中的树形结构。开始部分标记包含标记指示符和标记值,所述标记指示符是指示部分的开始的特殊位序列,标记值是部分的标识值。
数据值标记定义当前部分的值。格式取决于数据类型和传输的值的大小,并且格式包含关键字、长度和值的类型信息。
作为示例性的例子,对于成员S_P_NUMBER和属性ADDRESS(地址),成员/属性是10/9,其中,属性值是555706950003(长度为12)。下面的表格示出了这种成员/属性的数据值标记。
因此,所得的数据值标记为10001100 00001010 00001001。
当使用精简模式时,数据字节按下面定义的长度存储:
对于INT8(1字节的整数)、INT16(2字节的整数)、INT32(4字节的整数)以及INT64(8字节的整数)来说,以最小的可能大小来编码整数值(例如,值13总是被编码为INT 8-值0被编码为在第一字节中的大小为0)。
对于DOUBL(双精度浮点数,0-8字节)来说,在精简模式中,省略双精度值的尾部0字节并且相应地设置“第一字节”中的大小。
取决于字符集,字符被存储为一个(或者多个)字节。字符串被存储为字符序列,每个字符占用一个(或者多个)字节。
对于日期(DATE)(以8或者14或者4或者7个字节表达的日期)来说,将日期值格式化为两种格式,即:
·短格式(8个字节):YYYYMMDD,例如,20091213
·长格式(14个字节):YYYYMMDDHHMMSS,例如,20091213113000
对于精简模式,将日期值格式化为以下格式:
·短格式(4个字节):CYMD,例如,Ox20091213
·长格式(7个字节):CYMDHMS,例如,Ox20091213113000
该格式通过利用0XOF进行掩码并且将两个半字节合在一起,将两个可打印字符压缩为一个字节。
图5A-D示出了创建串行计费记录并将其存储到数据库中的流程图。
需要将内存中的呼叫详细记录转换为字节数组,以持久性地保存在数据库的行中。
字节数组的内容取决于用于存储呼叫详细记录的目标数据库的配置。像唯一的呼叫记录id或者客户或合同标识符一样,关键字和搜索属性在字节数组表示中可以省略,以节省存储空间。
在已经将呼叫详细记录格式化为串行的(以及可选地还是精简的)字节格式之后,可以应用适于字节流的其他外部压缩算法,优选地使用可以实时执行的算法。由此得到的字节数组将以与应用的压缩算法有关的一个字节的控制信息头作为前缀。该信息与关键字列、搜索列和包括呼叫详细记录的有效载荷的字节数组一起存储到数据库中。
当之后在收费期间获取呼叫详细记录时,评估与可能的外部压缩有关的控制信息,并且应用用于解压缩字节数组的方法。
因此,经过外部压缩或者没有经过外部压缩的CR可以同时存在于同一存储器中。
可以有利地在专门的数据访问层中实现用于存储并获取呼叫详细记录的方法,所述数据访问层使应用不受持久存储器的影像。
根据图5A示出的方法,两个通用准备动作被执行一次,并且这两个通用准备动作例如通过步骤505中的外部配置来初始化。在步骤510,第一通用准备动作正在获取分级计费记录的配置定义,所述配置定义指定了内存中的CR的数据结构(初步建立步骤)。所述配置定义包括每个配置的树形结构的(一系列)节点、节点之间的层级、具有属性和属性说明的成员,其中,属性说明由数据类型、最大长度(如果可用的话)和成员与节点之间的关联组成。在步骤515,第二通用准备动作获取计费数据库的配置定义,以便确定CR的根部分的哪些属性被用作关系数据库的目标表格中的关键字列和搜索列。
图5B示出了下述步骤以描述用于存储CR的工作流。
在步骤520,获取的配置定义被用于将CR树格式化为字节数组,例如,BLOB。
在步骤525,检查计费数据库定义配置,以确定是否应用任何外部压缩算法。
在步骤530,如果要应用支持外部实时的外部压缩算法,则调用插件功能来压缩字节数组,以及相应地,在步骤535,利用与外部压缩算法有关的信息以及可选地与哪个压缩算法被使用(如果多个压缩算法可行的话)有关的信息,来更新字节数组控制头中的控制信息。
出于动态的结构化查询语言(SQL)(即,在程序执行时构建并执行的SQL语句)的目的,在步骤540,执行针对数据库的行的准备插入语句动作,在图5C中对其作进一步的描述。
根据图5C,准备插入语句动作包括子步骤540a和540b,其中子步骤540a和540b用以附加计费数据库配置定义所指示的全部关键字列。
在步骤540,附加如由计费数据库配置定义所指示的所有搜索列,这通过下述方式完成:在步骤540c,检查是否存在搜索列,如果存在,则在步骤540d,附加该搜索列;以及,在步骤540e,检查附加的搜索列是否是最后的搜索列,或者检查是否应该附加更多的搜索列。此外,步骤540包括用以附加字节数组(例如,b1ob列)的子步骤540f。
在步骤545,执行附加值项,在图5D中对其做进一步的描述。步骤545包括子步骤545a和545b,所述子步骤545a和545b用以附加如由计费数据库配置定义所指示的所有关键字列的值。
步骤545包括子步骤545c、545d和545e,所述子步骤545c、545d和545e用以附加如由计费数据库配置定义所指示的所有搜索列。
在子步骤545f中,附加字节数组(如BLOB列)的值。
在步骤550,执行插入语句,从而将串行计费记录插入到数据库。
图6示出了用于将计费记录格式化为有效载荷主体字段的流程图。
图6描述了将内存中的具有树形结构的呼叫详细记录格式化为通过串行化优化过的字节数组的逻辑。现在将详细描述将CR树格式化为有效载荷主体字段(如,字节数组,BLOB)的步骤。
下面给出了对不同工作流步骤的说明。
下面的步骤描述了用于将CR格式化为字节数组的工作流。
在步骤605,分配字节数组,并且写入包括一个特殊标记的字节数组控制头,所述特殊标记指定字节顺序。
在步骤610,导航到树的根节点。
在步骤615,写入包含部分的标识号码的开始部分标记。在步骤610中,已经从获取分级计费记录配置(初步建立步骤)的第一准备动作中的配置中获取了该号码。
在步骤620,导航到该部分的下一个属性。
在步骤625,检查属性是否为关键字属性或者搜索属性(根据分级计费记录配置定义)。
如果在步骤625确定该属性是关键字属性或者搜索属性,那么如步骤630所示,在字节数组中跳过该属性,并且该方法继续在步骤645中对部分的下一个属性进行判断。
如果属性不是关键字属性或者搜索属性,那么在步骤635,将数据值标记写入到字节数组,并且在步骤640,写入属性值,可选地,属性值可被精简。
在步骤645,导航到该部分的下一个属性,如果存在属性,则该方法继续进行到步骤620。
如果当前部分不存在其他属性,则在步骤650,检查是否存在其他更低级别的部分,如果存在更低级别的部分,则在步骤655,导航到该更低级别的部分并且继续进行到步骤615。
如果不存在更低级别的部分,则在步骤660,检查是否存在兄弟部分。兄弟部分是具有相同父亲的同一级别上的部分。如果存在兄弟部分,则在步骤665导航到该部分,并且继续进行到步骤615。
如果不存在兄弟部分,则在步骤670,导航到父亲部分(返回上一个级别)。
在步骤675,检查父部分是否为根节点,如果是,则在步骤680,结束CR格式化。如果父部分不是根节点,则在步骤660,进一步检查是否存在任何兄弟部分。
如果不存在兄弟,则执行步骤670以导航到父部分。
图7A-C是示出从数据库检索计费记录的逻辑的流程图。
当从数据库表格读回CR时,重建CR的类似树的内存结构。最初,根据从BLOB列读取的字节数组构建该树形结构。如果有效载荷主体字段中已经省略了关键字属性和搜索属性,则执行第二阶段,其中,在已经从BLOB去格式化后,需要将存储在分开的表格列(关键字列和搜索列)中的属性重新注入到CR中。
如已经针对图5A描述的那样,两个通用准备动作被执行一次,并且这两个通用准备动作例如通过步骤505中的外部配置来初始化。在步骤510,第一通用准备动作获取分级计费记录配置定义(初步建立步骤)。在步骤515,第二通用准备动作获取计费数据库配置定义,以便确定CR的记录部分的哪些属性被用作关系数据库的目标表格中的关键字列和搜索列。
然后,下面的步骤描述用于获取CR的工作流。
该方法继续进行到步骤705,准备用于检索数据库的行的选择语句。图7B示出了更多的细节,其中,在步骤705a-705b,附加如获取的计费数据库配置定义所指示的所有关键字列。在步骤705c-705e,附加如获取的计费数据库配置定义所指示的所有搜索列。随后,在步骤705f,附加字节数组/BLOB/CLOB列。
在步骤710,附加条件项(WHERE项)。
图7C示出了更多的细节,其中,在步骤710a,针对每个条件,检查该条件是否应用到在表格中分开存储的关键字或搜索列。如果是,则在步骤710b-d,根据列名称、条件运算符和搜索值构造条件并且将该条件附加到搜索语句。如果否,则在步骤710e,记录该条件用于第二级过滤,以及在步骤710f,检查该条件是否是最后一个条件。如果不是,则在步骤710g处理下一个条件。如果该条件是最后一个条件,则随后在步骤720执行搜索语句,以便接收包含具有计费相关数据的部分段的串行计费记录。
在步骤725,开始对结果集执行处理,以将从数据库中检索到的行转化为计算机内存中的类似树的CR。
在步骤730,从结果集中选择下一个可获得的行并且提取有效载荷主体字段(例如,二进制或者ASCII)。
在步骤740,检查是否已经应用外部压缩算法;如果是,则在步骤750,调用插件功能,以从串行计费记录中解压缩出有效载荷主体。即,检测添加到有效载荷主体字段的指示对有效载荷主体字段的压缩的压缩标记,并随后基于该压缩标记对有效载荷主体字段进行解压缩。
在步骤755,执行有效载荷主体字段的去格式化以及内存中的CR树结构的创建。
执行步骤760,以根据配置处理分开存储的所有搜索列和关键字列,并且将值注入到CR树形结构中。
在步骤765,检查结果集中是否存在任何其他行,如果存在,则继续进行到步骤730。
在步骤770,对通过对搜索语句的结果集去格式化得到的CR集应用第二级过滤,其中,针对CR集中的每个CR,检查步骤710e中记录的所有条件,并且如果所有条件都匹配则保存该CR,否则就丢弃该CR。
在步骤775,最后返回结果集。
图8是示出对具有图4描述的数据结构的字节数组去格式化并且在创建内存中的具有树形结构的呼叫详细记录的逻辑的流程图。
下面的步骤描述了用于对字节数组进行去格式化并且创建内存中的CR的工作流。
在步骤805,读取包含特殊标记的字节数组控制头。在步骤810,检测到标识部分节点的部分节点指示符,由此导航到字节数组中的根部分的开始部分标记。
在步骤815,基于部分节点标识符,为由分级计费记录配置定义确定的部分节点分配内存。执行根据指定的部分的标识号码对树节点的分配(已经从分级计费记录配置定义获取了号码-节点类型关系),并且如果节点不是根节点,还将该新的树节点链接到内存中的父节点。
在步骤820,导航到到字节数组中的下一个数据值标记,即,检测指示部分段的数据值标记。
在步骤825,提取(如读取)诸如成员、属性和数据长度之类的特性。
在步骤830,基于所述特性分配用于节点属性的内存并且将该内存与当前节点相关联。在步骤835,根据指定的数据长度,读取字节数组的部分段的数据值,并且在步骤840,通过将节点属性值存储到内存中,实现节点属性的赋值。在步骤845,检查字节数组中的下一个数据值标记。如果存在数据值标记,则转移到步骤820,否则,进行到步骤850,从而检查是否存在其他开始部分标记。如果不存在其他开始部分标记,则在步骤855结束CR的创建。否则,如果存在其他开始部分标记,则随后在步骤860检查部分标识符(part-identifier)是否指示树形结构中的更低级别的节点。如果如分级计费记录配置定义所指示的,部分对应于当前节点的更低级别的节点,则随后在步骤870分配特定部分类型的树节点并且将其作为子节点链接到树的当前节点,并且回到步骤820。如果部分不对应于更低级别的部分,则在步骤865导航回到树结构中的父节点,并且随后执行步骤860。
图9是示出了可以使用本发明的示例计费架构的框图。
该架构是针对在线情形描述的,但是本发明同样适用于离线的情形。
通信网络900提供实现在线计费机制的功能作为位于下述三个级别上的网元(NE)的计费触发功能(CTF)单元中的计费客户端:核心网络905-例如,演进分组核心(EPC);子系统910-例如,IP多媒体子系统(IMS);以及服务915-例如,多媒体消息系统(MMS)。为了支持这些计费机制,网络对所需要的上述三个级别上的网络资源使用进行实时监控以检测相关的计费事件。
在在线计费中,在授予使用请求的网络资源的许可之前,查询订户账户,所述订户账户保有位于在线计费系统(OCS)920中的与用户相关的数据,如货币资金的余额水平、订购的服务等,。
网络资源使用的典型例子是持续一定时间的语音呼叫、传输一定数量的数据、或者提交一定大小的多媒体消息。可以由用户设备UE(未示出)或者由网络900发出网络资源使用请求。
在线计费是在资源使用的同时收集针对该网络资源使用的计费信息的过程。然而,对网络资源使用的授权是由网络在发生实际资源使用之前获取的。一旦收到来自网络的请求,就由OCS对该授权进行许可。
当收到网络资源使用请求时,网络的计费触发功能(CTF)925组合相关的计费信息,并实时地向OCS的在线计费功能(OCF)930生成计费事件。然后,OCS返回合适的资源使用授权。可以将资源使用授权限制到一定范围(例如,服务单元的数据量或者持续时间配额),因此,只要网络资源使用在继续,就可能需要不时地重新授权。
计费事件被转发给OCF,以获取针对计费事件/UE或网络请求的网络资源使用的包括服务使用配额的授权。CTF还能够在网络资源使用期间追踪资源使用许可的可用性(“配额监督”)。
还可以通过使用移动网络增强逻辑的定制应用(CAMEL)应用部分(CAP)协议以及分别从移动交换中心(MSC)和服务GPRS支持节点(SGSN)到OCF的CAP参考点,执行电路交换(CS)和分组交换(PS)域中的在线计费。其他网元可以利用Ro参考点935进行使用直径信用控制应用(Diameter Credit Control application)的在线计费。类似地,根据如在TS 23.203V10.2.1(2011-01)中描述的第三代合作伙伴计划3GPP,Wo参考点可被用于无线局域网(WLAN),Gx和Gy参考点可以用于策略和计费控制(PCC)。
从CTF 925到OCF 930的Ro参考点旨在传输用于在线计费的计费事件。Ga 940参考点是OCF与计费网管功能(CGF)945之间的接口,所述CGF 945通过Bo 955参考点与收费域(BD)950连接。类似地,对于离线计费架构来说,CGF通过Bx接口(未示出)连接到收费域。收费域将包括服务支撑系统(BSS)的合适组件,用于通过Bx或者Bo参考点接收数据记录以进行例如估价、计费和存储。
Ro参考点支持计费触发功能和在线计费功能之间的交互。下述信息可以穿过该参考点:
·从CTF到OCF的用于在线计费的计费事件。
·接收从OCF到CTF的针对这些计费事件的确认。根据OCS作出的决定,该确认允许或者拒绝计费事件中请求的网络资源使用。
CAP参考点为在线计费提供与Ro类似的功能,但是,CAP参考点基于CAMEL技术。
在线计费功能(CTF、OCF和CGF)到物理实现的不同映射是可能的。
每个CTF可以具有OCF地址列表,其可以将它的计费事件和/或计费请求发送到所述OCF地址列表。
根据此处公开的实施例的数据访问单元可以有利地位于如前所述的OCF、CGF或者收费域中。还可以根据需要由位于核心网络域、服务节点或者子系统中的数据访问单元创建计费记录。
图10是示出计算系统环境1000形式中的数据访问单元的示例性实施例的框图。
尽管以上作出了清楚的描述,但是计算系统环境1000只是针对存储数据记录的设备的合适计算环境的一个示例,并且不旨在暗示对要求保护的主题的功能或者使用的范围的任何限制。此外,计算环境1000不旨在暗示对涉及要求保护的主题和在示例性操作环境1000中示出的任一组件或其组合的任何依赖性或者要求。
实现前文描述的发明的设备的例子包括计算机1010形式的通用计算设备。计算机1010的组件可以包括但不限于:处理单元1020、系统内存1030和系统总线1021,系统总线1021将包括系统内存在内的各种系统组件耦合到处理单元1020。系统总线1021可以是若干类型的总线结构中的任意一种,包括内存总线或者内存控制器、外围总线和使用各种总线架构中的任意一种的本地总线。
计算机1010可以包括各种计算机可读介质。计算机可读介质可以是能够被计算机1010访问的任何可用介质。举例来说,但不是限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的,易失性和非易失性以及可移动和不可移动介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其它存储器技术;CDROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算机1010访问的任何其它介质。通信介质可以具体承载计算机可读指令、数据结构、程序模块或调制数据信号(例如,载波或其他传输机制)形式的其他数据,并且可以包括任何合适的信息传递介质。
系统内存1030可以包括易失性和/或非易失性内存形式的计算机存储介质,例如,只读存储器(ROM)和/或随机存取存储器(RAM)。基本输入/输出系统(BIOS)包含有助于(例如,在启动时)在计算机1010内的元件之间传输信息的基本例程,所述BIOS可以存储在内存1030中。内存1030还可以包含处理单元1020可以立即访问和/或当前正在运行的数据和/或程序模块。作为非限制性的例子,内存1030还可以包含操作系统、应用程序、其他程序模块和程序数据。
在某些实施例中,由本发明执行的算法或者方法的步骤被实现为装载在存储器中并且可由处理单元处理的软件模块,所述软件模块适配计算机系统环境以执行所描述的算法或者方法的步骤。
在一个实施例中,数据访问单元包括接口单元1008,其适配数据访问单元1000以接收包括具有计费相关数据的部分节点的分级计费记录,获取指定分级计费记录的数据结构的分级计费记录配置定义,以及获取计费数据库配置定义。
数据访问单元还包括格式化单元1007,其适配数据访问单元以遍历分级计费记录,并且针对所述分级计费记录的每个部分节点,识别部分节点的属性;以及,基于计费数据库配置定义,确定所述属性是否是关键字属性或者搜索属性,如果是,则将所述属性的属性值存储到串行计费记录的字段中。
接口单元还适配数据访问单元以基于分级计费记录配置定义将包括属性值和数据值标记的部分段存储到串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示部分节点在分级计费记录中的位置的部分节点指示符。
在另一实施例中,数据访问单元1000包括接口单元1008,其适配数据访问单元以接收包括具有计费相关数据的部分段的串行计费记录,以及获取指定分级计费记录的数据结构的分级计费记录配置定义。
数据访问单元还包括格式化单元1007,其适配数据访问单元以从串行计费记录中提取有效载荷主体字段并遍历有效载荷主体字段。
遍历包括:检测标识部分节点的部分节点指示符;基于部分节点标识符,为分级计费记录配置定义所确定的部分节点分配内存;检测指示部分段的数据值标记;从数据值标记中提取特定;基于所述特性,为部分节点的属性分配内存;从部分段中读取数据值;以及将数据值存储到为部分段的属性分配的内存中。
计算机1010还可以包括其他可移动的/不可移动的和易失性/非易失性的计算机存储介质。例如,计算机1010可以包括:对不可移动、非易失性的磁介质进行读写的硬盘驱动器;对可移动、非易失性磁盘进行读写的磁盘驱动器;和/或对可移动、非易失性的光盘(例如,CD-ROM或者其他光学介质)进行读写的光盘驱动器。可在示例性的操作环境中使用的其他可移动的/不可移动的、易失性/非易失性的计算机存储介质包括但不限于:盒式磁带、闪存卡、数字多功能盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器可以通过不可移动的内存接口(例如,接口)连接到系统总线1021,并且磁盘驱动器或者光盘驱动器可以通过可移动的内存接口(例如,接口)连接到系统总线1021。
用户可以通过输入设备(例如,键盘,或者指示设备,如鼠标、轨迹球、触摸垫和/或其他指示设备)向计算机1010输入命令和信息。其它输入设备可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪或者类似的设备。这些和/或其他输入设备可以通过耦合到系统总线1021的用户输入端1040和关联的接口连接到处理单元1020,但也可以通过其它接口和总线结构(例如,并行端口、游戏端口或通用串行总线(USB))连接到处理单元1020。
图形化子系统也可以连接到系统总线1021。另外,显示器或者其他类型的显示设备可以通过接口(例如,输出接口1050)连接到系统总线1021,该接口又与视频内存通信。除了显示器之外、计算机还可以包括其他外部输出设备,例如,扬声器和/或打印设备,它们也可以通过输出接口1050来连接。
计算机1010可以利用到一个或者多个其他远程计算机(例如,远程服务器1070)的逻辑连接而在联网的或者分布式环境中操作,所述远程算机可以转而具有与设备1010不同的介质容量。远程服务器1070可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点、和/或任何其他远程的介质消耗或传输设备,并且可以包括上文联系计算机1010描述的任何元件或所有元件。图10描述的逻辑连接包括网络1071(例如,局域网(LAN)或者广域网(WAN)),但是也可以包括其他网络/总线。
当在LAN联网环境中使用时,计算机1010通过网络接口或适配器连接到LAN 1071。当在WAN网络环境中使用时,计算机1010可以包括诸如调制解调器或用于在WAN(例如,因特网)上建立通信的其他设备之类的通信组件。通信组件(如调制解调器)可以是内置的或者是外置的,通信组件可以通过输入端1040处的用户输入接口和/或其他合适的机制连接到系统总线1021。
在联网环境中,联系计算机1010描述的程序模块或其部分可以存储在远程内存存储设备中。需要注意的是,所示出和描述的网络连接是示例性的,可以使用建立计算机之间的通信链路的其他手段。
另外,需要注意的是,本申请使用的术语,例如,“组件”、“显示”、“接口”和其他类似的术语旨在指向计算设备,其可以是硬件、硬件和软件的结合、软件、或者应用到计算设备的执行中的软件。例如,组件可以是但不限于:运行在处理器上的进程、处理器、对象、可执行的文件、执行线程、程序和计算设备。举例来说,运行在计算设备上的应用程序和所述计算设备都可以是组件。一个或多个组件可以驻留在执行的进程和/或线程内,并且组件可以位于一个计算设备上和/或分布在两个或更多计算设备和/或通信连接的模块之间。此外,需要注意的是,如本申请所使用的,术语,如“系统用户”、“用户”和类似的术语旨在指代操作以上提及的计算设备的人。
当元件被称作相对于另一元件进行“连接”、“耦合”、“响应”或其变型时,它可以直接连接、耦合到或者响应于其他元件,或者可以存在中间元件。相反,当元件被称作相对于另一元件进行“直接连接”、“直接耦合”、“直接响应”或其变型时,就不存在中间元件。全文中,相似的附图标记始终指代相似的元件。此外,本文使用的“耦合”、“连接”、“响应”或其变型可以包括无线耦合、连接或响应。除非上下文明确地另有指示,否则本文使用的单数形式的“一”和“该”旨在还包括复数形式。为了简单和/或清楚起见,公知的功能或构造可能没有详细描述。术语“和/或”包括一个或多个关联理出的项目的任何组合和全部组合。
本文所用的术语“包括”、“包含”、“具有”或它们的变型是开放式的,并且包括一个或多个所述的特征、整数、元件、步骤、组件或功能,但不排除存在或添加一个或多个其它特征、整数、元件、步骤、组件、功能或它们的组合。而且,本文所用的常见缩写“例如(e.g.)”来自拉丁短语“exempli gratia”,其可用于介绍或指定前面提到的项目的通用示例,而并非旨在限制该项目。常见缩写“即(i.e.)”来自拉丁短语“id est”,其可用于指定广义引述的具体项目。
还应该注意的是,在一些备选实现中,在框中提到的功能/动作可以不按流程图中所述的顺序进行。例如顺序示出的两个框可以实际上基本上并行地执行,或者,根据所涉及的功能/动作,有时可以倒序地执行。此外,流程图和/或框图的给定块的功能可以分为多个框,和/或流程图和/或框图的两个或更多框的功能可以至少部分合并。
最后,可以在示出的框之间加入或插入其他框。此外,尽管一些图包括在通信路径上示出通信的主要方向的箭头,但是应当理解,可以沿与所示箭头相反的方向进行通信。
本文已经结合上文的描述和附图公开了许多不同实施例。应当理解的是,为了文字描述和示出这些实施例的每个组合和子组合,有可能存在不当的重复和混乱。从而,本说明书(包括附图)应被解释为构成对实施例的各种示例性组合和子组合以及形成和使用它们的方式和过程的完整书面描述,并且应支持权利要求为任何这种组合和子组合。
在基本上不背离本发明原则的前提下,可以对实施例做出许多改变和修改。所有此类改变和修改旨在被包括在本发明的范围内。
本发明的实施例可以提供下述优点和改进:
-当在收费服务或客户服务中存留或检索呼叫事务时,对吞吐量和延迟的重大改进;
-对所需的存储容量的大幅降低;
-有利于更新已存储的CR。
如上文所指出的,收费系统的存储需求是由使用数据记录的存储需求所决定。必须对用于使用数据记录的存储设备进行吞吐量和延迟方面的优化。基于这个原因,它们是非常昂贵的并且对拥有者的总成本产生很大的影响。
与示例性的现有系统使用的传统存储方法相比,本发明可以节省10%-75%的用于使用数据记录的存储消耗。
Claims (22)
1.一种用于创建被格式化用于插入计费数据库中的串行计费记录的方法,包括步骤:
-接收(310)分级计费记录,所述分级计费记录包括具有计费相关数据的部分节点;
-获取(320)指定所述分级计费记录的数据结构的分级计费记录配置定义;
-获取(330)计费数据库配置定义;
-遍历(340)所述分级计费记录,并且针对所述分级计费记录的每个部分节点,识别部分节点的属性;
-基于所述计费数据库配置定义,确定(350)所述属性是否是关键字属性或搜索属性,以及,如果是,则将所述属性的属性值存储到所述串行计费记录的字段中;以及
-基于所述分级计费记录配置定义,将包括所述属性值和数据值标记的部分段存储(370)到所述串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示所述部分节点在所述分级计费记录中的位置的部分节点指示符。
2.根据权利要求1所述的方法,其中,将所述属性值和所述数据值标记存储到所述串行计费记录的所述有效载荷主体字段中的步骤仅在所述属性不是关键字属性或搜索属性时才执行。
3.根据权利要求1或2中的任一项所述的方法,其中,存储属性值包括:应用类型特定的算法来精简(360)特定类型的属性值。
4.根据权利要求3所述的方法,其中:
-整数型(INTEGER)属性值是通过用n字节的整数类型表示所述属性值来精简的,其中,n是足以表示所述属性值的最少的字节数量;和/或
-双精度型(DOUBL)属性值是通过省略尾部零字节并在第一使用字节中设置属性值的大小来精简的;和/或
-日期型(DATE)属性值是通过对日期属性值的每个字节进行掩码得到构成日期特征的半个字节并且以成对方式级联所得到的半字节来精简的。
5.根据前述权利要求中的任一项所述的方法,其中,所述有效载荷主体字段是通过使用压缩算法来压缩(380)的。
6.根据权利要求5所述的方法,其中,将指示所述压缩的压缩标记附加到所述有效载荷主体字段。
7.根据权利要求5所述的方法,其中,将指示压缩的使用的压缩标记存储(390)到所述串行计费记录的字节数组控制头中。
8.一种用于创建分级计费记录的方法,包括步骤:
-接收(720)串行计费记录,所述串行计费记录包括具有计费相关数据的部分段;
-获取(510)指定所述分级计费记录的数据结构的分级计费记录配置定义;
-从所述串行计费记录中提取有效载荷主体字段(730);
-遍历(755)所述有效载荷主体字段,并且:
(i)检测(810)标识部分节点的部分节点指示符;
(ii)基于所述部分节点标识符,为所述分级计费记录配置定义所确定的所述部分节点分配内存(815);
(iii)检测(820)指示部分段的数据值标记;
(iv)从所述数据值标记中提取特性(825);
(v)基于所述特性,为所述部分节点的属性分配(830)内存;
(vi)从所述部分段中读取(835)数据值;以及
(vii)将所述数据值存储(840)到为所述部分节点的属性分配的内存中。
9.根据权利要求8所述的方法,其中,在遍历所述有效载荷主体字段的步骤(755)之后,还执行以下步骤:基于所述分级计费记录配置定义,处理(760)所述串行计费记录的关键字列和/或搜索列,以将所述关键字和/或搜索列的值注入到所述分级计费记录中。
10.根据权利要求8或9所述的方法,其中,在提取有效载荷主体字段的步骤之后,还执行以下步骤:检测(740)附加到所述有效载荷主体字段的指示对所述有效载荷主体字段的压缩的压缩标记,并且随后基于所述压缩标记,解压缩(750)所述有效载荷主体字段。
11.根据权利要求1-10中任一项所述的方法,其中,所述有效载荷主体字段是二进制大对象(BLOB)或字符大对象(CLOB)。
12.一种用于创建被格式化用于插入到计费数据库中的串行计费记录的数据访问单元(290),包括:
-接口单元(1008),适配所述数据访问单元,以便:接收(310)分级计费记录,所述分级计费记录包括具有计费相关数据的部分节点;获取(320)指定所述分级计费记录的数据结构的分级计费记录配置定义;以及,获取(330)计费数据库配置定义;
-格式化单元(1007),适配所述数据访问单元,以便:遍历(340)所述分级计费记录,并且针对所述分级计费记录的每个部分节点,识别部分节点的属性;以及,基于所述计费数据库配置定义,确定(350)所述属性是否是关键字属性或搜索属性,以及,如果是,则将所述属性的属性值存储到所述串行计费记录的字段中;
-接口单元(1008),进一步适配所述数据访问单元,以便:基于所述分级计费记录配置定义,将包括所述属性值和数据值标记的部分段存储(370)到所述串行计费记录的有效载荷主体字段中,所述串行计费记录具有表示所述部分节点在所述分级计费记录中的位置的部分节点指示符。
13.根据权利要求12所述的数据访问单元,其中,所述接口单元进一步适配所述数据访问单元,以便:仅在所述属性不是关键字属性或搜索属性时,才将所述属性值和所述数据值标记存储到所述串行计费记录的所述有效载荷主体字段中。
14.根据权利要求12或13中的任一项所述的数据访问单元,其中,所述格式化单元进一步适配所述数据访问单元,以便:通过应用类型特定算法精简(360)特定类型的属性值来存储所述属性值。
15.根据权利要求14所述的数据访问单元,其中,
-整数型(INTEGER)属性值是通过用n字节的整数类型表示所述属性值来精简的,其中,n是足以表示所述属性值的最少的字节数量;和/或
-双精度型(DOUBL)属性值是通过省略尾部零字节并在第一使用字节中设置属性值的大小来精简的;和/或
-日期型(DATE)属性值是通过对日期属性值的每个字节进行掩码得到构成日期特征的半个字节并且以成对方式级联所得到的半字节来精简的。
16.根据权利要求11-15中的任一项所述的数据访问单元,其中,所述有效载荷主体字段是通过使用压缩算法来压缩(380)的。
17.根据权利要求16所述的数据访问单元,其中,将指示所述压缩的压缩标记附加到所述有效载荷主体字段。
18.根据权利要求16所述的数据访问单元,其中,将指示压缩的使用的压缩标记存储(390)到所述串行计费记录的字节数组控制头中。
19.一种用于创建被格式化用于插入到计费数据库中的分级计费记录的数据访问单元(290),包括:
-接口单元(1008),适配所述数据访问单元,以便:接收(720)串行计费记录,所述串行计费记录包括具有计费相关数据的部分段;以及,获取(510)指定所述分级计费记录的数据结构的分级计费记录配置定义;
-格式化单元(1007),适配所述数据访问单元,以便:从所述串行计费记录中提取有效载荷主体字段(730);并且通过下述步骤遍历(755)所述有效载荷主体字段:
(i)检测(810)标识部分节点的部分节点指示符;
(ii)基于所述部分节点标识符,为所述分级计费记录配置定义所确定的所述部分节点分配内存(815);
(iii)检测(820)指示部分段的数据值标记;
(iv)从所述数据值标记中提取特性(825);
(v)基于所述特性,为所述部分节点的属性分配(830)内存;
(vi)从所述部分段中读取(835)数据值;以及
(vii)将所述数据值存储(840)到为所述部分节点分配的内存中。
20.根据权利要求19所述的数据访问单元,其中,所述格式化单元进一步适配所述数据访问单元,以便:基于所述分级计费记录配置定义,处理(760)所述串行计费记录的关键字列和/或搜索列,以将所述关键字和/或搜索列的值注入到所述分级计费记录中。
21.根据权利要求19或20所述的数据访问单元,其中,所述格式化单元进一步适配所述数据访问单元,以便:检测(740)附加到所述有效载荷主体字段的指示对所述有效载荷主体字段的压缩的压缩标记,并且随后基于所述压缩标记,解压缩(750)所述有效载荷主体字段。
22.根据权利要求12-21中任一项所述的数据访问单元,其中,所述有效载荷主体字段是二进制大对象(BLOB)或字符大对象(CLOB)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261604797P | 2012-02-29 | 2012-02-29 | |
US61/604,797 | 2012-02-29 | ||
PCT/SE2012/051483 WO2013129988A2 (en) | 2012-02-29 | 2012-12-21 | Method and apparatus for storage of data records |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104145472A true CN104145472A (zh) | 2014-11-12 |
CN104145472B CN104145472B (zh) | 2016-06-15 |
Family
ID=49083416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280070874.3A Active CN104145472B (zh) | 2012-02-29 | 2012-12-21 | 存储数据记录的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9514152B2 (zh) |
EP (1) | EP2820835B1 (zh) |
CN (1) | CN104145472B (zh) |
WO (1) | WO2013129988A2 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107251537A (zh) * | 2015-02-10 | 2017-10-13 | 瑞典爱立信有限公司 | 用于数据中介的方法和装置 |
CN108696599A (zh) * | 2017-04-07 | 2018-10-23 | 北京上元信安技术有限公司 | 一种去除冗余域名的方法、系统和防火墙设备 |
CN108694219A (zh) * | 2017-04-12 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN109284289A (zh) * | 2018-09-11 | 2019-01-29 | 深圳市网安计算机安全检测技术有限公司 | 数据集处理方法、装置、计算机设备及存储介质 |
CN109952568A (zh) * | 2016-08-10 | 2019-06-28 | 月影移动有限公司 | 用于高速搜索或过滤大数据集的系统、方法和数据结构 |
CN110909186A (zh) * | 2018-09-14 | 2020-03-24 | 中国科学院上海高等研究院 | 高光谱遥感数据存储、检索方法及系统、存储介质及终端 |
CN111936985A (zh) * | 2018-01-30 | 2020-11-13 | 恩卡普沙科技有限责任公司 | 一种用于封装和存储来自多个不同数据源的信息的方法和系统 |
CN112765131A (zh) * | 2021-01-22 | 2021-05-07 | 重庆邮电大学 | 一种异构医疗健康数据存储和检索方法及系统 |
CN116132204A (zh) * | 2021-11-09 | 2023-05-16 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120254133A1 (en) * | 2011-03-28 | 2012-10-04 | C/O Pontis, Ltd. | Method for binary persistence in a system providing offers to subscribers |
KR101535703B1 (ko) * | 2012-09-28 | 2015-07-09 | 삼성에스디에스 주식회사 | 데이터 객체 변환 장치 및 방법 |
US20150148003A1 (en) * | 2013-11-25 | 2015-05-28 | Oracle International Corporaton | Adaptive Request Processing Service For Charging Requests |
US10333724B2 (en) | 2013-11-25 | 2019-06-25 | Oracle International Corporation | Method and system for low-overhead latency profiling |
US10459641B2 (en) * | 2014-03-24 | 2019-10-29 | International Business Machines Corporation | Efficient serialization of journal data |
US9553998B2 (en) | 2014-06-09 | 2017-01-24 | Oracle International Corporation | Sharing group notification |
US20160299928A1 (en) * | 2015-04-10 | 2016-10-13 | Infotrax Systems | Variable record size within a hierarchically organized data structure |
US10089687B2 (en) * | 2015-08-04 | 2018-10-02 | Fidelity National Information Services, Inc. | System and associated methodology of creating order lifecycles via daisy chain linkage |
KR101747265B1 (ko) * | 2016-06-20 | 2017-06-15 | 주식회사 티맥스데이터 | 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체 |
KR101751970B1 (ko) * | 2016-06-20 | 2017-07-03 | 주식회사 티맥스데이터 | 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체 |
US10649967B2 (en) | 2017-07-18 | 2020-05-12 | Vmware, Inc. | Memory object pool use in a distributed index and query system |
US11151155B2 (en) * | 2017-07-18 | 2021-10-19 | Vmware, Inc. | Memory use in a distributed index and query system |
US11290390B2 (en) | 2019-11-20 | 2022-03-29 | Oracle International Corporation | Methods, systems, and computer readable media for lockless communications network resource quota sharing |
KR20220066741A (ko) | 2020-11-16 | 2022-05-24 | 삼성전자주식회사 | 스토리지 장치 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101194A1 (en) * | 2001-11-01 | 2003-05-29 | Michael Rys | System and method for loading hierarchical data into relational database systems |
WO2005038669A1 (de) * | 2003-10-06 | 2005-04-28 | Softel Gmbh | Verfahren zur bearbeitung von cdr-informationen |
US20100185593A1 (en) * | 2006-10-04 | 2010-07-22 | Salesforce.Com, Inc. | Methods and systems for recursive saving of hierarchical objects to a database |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682422A (en) * | 1995-08-25 | 1997-10-28 | International Teldata Corporation | Apparatus and method for on-demand activation of telephone line telemetry devices |
US6078785A (en) * | 1996-10-15 | 2000-06-20 | Bush; E. William | Demand reporting of electricity consumption by radio in relays to a base station, and demand relays wattmeters so reporting over a wide area |
US6385301B1 (en) * | 1998-03-26 | 2002-05-07 | Bell Atlantic Services Network, Inc. | Data preparation for traffic track usage measurement |
US6396913B1 (en) * | 1999-10-22 | 2002-05-28 | Convergys Cmg Utah Inc. | System and method for processing call detail records |
US20020037709A1 (en) * | 2000-09-22 | 2002-03-28 | Ranjit Bhatia | System, method and apparatus for facilitating the receipt of realtime information from telecommunications nodes |
MXPA03009815A (es) * | 2001-04-26 | 2005-03-07 | Newsgrade Corp | Generacion dinamica de presentaciones personalizadas de contenido de informacion de dominio especifico. |
US7206393B2 (en) | 2001-11-01 | 2007-04-17 | Agilent Technologies, Inc. | Apparatus and method for processing information from a telephone network |
US20040243343A1 (en) * | 2002-03-08 | 2004-12-02 | Nelson Alastair John | Monitoring system with an integrated toolkit |
JP4022131B2 (ja) * | 2002-11-21 | 2007-12-12 | 富士通株式会社 | 端末装置の位置登録方法、プログラム及び装置 |
US7577658B2 (en) | 2006-10-06 | 2009-08-18 | Microsoft Corporation | Hierarchical locking in B-tree indexes |
US20110244872A1 (en) * | 2008-09-24 | 2011-10-06 | Karl Quinn | Method of Controlling Operation of Telecommunications Network |
KR101647567B1 (ko) * | 2010-03-05 | 2016-08-10 | 인터디지탈 패튼 홀딩스, 인크 | 장치에 대한 보안을 제공하는 방법 및 장치 |
EP2689567B1 (en) * | 2011-03-22 | 2015-06-24 | Telefonaktiebolaget L M Ericsson (publ) | Network node and method to route through or around traffic detection function nodes |
US9591146B2 (en) * | 2013-09-30 | 2017-03-07 | Oracle International Corporation | Method and apparatus for flexible balance management using reservation consumption |
-
2012
- 2012-12-21 CN CN201280070874.3A patent/CN104145472B/zh active Active
- 2012-12-21 EP EP12870028.3A patent/EP2820835B1/en active Active
- 2012-12-21 WO PCT/SE2012/051483 patent/WO2013129988A2/en active Application Filing
- 2012-12-21 US US14/381,065 patent/US9514152B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101194A1 (en) * | 2001-11-01 | 2003-05-29 | Michael Rys | System and method for loading hierarchical data into relational database systems |
WO2005038669A1 (de) * | 2003-10-06 | 2005-04-28 | Softel Gmbh | Verfahren zur bearbeitung von cdr-informationen |
US20100185593A1 (en) * | 2006-10-04 | 2010-07-22 | Salesforce.Com, Inc. | Methods and systems for recursive saving of hierarchical objects to a database |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107251537B (zh) * | 2015-02-10 | 2020-07-14 | 瑞典爱立信有限公司 | 用于数据中介的方法和装置 |
CN107251537A (zh) * | 2015-02-10 | 2017-10-13 | 瑞典爱立信有限公司 | 用于数据中介的方法和装置 |
CN109952568B (zh) * | 2016-08-10 | 2023-05-12 | 月影移动有限公司 | 用于高速搜索或过滤大数据集的系统和方法 |
CN109952568A (zh) * | 2016-08-10 | 2019-06-28 | 月影移动有限公司 | 用于高速搜索或过滤大数据集的系统、方法和数据结构 |
CN108696599B (zh) * | 2017-04-07 | 2021-02-19 | 北京上元信安技术有限公司 | 域名分类特征库中去除冗余域名的方法、系统、防火墙设备 |
CN108696599A (zh) * | 2017-04-07 | 2018-10-23 | 北京上元信安技术有限公司 | 一种去除冗余域名的方法、系统和防火墙设备 |
CN108694219A (zh) * | 2017-04-12 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN108694219B (zh) * | 2017-04-12 | 2023-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN111936985A (zh) * | 2018-01-30 | 2020-11-13 | 恩卡普沙科技有限责任公司 | 一种用于封装和存储来自多个不同数据源的信息的方法和系统 |
CN109284289A (zh) * | 2018-09-11 | 2019-01-29 | 深圳市网安计算机安全检测技术有限公司 | 数据集处理方法、装置、计算机设备及存储介质 |
CN109284289B (zh) * | 2018-09-11 | 2022-03-22 | 深圳市网安计算机安全检测技术有限公司 | 数据集处理方法、装置、计算机设备及存储介质 |
CN110909186A (zh) * | 2018-09-14 | 2020-03-24 | 中国科学院上海高等研究院 | 高光谱遥感数据存储、检索方法及系统、存储介质及终端 |
CN110909186B (zh) * | 2018-09-14 | 2023-08-22 | 中国科学院上海高等研究院 | 高光谱遥感数据存储、检索方法及系统、存储介质及终端 |
CN112765131A (zh) * | 2021-01-22 | 2021-05-07 | 重庆邮电大学 | 一种异构医疗健康数据存储和检索方法及系统 |
CN112765131B (zh) * | 2021-01-22 | 2023-03-24 | 重庆邮电大学 | 一种异构医疗健康数据存储和检索方法及系统 |
CN116132204A (zh) * | 2021-11-09 | 2023-05-16 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
CN116132204B (zh) * | 2021-11-09 | 2024-04-09 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2820835A2 (en) | 2015-01-07 |
US9514152B2 (en) | 2016-12-06 |
CN104145472B (zh) | 2016-06-15 |
WO2013129988A3 (en) | 2013-11-28 |
EP2820835B1 (en) | 2018-11-14 |
WO2013129988A2 (en) | 2013-09-06 |
US20150019514A1 (en) | 2015-01-15 |
EP2820835A4 (en) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104145472B (zh) | 存储数据记录的方法和装置 | |
CN104424229B (zh) | 一种多维度拆分的计算方法及系统 | |
US20220294821A1 (en) | Risk control method, computer device, and readable storage medium | |
CN105321108A (zh) | 一种用于在对等网络上创建共享信息列表的系统和方法 | |
CN107404658A (zh) | 一种交互式网络电视系统及用户数据实时获取方法 | |
CN108595461A (zh) | 兴趣探索方法、存储介质、电子设备及系统 | |
CN102404126A (zh) | 一种云计算在应用过程中的收费方法 | |
CN104462222A (zh) | 一种卡口车辆通行数据的分布式存储方法及系统 | |
CN104462096B (zh) | 舆情监测分析方法和装置 | |
CN110427999A (zh) | 一种账号相关性评估方法、装置、设备及介质 | |
CN106547646A (zh) | 一种数据备份及恢复方法、数据备份及恢复装置 | |
CN114048340A (zh) | 一种层级融合的组合查询图像检索方法 | |
CN111861717A (zh) | 一种合约账户的管理方法、装置、设备及存储介质 | |
CN110197197A (zh) | 一种基于文本相似度改进的电网档案相似度计算方法 | |
CN103036688A (zh) | 一种用户使用云存储服务的计费管理方法 | |
CN111382793A (zh) | 一种特征提取方法、装置和存储介质 | |
CN109858901A (zh) | 基于手机信令大数据的移动用户支付识别方法 | |
CN114078283B (zh) | 数据查询方法、装置、设备及计算机可读存储介质 | |
CN112989762A (zh) | 一种基于Socket协议的复杂字符串模式匹配方法 | |
CN111488343A (zh) | 基于业务数据区块链的电商数据上链方法及装置 | |
CN110276601A (zh) | 电子商业汇票全生命周期监管系统及方法 | |
CN109413149A (zh) | 信息分发控制方法、系统、服务器及计算机可读存储介质 | |
US20220164368A1 (en) | Management of data warehouse for electronic payment transaction processing networks | |
CN117435349B (zh) | 一种算力交易合约生成方法、装置和算力资源管理平台 | |
CN114092078A (zh) | 代付方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |