《Python和HDF 5大数据应用》——第2章 开始使用 2.1 HDF基本原理

第2章 开始使用

2.1 HDF基本原理

在迫不及待跳进Python代码样例之前,我们有必要花几分钟时间着重关注一下HDF5自身是如何组织的。图2-1展示了HDF5的各种逻辑层。蓝色表示该层处于HDF5标准库内部;绿色则代表使用HDF5的客户软件。

大多数客户代码,包括Python模块h5py和PyTables都使用C API(HDF5自己就是用C写成的)。在简介里我们已经知道HDF5的数据模型包含三大公开抽象:数据集(第3章)、组(第5章)和特征(第6章)。C API(以及其上的Python代码)操作这些对象。

HDF5使用各种内部数据结构来表示组、数据集和特征。比如,组使用一种被称为“B树”的数据结构来索引其成员,这使得我们能非常迅速地在一个组内获取成员以及创建新成员,哪怕这个组内存储了上百万个对象(61页,组如何存储)。在考虑性能问题的时候,你通常只需要关心这些数据结构。比如,在使用分块存储(第4章)时,理解数据在磁盘上实际被如何组织非常重要。

下面两层则跟你的数据如何进入磁盘有关。HDF5对象都生存在一个1维逻辑地址空间,就好像一个普通文件。然而这个地址空间和磁盘上的字节之间还有一个额外的HDF5驱动层,负责磁盘的写入机制,同时亦能在处理过程中做一些令人惊叹的事情。

比如说,HDF5的core驱动能够让你的文件完全保存在内存中,读写速度超快。family驱动让你能够将一个文件分成固定大小的多个文件块。mpio驱动则利用消息传递接口(MPI)库使得多个并发的进程访问同一个文件。所有这些驱动对于在上层操作组、数据集和特征的代码来说都是透明的。

时间: 2024-12-21 22:57:39

《Python和HDF 5大数据应用》——第2章 开始使用 2.1 HDF基本原理的相关文章

《Python和HDF 5大数据应用》——第1章 简介 1.1 Python和HDF5

第1章 简介 我刚毕业那会遇到过一个严重的问题--一部国家公认的等离子体研究设备花了整整一周时间收集的上千万个数据的值不太对劲. 比正常情况小了约40个数量级. 我跟我的咨询师挤在他的办公室,在一台崭新的G5 Mac Pro上运行我们的可视化软件,试图搞明白哪里出了问题.从机器中获得的数据是正确的,实验所使用的数字转换器提交的原始数据看上去没有问题.我在Thinkpad笔记本上用IDL语言编写了一个巨大的脚本将原始数据转换成可视化软件能够识别的文件.这些文件的格式十分简单:一个简短的定长头部后面

谷歌开源 Python Fire;一张图读懂 Python、R 的大数据应用等 | AI 开发者头条

▲ 内容预览: 谷歌开源 Python Fire NASA 发布 2017-2018 软件目录,供开发者免费使用 一张图看懂大数据中 R 语言的应用 一张图看懂大数据中 Python 的应用 每日推荐阅读 谷歌搜索技术分析,如何一步步实现"不止于关键词"? █ 谷歌开源 Python Fire 昨晚谷歌公布了新的 Python 工具包--Python Fire.它的功能很简单:能从任何 Python 代码生成命令行接口(CLI).开发者面对任意一个 Python 程序,仅需调用 Pyt

《Python和HDF 5大数据应用》——1.2 HDF5到底是什么

1.2 HDF5到底是什么 HDF5是一种存储相同类型数值的大数组的机制,适用于可被层次性组织且数据集需要被元数据标记的数据模型. 它跟SQL风格的关系型数据库区别相当大,HDF5在组织结构方面有一些特殊的技巧(第8章中有一个例子).如果你需要在多个表上保持关系,或者想要在数据上进行JOIN,那么一个关系型数据库可能更适合你.又或者你需要在一台没有安装HDF5的机器上读取一个小型的1维数据集,那么CSV这样的文本格式是更合理的选择. 但如果你需要处理多维数组,对性能有非常高的要求,需要在数据集上

《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件

2.4 你的第一个HDF5文件 在我们研究组和数据集之前,让我们先看一下File对象能做些什么,来作为你进入HDF5世界的起点. 这里有一个最简单的使用HDF5的程序: File对象是你的起点.它提供方法使你能够在文件内创建新的数据集或组,另外还有一些一目了然的属性如.filename和.mode等. 说到.mode,HDF5文件支持Python对普通文件的读写模式: 还有一个额外的HDF5专有模式用于保护你不会意外覆盖某个已存在的文件: 如果一个同名文件已经存在则该函数会失败,否则会创建一个新

《Python和HDF 5大数据应用》——2.2 设置

2.2 设置 背景就介绍到这里.现在让我们开始使用Python!不过,用哪个Python? 2.2.1 Python2还是Python3 Python社区正在经历一场大变.多年以来Python已经积攒了一大堆功能和错误,比如不遵守命名规范的模块或者字符串处理上的缺陷等.为了解决这些问题,人们决定启动Python 3,从Python 2过去的错误中释放出一个全新的Python主版本. Python 2.7将是最后一个2.X的发行版.虽然为了修理bug,对它的更新还会继续持续一段时间,但是新的Pyt

详解Python实现服务器之间大数据P2P文件传输效率实例

应用场景介绍 服务器越来越多,需要大规模的部署同一个文件,例如因为方便使用systemtap这个工具定位问题,需要把手上几百台服务器同时安装kernel-debuginfo这个包,原有的方式采用一个源服务器,采用rsync或者scp之类的文件传输方式只能做到一个点往下分发这个文件,这个时候下发的速度就会比较的慢,基于以上原因,我写了一个基于bt协议传输文件的小工具,实际测试,传输到10个机房,70多台机器传输一个240M的这个内核文件,到所有的机器,源采用限速2m/s的上传速度,测试的结果大概只

《Spark大数据分析:核心概念、技术及实践》大数据技术一览

本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第1节,作者穆罕默德·古勒(Mohammed Guller)更多章节内容可以访问"华章计算机"公众号查看. 大数据技术一览 我们正处在大数据时代.数据不仅是任何组织的命脉,而且在指数级增长.今天所产生的数据比过去几年所产生的数据大好几个数量级.挑战在于如何从数据中获取商业价值.这就是大数据相关技术想要解决的问题.因此,大数据已成为过去几年最热门的技术趋势之一.一些非常活跃的开源项目都与大数据

《大数据导论》一导读

作 者 简 介 Thomas Erl Thomas Erl是IT畅销书作者,Arcitura教育公司的创始人,Prentice Hall出版社"Thomas Erl的服务技术丛书"的编辑.他的书发行量超过200 000册,成为国际畅销书,并且已经获得多个重要IT组织成员的正式认可,例如,IBM.Microsoft.Oracle.Intel.Accenture.IEEE.HL7.MITRE.SAP.CISCO.HP等.作为Arcitura公司的CEO,Thomas领导研发了国际公认的大数

[连载]《大数据之路:阿里巴巴大数据实践》之日志采集

作者简介 阿里巴巴数据技术及产品部.定位于阿里集团数据中台,为阿里生态内外的业务.用户.中小企业提供全链路.全渠道的数据服务.作为阿里大数据战略的核心践行者,致力于"让大数据赋能商业,创造价值".现在,阿里巴巴数据技术及产品部正通过技术和产品上的创新,探索全域数据的价值,将阿里在大数据上沉淀的能力对外分享,为各行各业的发展带来更多可能性. 本章内容摘要 数据采集作为阿里大数据系统体系的第一环尤为重要.因此阿里巴巴建立了一套标准的数据采集体系方案,致力全面.高性能.规范地完成海量数据的采