CN107533551A - 数据块级别的大数据统计 - Google Patents
数据块级别的大数据统计 Download PDFInfo
- Publication number
- CN107533551A CN107533551A CN201680009881.0A CN201680009881A CN107533551A CN 107533551 A CN107533551 A CN 107533551A CN 201680009881 A CN201680009881 A CN 201680009881A CN 107533551 A CN107533551 A CN 107533551A
- Authority
- CN
- China
- Prior art keywords
- statistics
- block
- data
- back end
- file system
- 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
- 230000015654 memory Effects 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000003860 storage Methods 0.000 claims abstract description 55
- 238000013500 data storage Methods 0.000 claims description 17
- 238000009826 distribution Methods 0.000 claims description 6
- 230000006835 compression Effects 0.000 claims description 4
- 238000007906 compression Methods 0.000 claims description 4
- 239000004744 fabric Substances 0.000 claims 1
- 230000014759 maintenance of location Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 238000013480 data collection Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000013479 data entry Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000006116 polymerization reaction Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000251730 Chondrichthyes Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000009738 saturating Methods 0.000 description 1
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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- 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
- G06F16/134—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/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种用于存储分布式文件***中存储的记录的统计数据的***和方法。一方面,在数据节点的存储器中分配统计数据块,用于存储所述数据节点的存储磁盘中存储的记录的统计数据。所述数据节点中多个数据块中的每个数据块在所述统计数据块中均有各自的条目,所述统计数据块与所述数据节点中的其他数据块并列在一起。采集所述分布式文件***中存储的记录的统计数据,并将所述统计数据写入所述数据节点的存储器中的统计数据块。
Description
相关申请案交叉申请
本申请要求于2015年4月15日递交的发明名称为“数据块级别的大数据统计”申请号为14687568的美国非临时专利申请的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明通常涉及数据库管理领域,更具体地,涉及分布式文件***中数据分配领域。
背景技术
大规模分布式文件***在近期得到迅速普及。与非分布式文件***相比,分布式文件***在可扩展性、容错性、位置和数据访问透明性方面有着很大优势。相比磁盘块大小(在数量级上通常接近千字节(KB)),很多大规模分布式文件***使用特大文件***块(在数量级上通常接近兆字节(MB))。例如,在谷歌文件***(Google File System,简称GFS)中,文件被划分成固定大小为64MB的块。Hadoop分布式文件***(Hadoop distributedfile system,简称HDFS)默认使用64MB的文件***块,其中很多装置采用更大的128MB的文件***块。例如,Parquet格式要求256MB的文件***块,推荐大小是介于512MB和1GB之间。大文件***块的益处在于最小化搜索的计算成本。此类文件***设计通过先进的硬件设计使利用提高的传输速率成为可能,并且通常在扫描完整的文件或者表格的情况下在运行时间方面大大改善。几个数据存储方案采用该访问方法,以基于以键值格式存储的数据的主键查找信息。
在为通过分布式文件***存储的数据提供联机分析处理(online analyticalprocessing,简称OLAP)方面已经做过几种尝试,包括中间层解决方案,例如SQL-over-Hadoop或者SQL-over-Big Data,其目的在于为分布式文件***架构提供上报和数据挖掘。这类尝试通常涉及复杂的查询,该查询需要用于查询计划和选择操作的优化器。Big SQL、Stinger.next(带Hive)以及Shark等其他尝试采用利用外部数据库存储预先采集的和/或预先计算的统计数据的优化器。这些方法与关系型数据库管理***(relational databasemanagement system,简称RDBMS)非常相似,使得在实现过程中可以利用数据库查询众所周知的优化逻辑。然而在传统的RDMS中,统计数据表格和存储记录的数据表格都是由相同的***进行管理,由于传统的分布式文件***没有此类机制,因而有必要使用另一种数据库(例如DB2、Hive或者PostgreSQL等)存储所述统计数据表格。这种架构设计使得统计数据没有与表示的数据同时存在于相同的数据节点上,增加了网络的复杂性以及分布式数据存储的通信协议的复杂性。进一步地,在这些***中,由于数据记录和统计数据分开,因此经常利用可以在数据块级别很容易预先计算(例如最大值、最小值、计数以及求和)的SQL解析函数的OLAP也就无法使用。由于存储数据记录的***和存储统计数据的***分开,***维护更加复杂。
发明内容
数据存储上的统计数据采集通常涉及对包含数据的表格进行完整扫描,并且可能要求计算密集型的和/或高带宽网络操作。本发明实施例提供***和方法,以增量采集和聚合分布式文件***架构中存储的数据的统计,从而实现新的统计数据块(statisticaldata block,简称Stats-block)与分布式文件***中每个数据节点的其他数据块并列在一起。通过设置采集统计数据的可配置频率,可以定制数据聚合进程,以借助新的文件***的现有机制(例如,针对HDFS的Hadoop Archive、针对HBase的Major Compaction等)减少数据网络中计算***的资源需求。
本发明内容以简化的形式介绍了选择的概念,这些概念将在下面具体实施方式中进行进一步描述。本发明内容不旨在确定所请求保护主题的关键特征或者必要特征,也不旨在限定所请求保护主题的范围。
一方面,本发明实施例提供用于存储分布式文件***中存储的记录的统计数据的***和方法。一方面,在数据节点的存储器缓存中分配统计数据块,用于存储所述数据节点的存储磁盘中存储的记录的统计数据。所述数据节点中多个数据块的每个数据块在所述统计数据块中均有各自的条目,所述统计数据块与所述数据节点中其他数据块并列在一起。采集所述分布式文件***中存储的记录的统计数据,并将所述统计数据写入所述数据节点的存储器中的统计数据块。
更具体地,本发明实施例提供一种在分布式文件***中搜索数据的方法。所述方法包括:在所述分布式文件***的命名节点接收数据请求,其中所述分布式文件***包括数据节点,所述数据节点中存在具有多个数据块的存储磁盘。所述数据节点存储所述多个数据块中存储的记录的统计数据,所述统计数据存储于所述数据节点的存储器中的统计数据块。所述方法还包括:基于记录的统计数据和所述数据请求的标准的比较,确定满足所述请求的多个数据块中合格的数据块;基于所述数据请求,确定合格的数据块中合格的记录。
在另一示例性实施例中,提供一种装置用于存储分布式文件***中存储的记录的统计数据。所述装置包括:与分布式文件***中的协调节点通信的收发器;存储器;在存储器中分配统计数据块的分配单元,所述统计数据块存储所述分布式文件***中存储的记录的统计数据;将所述统计数据块的多个条目与所述多个数据块的各个数据块相关联的关联单元;采集所述记录的统计数据的采集单元;将所述统计数据写入所述统计数据块的多个条目的编写单元,其中所述多个条目存储所述多个数据块中相关数据块的统计数据。
上述部分是总结段落,所包含的内容必然语句简单概括,并且省略了细节部分。因此,本领域技术人员需要理解所述总结部分只是说明,并不用于任何限制目的。权利要求书所单独界定的本发明的其他方面、创新特性以及优势将在下文会中详细描述。
附图说明
从以下结合附图的详细描述可以更好地理解本发明实施例,附图中相同的参考字符表示相同的元素,其中:
图1为根据本发明实施例描述的一种示例性的分布式文件***架构的方框图;
图2为根据本发明实施例描述的使用分布式文件***的***中数据节点的示例性的统计数据块的示意图;
图3为根据本发明实施例描述的用于实现统计数据块的几个虚拟块配置的示意图;
图4为根据本发明实施例进行记录搜索的一种示例性进程的流程图;
图5为可以实现本发明实施例的示例性的一种计算机***的方框图。
具体实施方式
通过在存储器中存储接近数据块(例如并列在一起)的统计数据,本发明实施例提供的***能够执行快速检索并更新分布式架构中存储的数据,例如通过分布式文件***架构存储的特大数据集。使统计数据与数据块并列在一起的能力不仅可以大大提高采集进程的速度,还可以通过消除为采集统计数据与更高级别的节点(例如MPP***中的协调节点,HDFS中的命名节点等)通信的需要来扩大分布式架构,例如大规模并行处理(massivelyparallel processing,简称MPP)架构,的优化容量。此外,统计数据和敏感信息都能够聚集到集群级(例如HDFS中的命名节点)。本发明提供的***和方法以类似于在传统的关系数据库(RDMS)中提供统计数据的方式提供用于特大数据集(所谓的“大数据”)的统计数据。进一步地,可以通过所述分布式文件***的插件机制利用用户自定义的统计数据采集机制,以处理用户指定的各类数据。此类用户自定义的特性使得针对OLAP这类功能预先计算数据更加便利,也使得内容管理更加灵活。
现详细参考本发明的各种实施例以及附图示出的示例。虽然会结合这些实施例进行描述,但可以理解的是它们并不用于将本发明限制于这些实施例。相反,本发明旨在覆盖可以包括在由所附权利要求书限定的本发明公开的精神和范围内的替代物、修改和等同物。进一步地,在以下本发明的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,可以理解的是可以在没有这些具体细节的情况下实践本发明。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明的各方面造成不必要地模糊。
下面详细描述的一些部分按照流程、步骤、逻辑块、处理、以及能够在计算机存储器中执行的数据位操作的其他符号表示进行呈现。这些描述和表示都是数据处理领域的技术人员向该领域的其他技术人员有效传达工作实质内容所使用的方法。将这里的流程、计算机产生的步骤、逻辑块、进程等一般设想为产生期望结果的其序列首尾一致的步骤或指令。所述步骤需要物理量的物理操作。通常,但不一定,这些物理量采取能够在计算机***中存储、传输、组合、比较和其他操作的电信号或磁信号的形式。已经得到证明的是,主要出于通用的原因,有时将这些信号称作比特、值、元素、符号、字符、术语、数字等是很方便的。
但应该知道的是,所有这些或类似术语均与合适的物理量相关联,并且仅是适用于这些物理量的便利标签。除非另作特殊说明,从以下描述很显然地看出,可以理解地是,贯穿本发明主体的采用“存储”、“创建”、“保护”、“接收”、“加密”、“解密”或“破坏”等术语的讨论指的是计算机***、集成电路或者类似的电子计算设备包括嵌入式***的动作和进程,这些动作和进程操作将表示为计算机***的寄存器和存储器中的物理(电子)量的数据转换为同样地表示为计算机***的存储器或者寄存器或者其他此类信息存储器、传输或显示设备中的物理量的其他数据。
但应该知道的是,所有这些或类似术语均与合适的物理量相关联,并且仅是适用于这些物理量的便利标签。除非另作特殊说明,从以下描述很显然地看出,可以理解地是,贯穿本发明的采用“处理”、“访问”、“执行”、“存储”或“渲染”等术语的讨论是指计算机***或类似电子计算设备的动作和进程,这些动作和进程操作将表示为计算机***的寄存器和存储器以及其他计算机可读介质中的物理(电子)量的数据转换为类似地表示为计算机***的存储器或寄存器或其他此类信息存储器、传输或显示设备中的物理量的其他数据。当一个部件出现在几个实施例中时,使用相同图例编号指示的部件与初始实施例中描述的部件相同。
本发明实施例包括用于统计数据采集以及在存储器中与原始数据块并列在一起存储的新***和方法。本文的术语“统计数据块”用于描述数据节点中为统计数据采集以及存储在永久存储器(例如硬盘、SSD和/或flash存储器)中并且保存在所述节点(例如数据节点)的存储器中的数据保留的数据块(至少一个数据块,可能存在几个)。本文的术语“统计数据条目”用于描述存储统计数据块中统计数据的条目。所述条目可以有几种格式,包括arrayList。统计数据条目包括两级条目:节点级别和块级别。本文的术语“节点统计数据条目”用于描述有关分布式文件***架构中节点级别的统计数据的条目。本文的术语“块统计数据条目”用于描述有关分布式文件***架构中数据块级别的统计数据的条目。通常所述块统计数据条目与包括统计数据块在内的数据节点的每个数据块形成一一对应。所述节点统计数据条目与每个统计数据块形成一一对应(即一个节点统计数据条目对应一个数据节点)。在部分实施例中,多个块统计数据条目可以映射到一个数据块。为一个数据块保留多个块统计数据条目的原因是允许所述数据块上存在很多条目,从而使得统计数据不会只由一个块统计数据条目提供。根据各个实施例,统计数据可以利用本地插件框架实时采集或者在分布式文件***的主压缩进程中采集。
下文将描述本发明实施例提供的分布式文件***的一种示例性的架构设计。为简单描述所述架构,在示例性的架构中描述每个数据节点中只有一个统计数据块的情况。但是应该理解的是,每个数据节点中有一个统计数据块只是示例性的数量,其他数量也与本发明的精神和范围保持一致。针对每个数据节点选择合适数量的统计数据块的决定性因素包括实现所述分布式文件***的计算***中总的可用磁盘存储以及该计算***的存储容量。一般来说,所述统计数据块最好是能够全部存储在存储器中,并且具有针对数据节点中每个数据块预先分配的条目,其中存储在数据块中的条目代表相同的数据特性。
参见图1,图1示出根据本发明实施例实现分布式文件***架构的一种示例性***100。示例性的***100描述了通过HDFS实现的分布式文件***。尽管***100描述为通过HDFS实现,但是应该理解的是,本发明实施例并不局限于HDFS,也可以通过多个分布式文件***架构实现。为方便起见,利用HDFS常用的术语来描述所述分布式文件***的部件和层级,例如,“命名节点”用于描述所述分布式文件***的最高级,“数据节点”用于描述中级,“数据块”用于描述低级,此类术语不应该用于限制可以实现本发明的***和方法的架构。
所述***100包括命名节点105,多个数据节点110、115以及120。所述命名节点105和数据节点110至120都是具有一个或者多个处理器、存储器、数据存储器、网络连接以及计算***常用的其他部件的计算***。每个数据节点各自包括多个数据块125,每个数据节点用于利用所述文件***(例如HDFS)特定的块协议通过网络提供数据块。所述***100中的设备之间的通信可以通过TCP/IP或者其他形式的网络通信实现。每个数据节点还包括统计数据块130,所述统计数据块130包括该数据节点的专用存储器,所述专用存储器用于处理分配给该数据节点的读/写任务。可选地,节点统计数据块140在命名节点105处实现。下文将更加详细的描述统计数据块130以及可选的节点统计数据块140的功能。
参见图2,图2示出本发明实施例提供的分布式网络架构中一种示例性的数据节点。所述数据节点包括多个数据块以及一个统计数据块130。所述统计数据块130用于存储所述分布式网络中存储的记录的统计数据,尤其是存储在实现特定统计数据块的数据节点(例如图2的数据节点1)的数据。所述分布式网络中的每个数据节点更适宜实现统计数据块,该统计数据块中存储有关存储器中特定数据节点的统计数据。如图2所示,统计数据块130包括节点统计数据条目132以及多个块统计数据条目135。根据本发明实施例,统计数据块130用于实现块统计数据条目与数据节点的数据块的一一对应。即数据节点的每个数据块在统计数据块130中都有各自的块统计数据条目。因此块统计数据条目1对应数据块1(DB1),块统计数据条目2对应数据块2(DB2),依此类推。根据这种方式,统计数据可以在数据块级别保存,在统计数据块130聚合(所述统计数据块130本身就是一种数据块,例如数据节点的DB0,为统计数据采集保留)。所述统计数据块也保存在存储器中,使得数据读取更快。统计数据块的总大小最好是根据***存储器的大小限制,因为当本发明提供的***在典型情况下运行时,统计数据块保存在内存存储器中。保存在存储器中的统计数据周期性地刷新至磁盘存储器,以永久性地存储该数据。
例如,对于有2TB的磁盘存储并且计划每个数据块有256MB的内存大小的数据节点,总共会有8000个数据块。统计数据块会占用一个数据块(例如数据块0)。因此,该统计数据块会被划分成8000个条目(例如一个阵列),其中条目0为头部保留(例如节点统计数据条目),条目1至7999用于各自的数据块。在此示例中,每个数据块会有32KB的块统计数据条目。一般来说,数据节点的数据块的数量是由根据数据块的大小划分的存储器的大小决定,所述统计数据块的大小是由以下得出:
统计数据块的大小=数据块的大小/数据块的总数量
形成大数据常用的特大数据集的数据可以从线上商店、天气预报等多渠道得到。为了更好的说明本发明实施例,下面描述一种包括用于网络载体的电话日志的数据存储的示例。在此示例中,电话日志的数据以键值格式存储,其中以呼叫时间为键,各自的日志信息作为与该键相关联的值(例如与图2中的DB3相关联的键值条目)。对于电话日志,在数据块级别采集的示例性的统计数据可以包括:计数(即数据块的总条目)、高键(最近时间戳)、低键(最早时间戳)、最多的电话号码(用户电话号码的高键)、最少的电话号码(用户电话号码的低键)、最高计费(最多费用)、最低计费(最少费用)、基于时间戳的柱状图、基于用户身份和计费的柱状图以及前10位呼叫者的柱状图。在节点级别采集的统计数据可以包括:利用率方框图、数据类型方框图、最新更新的时间戳、节点的总数、所有电话号码的高键、所有电话号码的低键等等。其他采集的统计数据也在本发明的精神和范围内。如图所示,所述统计数据块130包括一个节点统计数据条目和多个块统计数据条目(与所述数据节点的多个数据块相对应)。
日志中的数据可以以多种格式存储,包括ASCII、表格或者文本等。键值对中的“值”并不局限于数值,该值可以也是字符串(例如姓名)或者其他格式。在数据存储包括电话日志的数据的示例中,该值包括电话号码、位置、通信类型、持续时间以及接听人。
根据本发明实施例,每个数据块包括多个数据条目。所述***每次进行的读或写集中于至少一个数据块,其中大部分数据可以一写多读。节点统计数据条目用作数据节点的头/描述符。每个数据块能够包括不同的数据,一个数据块可以有电话计费日志等,另一个数据块则可以包括二进制图像。由于数据节点的数据块可能存在多样性,为计算数据节点的统计数据,在节点统计数据条目中描述数据节点的数据类型是有用的。
将统计数据块130与数据节点的其他数据块并列在一起有几个显著的优势。(数据块级别和节点级别的)数据统计都能够快速更新,并且***的维护更加简化。同样地,合并或者拆分数据块和/或所述分布式文件***的分区更加简化。由于内置支持标准功能(例如平均、最小化、最大化以及计数等)和通过本地文件***(例如HDFS)提供的插件框架实现的用户自定义功能,OLAP功能的结果能够在数据块级别预先计算。针对用于处理平行数据的***(例如MPP***),数据的短路读可以优化谓词叠加。短路读指的是在数据节点接收并执行的读取,无需要求更高级别(例如命名节点或者MPP的协调节点)或者同等级别(即其他数据节点)的处理。因此,由于本发明实施例提供的***包括与存储器中数据节点的所有数据块相关的统计数据,因此所述***不需要查询其他数据节点来访问只与存储在该数据节点的数据相关的信息。
虽然没有在图2中描述,节点统计数据块(例如图1中的节点统计数据块140)可以在最高级(例如集群或者命名节点级别)实现。所述节点统计数据块中包括所述集群中每个统计数据块(即针对每个数据节点)的节点统计数据条目。该数据由块统计数据条目聚合并且形成***的统计数据块的元数据。
统计数据采集、维护及故障转移
很多大数据的实现旨在支持非常大的文件,通常会使用分段机制。应用程序编写重新定向至临时本地文件或者存储器。一旦累积的数据的大小超过数据块的大小,发送请求至集群级别节点(例如命名节点)或者直接在数据节点级别发送,以识别刷新至磁盘的数据的目的数据块。当文件关闭时,剩余未刷新的数据传送至磁盘,并且该文件将永久存储。为支持RDMS这类的数据操作命令(例如,***/更新/删除),部分数据存储通过可用于生成更小文件的日志结构的合并树和删除标记实现更复杂的方法。然后周期性地进行压缩流程,以将小文件合并至大的数据块。不需要更新现有的文件块,而是分配新的数据块替代现有的文件块。与那些方法相反,本发明实施例提供统计数据采集和维护的一致性的三个级别:严格的、偶然的和最终的。
对于“严格的”统计数据采集,数据和统计数据的变化非常小并且都是一起实时提交。这是一致性的最高形式并且花费最多的***资源。对于偶然的统计数据采集,当块统计数据条目映射的数据块刷新至磁盘时或者文件关闭时,对块统计数据条目进行编写。对于最终的统计数据采集,块统计数据条目会定期(用户自定义)更新或者通过压缩进程触发更新。
当所述***配置了“偶然的”或者“最终的”一致性级别,仅仅检查统计数据块不能保证数据的准确性。为了保证检索精确数据,需要临时文件或者存储器存储设备存储最新数据。为了实现一致性的严格级别,最好是预先分配一个(或者多个)附加的块统计数据条目用于未永久存储的数据,并且所述统计数据需要根据每个事务都重新更新。
可以通过一个或者多个现有的统计数据采集模块(例如MySQL和Hive)进行统计数据采集。该模块用于指向数据块(例如统计数据块130)并且在数据节点上存储结果(与在单个统计数据表上存储进行比较,该存储以传统方式完成)。
本发明实施例的另一个方面涉及故障转移机制。尽管磁盘上每个统计数据块的位置也是用于持久性,并且存储在存储器中的统计数据(通过用户自定义的配置)周期性地或者通过用户动作、压缩或者***关闭等触发事件刷新至磁盘。在正常关闭期间,将所述统计数据块中最新的统计数据写入磁盘。
在意外故障情况下,数据块(即统计数据块)中的信息可以直接转入新的数据节点中的新统计数据块。在故障转移过程中,每个数据块移至新的可用数据节点,并且所述新的数据节点中的统计数据块也会相应地更新,类似于在正常操作期间加入新的数据块。***的故障转移可以通过至少两种方法实现:直接故障转移和优化故障转移。在直接故障转移中,所述***用于通过生成新的数据块的进程(例如将故障的数据节点的统计数据块复制到目标数据节点的新的数据块)进行透明的故障转移。在优化故障转移中,通过存储在其他节点的统计数据的副本重新利用故障的数据节点的统计数据块,以将该***修复至原始状态。
虚拟块
本发明实施例的一个优势在于能够(例如,在统计数据块)保存所有的内存统计数据,其中每个块统计数据条目映射一个数据块,该数据块(例如10KB至100KB)足以存储与该数据块相关的各类信息。每个块统计数据条目的内存要求存在挑战,因为随着数据节点中(以及数据块中)数据的数量的增加,在存储器中存储统计数据块的所有统计数据条目可能会超过实现该数据节点的***的硬件容量。本发明的一个方面通过构造“虚拟块”解决了这个问题,所述“虚拟块”是包括数据节点的几个数据块的逻辑组。在一个数据节点中存在多个数据块,且统计数据条目与数据块是一一对应的情况下,所述虚拟块作为中间层。配置虚拟块后,每个块统计数据条目映射至各自的虚拟块,而不是统计数据块中每个块统计数据条目映射至各自的数据块(如图2所示)。每个虚拟快用于映射指定(可配置)数量的数据块,并且存储与这些映射的数据块相关的统计数据。针对每个虚拟块进行内存分配,其中针对统计数据块的总的内存分配是根据虚拟块的数量进行划分。
参见图3,图3描述了用于实现统计数据块的几个虚拟快配置300。上面的表格描述了几个可能的磁盘大小以及相应的数据块大小、块统计数据条目的大小、统计数据块的最大(总)容量以及该统计数据块是否适合存储器的指示。典型地,分布式***的每个数据节点最少有32GB的内存,现在的***中每个数据节点的内存高达96GB至128GB。数据节点中内存的大小与磁盘存储的大小的比率很重要。如果数据节点的统计数据块过大,统计数据块的实现可能对***不起作用,而这正是实现虚拟块的原因。
例如,第一种情况示出磁盘的大小是2TB,数据块的大小是256MB。因此,块统计数据条目的大小是32KB,统计数据块的总大小是256MB。这个大小应该可以适应现在计算***中可用的存储器。相反,200TB的磁盘大小以及256MB的数据块大小使得统计数据块的大小接近25GB,这不适合现有可用的存储器。
针对此类情况,可以适当运用虚拟块。映射至指定虚拟块的数据块的数量可以配置,并且可以基于***中特定的硬件推荐。数据块的数量指的是负责保存统计数据的指定的统计数据块条目对应的数据块的数量。确定映射至生成的虚拟块的数据块的数量,以保证统计数据块不会变的太大(例如太大而无法适合存储器)。也就是说统计数据块的粒度可以配置。如果没有配置虚拟块,粒度为1:1,即一个数据块中的统计数据对应一个统计数据块条目。如果虚拟块对于减少内存占用是必要的,粒度将会更大,因此,多个数据块的统计数据存储在一个统计数据块条目中(例如4:1、8:1或者16:1)。实现统计数据块的同时改变粒度能够限制内存的使用,从而保证一个数据节点只需要一个统计数据块。
下面的表格描述了实现虚拟块的几种可能配置,其中数据节点的磁盘大小是200TB。当数据块的大小是256MB且块统计数据条目的大小是4KB时,所述虚拟块可以对应4个数据块,使得统计数据块的总内存大小接近800MB。当数据块的大小是256MB且块统计数据条目的大小是16KB时,所述虚拟块可以对应8个数据块,使得统计数据块的总内存大小接近800MB。当数据块的大小是256MB且块统计数据条目的大小是32KB时,所述虚拟块可以对应16个数据块,使得统计数据块的总内存大小接近800MB。最后,当数据块的大小是512MB且块统计数据条目的大小是8KB时,所述虚拟块可以对应4个数据块,使得统计数据块的总内存大小接近800MB。如图所示,可以配置所述虚拟块,以保证所述统计数据块的总大小适合所述数据节点的存储器。
统计数据可以分为两类:固定大小的统计数据(例如,最大值,最小值,计数,基数等)和非固定大小的统计数据(例如,柱状图或者不同的值和频率对)。所述固定大小的数据通常都非常小(100字节至500字节),并且所有数据块的大小都相同。非固定大小的数据存在挑战,例如在一个电话日志中,未压缩情况下每个不同的电话号码和频率对是10(digit)+4(int)=14字节,而数据块中可能有成千上万个不同的电话号码。解决这个问题的一种方式是混合方法,例如只保存前10对电话号码和频率,剩余的电话号码和频率对均保存在范围柱状图中(例如保存在以前10个电话号码为边界的共11个范围内)。在这种示例性的情况下,只需大约300字节就足以存储所述统计数据。HDFS(以及很多其他大数据的实现)在数据变化方面的优势在于不更新存储的数据。因此,可以只计算一次统计数据,不用担心因后期更新导致的溢出。因此,为了使每个块统计数据条目适合存储器,只要预先计算块统计数据条目对数据块的配置(例如虚拟块映射),就不会因为输入数据而发生溢出。
聚合功能和过滤因子估计:
通过在存储器中配置统计数据块(例如所有的块统计数据条目和节点统计数据条目),很多分析搜索都可以快速响应,磁盘的I/O减少甚至消除。为了实现MPP架构的本地优化等,可以在数据节点级别优化查询。进一步地,随着节点统计数据条目与对于命名节点级别(例如最高级)其他选择信息的可选聚合,优化也可以在集群级别进行。
尽管计数(*)是最常见的OLAP功能之一,但是对于在大数据环境中存储传统的数据仍然是个挑战。例如,目前HBase必须扫描表格中所有的数据块才能获得信息。为了获得有关RDMS类似的性能水平,在传统方法中必须使用类似于行触发器API或者协处理器的第三方方法。尽管这些方法在处理包括时间戳范围等特定搜索谓词方面存在困难。
本发明实施例为常用的OLAP功能提供快速且鲁棒性较高的解决方法。在所有节点统计数据条目的内存查找足以为常用的OLAP功能提供很多值。另外,位于集群级别(例如在命名节点105的节点统计数据块140)的可选的聚合节点统计数据条目使得只需在命名节点级别进行一次内存查找就可以获得请求结果。针对键的范围搜索情况(例如搜索一天中电话呼叫的高峰时间),每个数据节点可以在其各自的统计数据块进行一次内存搜索,最多存在两次边界数据块的I/O读取。与传统方法中必须读取数据节点的所有数据块相比,这已经代表了巨大的进步。此外,这种搜索读取能够通过MPP等触发。
可以通过多种方式提高非键值搜索的效率。例如,可以在命名节点聚合非键值的最大值、最小值以及计数。此类聚合可以通过默认进程完成,其中为了从数据节点的统计数据块检索到节点统计数据条目,在每个数据节点都进行MapReduce作业处理,并且在执行期间将结果聚合至命名节点。或者优化进程可以包括将(每个数据节点的)每个节点统计数据条目的副本存储在集群级别,所述副本可以存储在命名节点或者其他一些高级别***中。不需要在数据节点的数据块上进行数据读取,就能够执行聚合。在使用MPP架构的***中,MPP数据节点能够本地检索节点统计数据条目,然后将信息聚合至MPP协调器。
选择性(例如过滤因子)估计是查询优化的关键统计数据之一,其直接影响分布式数据存储中JOIN序列和负载平衡的确定。常见方法是在其他(例如单独的)数据库中计算和存储该信息。但是随着分布式数据存储中数据的输入,此信息很容易过期,进而不能在数据节点级别发挥作用。
根据本发明实施例,在运行过程中,不需要资源密集型的I/O操作,也不需要在第三方数据库中存储过滤因子(在其他方法中可能是必要的)就可以生成精确的选择性估计。所有的计算均依赖于现有的内存统计数据(例如基数、柱状图、最大值、最小值以及计数等)。下面的伪码示出示例性的电话日志数据存储的计算过程,适用于三个级别:数据块、数据节点以及集群。
上述逻辑在本发明提供的***中使用时,不涉及数据块级别的I/O。这是因为所有的统计数据都存储在统计数据块,(在运用严格的一致性策略时)所述统计数据完全准确,或者(在运用偶然的或者最终的一致性策略时)近似估计现存储在分布式数据存储中的数据节点中的数据。
用于列存储的增强型点搜索方法
存储在数据块和数据节点级别的内存数据的统计可以实现针对分布在数据存储中特大数据集的增强型搜索能力。例如,最大键和最小键均保存在节点统计数据条目和块统计数据条目中,点搜索方法可以应用于客户端关于键和值的请求的谓词。在一示例性实施例中,搜索首先基于Block.min排序,然后基于Block.max排序,丢弃有Block.max<searchValue or Block.min>searchValue的数据块。只扫描剩余合格的数据块以匹配搜索值。
用于执行分布式数据存储中电话日志的点搜索的示例性的伪码包括:
需要说明的是,所述ArrayList数据(例如存储在块统计条目的数据)已经在内存中,因此排序可以快速进行。因此可以通过内存处理快速确定合格的数据节点(这些数据节点有符合请求标准的数据),只有合格的数据节点要求对数据块进行扫描,以查找请求的数据。根据本发明实施例,如果特殊值和点搜索很常见,则预先排序统计数据并将结果存储在节点统计数据条目中。常见的点搜索可以是用户自定义,或者由***根据点搜索进行的阈频率等自动确定。
参见图4,图4是根据本发明实施例描述了对数据存储中列存储值(例如键值)进行点搜索的一种进程的流程图400。步骤405至440描述了示例性的步骤,这些步骤包括根据此处所描述的各种实施例的流程图400中描述的进程。在一实施例中,所述流程图400作为存储在计算机可读介质中的计算机可执行指令实现,且由执行在分布式数据存储中针对列存储值进行点搜索的进程的一个或者多个计算设备执行。
所述进程开始于步骤405,有一个示例性的电话记录的搜索(例如客户端请求):SELECT*FROM phoneLog WHERE phonenumber=‘4089999985’。在步骤410,所述进程将所述请求转发至分布式存储的命名节点。在步骤415,所述命名节点搜索节点统计数据条目级别存储的统计数据,以确定请求的电话号码“4089999985”是否存在于最小存储值和最大存储值之间。所述节点统计数据条目是数据存储的所有数据节点的聚合,因此,如果没有在节点统计数据条目级别记录的最大电话号码和最小电话号码之间找到该电话号码,则该电话号码不在所述分布式数据存储的任意数据节点中。因此,如果步骤415的结果为否,则返回至命名节点的结果是不存在用于所述请求的合格键值对。如果在步骤415所述命名节点确定为是,即通过所述节点统计数据条目确定该电话号码在最小电话号码和最大电话号码之间,则所述进程继续至步骤420。
在步骤420,对符合查询电话号码的分布式存储中的数据节点进行搜索。只在合格的数据节点存储的数据中搜索请求的数据。合格的数据节点可以通过节点统计数据条目确定,其中所述节点统计数据条目可以包括数据节点中存储的键的最大值和最小值等常见信息。根据一实施例,在合格的数据节点上进行MapReduce任务,以对每个数据节点存储的数据进行排序。
在步骤425,对符合请求标准的电话号码(例如通过搜索算法)进行搜索。此搜索可以是针对每个合格的数据节点中统计数据块存储的统计数据进行,包括所述数据节点的每个数据块上的统计数据。在示例性的搜索中,如果数据块的最小值大于搜索的号码,则该数据块不合格且被排除。因此,可以针对(在步骤420中确定的)每个合格的数据节点排除不合格的数据块。
在步骤430中,继续针对每个合格的数据节点中统计数据块存储的统计数据搜索该电话号码。在步骤430,搜索数据块的最大值,如果所述数据块的最大值小于搜索的号码,则该数据块不合格且被排除。因此,可以针对(在步骤420中确定的)每个合格的数据节点排除不合格的数据块。
在步骤435,步骤425和步骤430的结果都用于确定分布式数据存储中合格的数据块,所述数据块可能存在于网络中不止一个数据节点中。
在步骤440,对步骤435中确定的合格的数据块中存储的值进行迭代循环。与步骤405至435相反,步骤440可以只通过内存处理执行(例如通过分析***的数据节点中各自的统计数据块中存储的数据),并且步骤440在磁盘级别涉及数据块的输入/输出扫描。因此,大部分请求的过滤只通过内存处理完成,并且可以针对键值和非键值进行。另外,查询可以在所有级别(最高级、中级、低级,例如命名节点、数据节点、数据块)完成。
示例性的计算***
根据一实施例,此处所描述的技术通过一个或者多个专用计算设备实现。所述专用计算设备可以是通过硬连接执行该技术,或者可以包括永久编程的数字电子设备例如一个或者多个特殊应用集成电路(application-specific integrated circuit,简称ASIC)或者现场可编程门阵列(field programmable gate array,简称FPGA)以执行该技术,或者可以包括一个或者多个编程的通用硬件处理器以根据固件、存储器、其他存储设备或者它们的组合中的程序指令执行所述技术。此类专用计算设备也可以将自定义的硬连接的逻辑、ASIC或者FPGA与自定义编程进行结合,以实现该技术。所述专用计算设备可以是数据库服务器、存储设备、台式计算机***、便携计算机***、手持设备、网络设备或者其他任意集成硬连接和/或程序逻辑以实现该技术的设备。
图5示出了根据本发明各种实施例的装置500的一种示例性的配置。可以实现本发明实施例的所述示例性的***500包括通用计算***环境。在最基本的配置中,计算***500通常包括至少一个处理单元501和存储器以及用于传输信息的地址/数据总线509(或者其他接口)。根据计算***环境的准确配置和类型,存储器可以是易失性的(例如RAM 502)、非易失性的(例如ROM 503和闪存等)或者两者的组合。
计算机***500还可以包括可选的图形子***505,用于将信息呈现给计算机用户,例如通过在视频电缆511连接的附着的显示设备510上显示信息。根据本发明实施例,所述图形子***505可以通过所述视频电缆511直接耦合至所述显示设备510。在可选实施例中,所述显示设备510可以集成至所述计算***(例如笔记本或者上网本的显示板)并且不需要所述视频电缆511。
另外,计算***500还可以有附加特性/功能。例如,计算***500还可以包括(可移动的和/或不可移动的)附加存储介质,包括但不限于磁盘、光盘或磁带。此类附加存储器在图5中由数据存储设备504示出。计算机存储介质包括在任意方法或技术中实现的用于存储计算机可读指令、数据结构、程序模块或其他数据等信息的易失性和非易失性、可移动和不可移动介质。RAM 502、ROM 503以及数据存储设备504都是计算机存储介质的示例。RAM 502可以包括此处所描述的统计数据块530,数据存储设备504可以包括统计数据块指令515,所述统计数据块指令515包括由处理器(例如501)执行以使所述计算***500具有此处所描述的部分或者全部功能的软件。
计算***500还包括可选的字母数据输入设备506、可选的光标控制或指示设备507,以及一个或者多个信号通信接口(输入/输出设备,例如网络接口卡和/或传输器和接收器,也称作“收发器”)508。可选的字母数据输入设备506可以将信息和命令选择传递至中央处理器501。可选的光标控制或指示设备507与总线509耦合以将用户输入信息和命令选择传递至中央处理器501。信号通信接口(输入/输出设备)508也与总线509耦合,可以是串行端口。通信接口508还可以包括无线通信机制。利用通信接口508,计算机***500可以通过因特网、软件定义网络(software defined network,简称SDN)或者内部网(例如局域网)或者可以接收数据(例如数字电视信号)的网络等通信网络与其他计算机***通信耦合。
在以上本发明实施例的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,所属领域的普通技术人员将认识到,可以在没有这些具体细节的情况下实践本发明。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明实施例的各方面造成不必要地模糊。尽管为了清楚起见可以将一种方法描绘为一系列经编号步骤,但所述编号未必指定步骤的次序。应理解,所述步骤中的一些可以跳过、并行执行、或在没有维持严格序列顺序的要求下执行。示出本发明的实施例的图式是半图解的且不按比例,且特别地,尺寸中的一些是为了呈现的清晰性且在绘制的图式中放大示出。类似地,尽管在用于易于描述的图式中的视图大体上示出类似的定向,但在图式中的此描述大部分是任意的。
根据本发明的实施例如此处所述。尽管本发明在具体实施例中已经描述,希望本发明将仅限于所附权利要求书以及可适用法律的规则和原理所需的范围。
Claims (20)
1.一种用于存储分布式文件***中存储的记录的统计数据的方法,其特征在于,所述方法包括:
在数据节点的存储器中分配统计数据块,其中所述统计数据块用于存储数据节点在有多个数据块的存储磁盘中存储的分布式文件***记录的统计数据,所述数据节点与所述分布式文件***相关联;
将所述统计数据块的多个条目与所述多个数据块中各个数据块相关联;
采集所述数据节点中存储的分布式文件***记录的统计数据;
将所述统计数据写入所述统计数据块的多个条目中,其中所述多个条目存储所述多个数据块中相关数据块的统计数据。
2.根据权利要求1所述的方法,其特征在于,所述统计数据通过相同的文件***保存,其中所述相同的文件***用于将记录分布在分布式文件***中。
3.根据权利要求1所述的方法,其特征在于,所述分配统计数据块包括分配虚拟块,其中所述虚拟块包括多个虚拟块统计数据条目,所述多个虚拟块统计数据条目中的一个虚拟块统计数据条目对应所述多个数据块中的一组数据块。
4.根据权利要求1所述的方法,其特征在于,所述统计数据随着所述分布式文件***的任意数据事务实时更新。
5.根据权利要求1所述的方法,其特征在于,所述统计数据均为周期性更新。
6.根据权利要求5所述的方法,其特征在于,所述周期基于以下至少一项自动确定:所述数据节点的存储器中的统计数据转移到所述数据节点的存储磁盘中,包括所述分布式文件***的记录的文件的关闭。
7.根据权利要求1所述的方法,其特征在于,所述分布式文件***包括多个数据节点,其中所述多个数据节点分别具有各自的存储磁盘,所述存储磁盘各自具有多个数据块;
所述在数据节点的存储器中分配统计数据块包括:在所述多个数据节点的第二数据节点的第二存储器中分配第二统计数据块,用于存储所述统计数据的副本。
8.根据权利要求7所述的方法,其特征在于,一旦检测到数据节点的故障,将所述统计数据写入所述第二数据节点中的第二统计数据块中,用于存储所述统计数据的副本。
9.一种装置,其特征在于,包括:
收发器,用于与分布式文件***的协调节点通信;
存储器;
包括多个数据块且存储程序指令的计算机可读存储介质;
处理器,用于执行所述指令,其中所述指令指示所述处理器在存储器中分配统计数据块,所述统计数据块用于存储所述分布式文件***中存储的记录的统计数据;所述指令还指示所述处理器将所述统计数据块的多个条目与所述多个数据块中各个数据块相关联;所述指令还指示所述处理器采集所述记录的统计数据,并将所述统计数据写入所述统计数据块的多个条目中,其中所述多个条目存储所述多个数据块中相关数据块的统计数据。
10.根据权利要求9所述的装置,其特征在于,所述分配统计数据块包括分配虚拟块,其中所述虚拟块包括多个虚拟块统计数据条目,所述多个虚拟块统计数据条目中的一个虚拟块统计数据条目对应所述多个数据块中的一组数据块。
11.根据权利要求10所述的装置,其特征在于,所述数据块组中的数据块的数量是基于计算机可读存储介质的存储容量和所述多个数据块中各个数据块的存储容量自动配置。
12.根据权利要求9所述的装置,其特征在于,所述统计数据块还包括数据节点条目,其中所述数据节点条目包括与所述多个数据块中所有数据块的聚合数据相关联的统计数据。
13.根据权利要求12所述的装置,其特征在于,所述指令指示所述处理器将与所述聚合数据相关联的统计数据上报给所述分布式文件***的协调节点。
14.根据权利要求9所述的装置,其特征在于,所述记录均由所述分布式文件***分配,所述统计数据均由所述分布式文件***保存。
15.根据权利要求9所述的装置,其特征在于,所述统计数据随着所述计算机可读存储介质中多个数据块中数据块的任意数据事务实时更新。
16.根据权利要求9所述的装置,其特征在于,所述统计数据均为周期性更新,其中所述周期是基于所述计算机可读存储介质中多个数据块存储的记录的压缩确定。
17.一种在分布式文件***中搜索数据的方法,其特征在于,所述方法包括:
在所述分布式文件***的命名节点接收数据请求,其中所述分布式文件***中包括数据节点,所述数据节点中存在有多个数据块的存储磁盘,所述数据节点存储所述多个数据块存储的记录的统计数据,所述统计数据存储于所述数据节点的存储器中的统计数据块;
基于记录的统计数据和数据请求的标准的比较,确定满足所述请求的多个数据块中合格的数据块;
基于所述数据请求,确定所述合格的数据块中合格的记录。
18.根据权利要求17所述的方法,其特征在于,所述分布式文件***包括多个数据节点,所述多个数据节点中的每个数据节点存储各自记录的统计数据;所述方法还包括:
基于各自统计数据和所述数据请求的标准的比较,确定所述多个数据节点中合格的数据节点。
19.根据权利要求17所述的方法,其特征在于,所述统计数据划分为数据块条目和数据节点条目。
20.根据权利要求19所述的方法,其特征在于,所述多个数据块中的数据块在所述统计数据块中均有各自的条目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/687,568 | 2015-04-15 | ||
US14/687,568 US20160306810A1 (en) | 2015-04-15 | 2015-04-15 | Big data statistics at data-block level |
PCT/CN2016/075873 WO2016165509A1 (en) | 2015-04-15 | 2016-03-08 | Big data statistics at data-block level |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533551A true CN107533551A (zh) | 2018-01-02 |
CN107533551B CN107533551B (zh) | 2020-08-07 |
Family
ID=57126982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680009881.0A Active CN107533551B (zh) | 2015-04-15 | 2016-03-08 | 数据块级别的大数据统计 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160306810A1 (zh) |
EP (2) | EP3254210B1 (zh) |
CN (1) | CN107533551B (zh) |
WO (1) | WO2016165509A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988696A (zh) * | 2019-12-18 | 2021-06-18 | 浙江宇视科技有限公司 | 文件整理方法、装置及相关设备 |
CN113468107A (zh) * | 2021-09-02 | 2021-10-01 | 阿里云计算有限公司 | 数据处理方法、设备、存储介质及*** |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459892B2 (en) | 2014-04-23 | 2019-10-29 | Qumulo, Inc. | Filesystem hierarchical aggregate metrics |
US9836480B2 (en) | 2015-01-12 | 2017-12-05 | Qumulo, Inc. | Filesystem capacity and performance metrics and visualizations |
US10459916B2 (en) * | 2015-07-31 | 2019-10-29 | International Business Machines Corporation | Updating database statistics during query execution |
US11520760B2 (en) * | 2015-10-23 | 2022-12-06 | Oracle International Corporation | System and method for providing bottom-up aggregation in a multidimensional database environment |
US10353886B2 (en) * | 2016-07-20 | 2019-07-16 | Sap Se | Big data computing architecture |
US10095729B2 (en) | 2016-12-09 | 2018-10-09 | Qumulo, Inc. | Managing storage quotas in a shared storage system |
US10346355B2 (en) * | 2016-12-23 | 2019-07-09 | Qumulo, Inc. | Filesystem block sampling to identify user consumption of storage resources |
US10909074B2 (en) * | 2017-04-18 | 2021-02-02 | Microsoft Technology Licensing, Llc | File table index aggregate statistics |
CN110019334A (zh) * | 2017-10-16 | 2019-07-16 | 广东亿迅科技有限公司 | 一种多维数据查询分析的优化方法及其*** |
US11360936B2 (en) | 2018-06-08 | 2022-06-14 | Qumulo, Inc. | Managing per object snapshot coverage in filesystems |
US10534758B1 (en) | 2018-12-20 | 2020-01-14 | Qumulo, Inc. | File system cache tiers |
US10897402B2 (en) * | 2019-01-08 | 2021-01-19 | Hewlett Packard Enterprise Development Lp | Statistics increment for multiple publishers |
US10614033B1 (en) | 2019-01-30 | 2020-04-07 | Qumulo, Inc. | Client aware pre-fetch policy scoring system |
US11151092B2 (en) | 2019-01-30 | 2021-10-19 | Qumulo, Inc. | Data replication in distributed file systems |
US10983975B2 (en) | 2019-06-13 | 2021-04-20 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Data block storage method and apparatus, and electronic device |
US10725977B1 (en) | 2019-10-21 | 2020-07-28 | Qumulo, Inc. | Managing file system state during replication jobs |
CN110943882B (zh) * | 2019-11-12 | 2022-03-01 | 浙江原初数据科技有限公司 | 一种基于联网监测的黑广播实时识别***及其识别方法 |
US11287994B2 (en) * | 2019-12-13 | 2022-03-29 | Samsung Electronics Co., Ltd. | Native key-value storage enabled distributed storage system |
US10860372B1 (en) | 2020-01-24 | 2020-12-08 | Qumulo, Inc. | Managing throughput fairness and quality of service in file systems |
US10795796B1 (en) | 2020-01-24 | 2020-10-06 | Qumulo, Inc. | Predictive performance analysis for file systems |
US11151001B2 (en) | 2020-01-28 | 2021-10-19 | Qumulo, Inc. | Recovery checkpoints for distributed file systems |
US10860414B1 (en) | 2020-01-31 | 2020-12-08 | Qumulo, Inc. | Change notification in distributed file systems |
US11372871B1 (en) * | 2020-02-21 | 2022-06-28 | Rapid7, Inc. | Programmable framework for distributed computation of statistical functions over time-based data |
US10936551B1 (en) | 2020-03-30 | 2021-03-02 | Qumulo, Inc. | Aggregating alternate data stream metrics for file systems |
US10936538B1 (en) | 2020-03-30 | 2021-03-02 | Qumulo, Inc. | Fair sampling of alternate data stream metrics for file systems |
US11169980B1 (en) * | 2020-05-20 | 2021-11-09 | Microsoft Technology Licensing, Llc | Adaptive database compaction |
US11775481B2 (en) | 2020-09-30 | 2023-10-03 | Qumulo, Inc. | User interfaces for managing distributed file systems |
US11157458B1 (en) | 2021-01-28 | 2021-10-26 | Qumulo, Inc. | Replicating files in distributed file systems using object-based data storage |
US11461241B2 (en) | 2021-03-03 | 2022-10-04 | Qumulo, Inc. | Storage tier management for file systems |
US11132126B1 (en) | 2021-03-16 | 2021-09-28 | Qumulo, Inc. | Backup services for distributed file systems in cloud computing environments |
US11567660B2 (en) | 2021-03-16 | 2023-01-31 | Qumulo, Inc. | Managing cloud storage for distributed file systems |
US11669255B2 (en) | 2021-06-30 | 2023-06-06 | Qumulo, Inc. | Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations |
US11294604B1 (en) | 2021-10-22 | 2022-04-05 | Qumulo, Inc. | Serverless disk drives based on cloud storage |
US11354273B1 (en) | 2021-11-18 | 2022-06-07 | Qumulo, Inc. | Managing usable storage space in distributed file systems |
US11599508B1 (en) | 2022-01-31 | 2023-03-07 | Qumulo, Inc. | Integrating distributed file systems with object stores |
US11722150B1 (en) | 2022-09-28 | 2023-08-08 | Qumulo, Inc. | Error resistant write-ahead log |
US11729269B1 (en) | 2022-10-26 | 2023-08-15 | Qumulo, Inc. | Bandwidth management in distributed file systems |
US11966592B1 (en) | 2022-11-29 | 2024-04-23 | Qumulo, Inc. | In-place erasure code transcoding for distributed file systems |
US11921677B1 (en) | 2023-11-07 | 2024-03-05 | Qumulo, Inc. | Sharing namespaces across file system clusters |
US11934660B1 (en) | 2023-11-07 | 2024-03-19 | Qumulo, Inc. | Tiered data storage with ephemeral and persistent tiers |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN102521386A (zh) * | 2011-12-22 | 2012-06-27 | 清华大学 | 基于集群存储的空间元数据分组方法 |
CN102968423A (zh) * | 2012-03-27 | 2013-03-13 | 广州市国迈科技有限公司 | 一种基于数据容器的高性能私有云存储节点文件***设计 |
US20140046903A1 (en) * | 2011-04-19 | 2014-02-13 | Huawei Device Co., Ltd. | Data backup and recovery method for mobile terminal and mobile terminal |
CN103699696A (zh) * | 2014-01-13 | 2014-04-02 | 中国人民大学 | 一种云计算环境下的数据在线聚集方法 |
US20140122429A1 (en) * | 2012-10-31 | 2014-05-01 | International Business Machines Corporation | Data processing method and apparatus for distributed systems |
CN104021161A (zh) * | 2014-05-27 | 2014-09-03 | 华为技术有限公司 | 一种聚簇存储方法及装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265244A (en) * | 1986-02-14 | 1993-11-23 | International Business Machines Corporation | Method and system for facilitating processing of statistical inquires on stored data accessible through a data access structure |
US7685254B2 (en) * | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US20070198479A1 (en) * | 2006-02-16 | 2007-08-23 | International Business Machines Corporation | Streaming XPath algorithm for XPath expressions with predicates |
KR101359034B1 (ko) * | 2007-02-12 | 2014-02-06 | 삼성전자주식회사 | 네트워크 시스템에서 통계데이터를 저장하기 위한 장치 및방법 |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
CN103377269B (zh) * | 2012-04-27 | 2016-12-28 | 国际商业机器公司 | 传感器数据定位方法和装置 |
US9262511B2 (en) * | 2012-07-30 | 2016-02-16 | Red Lambda, Inc. | System and method for indexing streams containing unstructured text data |
JP5853109B2 (ja) * | 2012-12-28 | 2016-02-09 | 株式会社日立製作所 | 計算機、計算機システムの制御装置及び記録媒体 |
WO2014184934A1 (ja) * | 2013-05-16 | 2014-11-20 | 株式会社日立製作所 | 障害分析方法、障害分析システム及び記憶媒体 |
US20150006571A1 (en) * | 2013-06-28 | 2015-01-01 | LGS Innovations LLC | Method And Apparatus For Enabling Queries In An Information-Centric Network |
JP6213038B2 (ja) * | 2013-08-16 | 2017-10-18 | 富士通株式会社 | 情報処理システム、情報処理システムの制御方法および制御装置の制御プログラム |
KR101559206B1 (ko) * | 2013-11-29 | 2015-10-13 | 건국대학교 산학협력단 | 로그 데이터 처리 방법 및 이를 수행하는 시스템 |
US9348526B2 (en) * | 2014-03-28 | 2016-05-24 | Scale Computing, Inc. | Placement engine for a block device |
US10528970B2 (en) * | 2014-12-01 | 2020-01-07 | Amobee, Inc. | Systems, methods, and devices for pipelined processing of online advertising performance data |
US9690501B1 (en) * | 2014-12-02 | 2017-06-27 | EMC IP Holding Company LLC | Method and system for determining data profiles using block-based methodology |
US9817726B2 (en) * | 2015-01-09 | 2017-11-14 | Ariba, Inc. | Delta replication of index fragments to enhance disaster recovery |
US11030171B2 (en) * | 2015-01-09 | 2021-06-08 | Ariba, Inc. | Elastic sharding of data in a multi-tenant cloud |
-
2015
- 2015-04-15 US US14/687,568 patent/US20160306810A1/en not_active Abandoned
-
2016
- 2016-03-08 CN CN201680009881.0A patent/CN107533551B/zh active Active
- 2016-03-08 EP EP16779484.1A patent/EP3254210B1/en active Active
- 2016-03-08 WO PCT/CN2016/075873 patent/WO2016165509A1/en active Application Filing
- 2016-03-08 EP EP20214887.0A patent/EP3812915B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
US20140046903A1 (en) * | 2011-04-19 | 2014-02-13 | Huawei Device Co., Ltd. | Data backup and recovery method for mobile terminal and mobile terminal |
CN102521386A (zh) * | 2011-12-22 | 2012-06-27 | 清华大学 | 基于集群存储的空间元数据分组方法 |
CN102968423A (zh) * | 2012-03-27 | 2013-03-13 | 广州市国迈科技有限公司 | 一种基于数据容器的高性能私有云存储节点文件***设计 |
US20140122429A1 (en) * | 2012-10-31 | 2014-05-01 | International Business Machines Corporation | Data processing method and apparatus for distributed systems |
CN103699696A (zh) * | 2014-01-13 | 2014-04-02 | 中国人民大学 | 一种云计算环境下的数据在线聚集方法 |
CN104021161A (zh) * | 2014-05-27 | 2014-09-03 | 华为技术有限公司 | 一种聚簇存储方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988696A (zh) * | 2019-12-18 | 2021-06-18 | 浙江宇视科技有限公司 | 文件整理方法、装置及相关设备 |
CN112988696B (zh) * | 2019-12-18 | 2022-08-23 | 浙江宇视科技有限公司 | 文件整理方法、装置及相关设备 |
CN113468107A (zh) * | 2021-09-02 | 2021-10-01 | 阿里云计算有限公司 | 数据处理方法、设备、存储介质及*** |
Also Published As
Publication number | Publication date |
---|---|
EP3254210A4 (en) | 2018-03-28 |
EP3812915B1 (en) | 2023-10-25 |
EP3254210B1 (en) | 2021-01-20 |
WO2016165509A1 (en) | 2016-10-20 |
EP3254210A1 (en) | 2017-12-13 |
CN107533551B (zh) | 2020-08-07 |
EP3812915A1 (en) | 2021-04-28 |
US20160306810A1 (en) | 2016-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533551A (zh) | 数据块级别的大数据统计 | |
US11256696B2 (en) | Data set compression within a database system | |
CN102906751B (zh) | 一种数据存储、数据查询的方法及装置 | |
AU2016359060B2 (en) | Storing and retrieving data of a data cube | |
CN108369587B (zh) | 创建用于交换的表 | |
US10740300B1 (en) | Synchronization of metadata in a distributed storage system | |
CN105408857B (zh) | 数据仓库***、生成关系数据库的多列索引的方法和*** | |
US20180196828A1 (en) | Split elimination in mapreduce systems | |
US9684702B2 (en) | Database redistribution utilizing virtual partitions | |
US8719254B2 (en) | Efficient querying using on-demand indexing of monitoring tables | |
US20150134599A1 (en) | Reporting and summarizing metrics in sparse relationships on an oltp database | |
CN107133342A (zh) | 一种IndexR实时数据分析库 | |
CN102629269B (zh) | 一种嵌入式数据库的检索及存储方法 | |
WO2020034757A1 (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN109189782A (zh) | 一种区块链商品交易查询中的索引方法 | |
CN110275920A (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
WO2021051625A1 (zh) | 数据表的构建方法、装置、设备及存储介质 | |
CN103412916A (zh) | 一种监控***的多维度数据存储、检索方法及装置 | |
CN110389967A (zh) | 数据存储方法、装置、服务器及存储介质 | |
US20240126762A1 (en) | Creating compressed data slabs that each include compressed data and compression information for storage in a database system | |
US20170024387A1 (en) | Approximate distinct counting in a bounded memory | |
US9129001B2 (en) | Character data compression for reducing storage requirements in a database system | |
US20160171053A1 (en) | Adaptive index leaf block compression | |
US20200320060A1 (en) | Partition move in case of table update | |
Zollmann | Nosql databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |