元数据

了解Java中的注解

空扰寡人 提交于 2020-02-12 11:50:21
自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。这篇文章中,我将向大家讲述到底什么是注解?为什么要引入注解?注解是如何工作的?如何编写自定义的注解(通过例子)?什么情况下可以使用注解以及最新注解和ADF(应用开发框架)。这会花点儿时间,所以为自己准备一杯咖啡,让我们来进入注解的世界吧。 1 什么是注解? 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。比如,下面这段代码: @Override public String toString ( ) { return "This is String Representation of current object." ; } 上面的代码中,我重写了toString()方法并使用了@Override注解。 但是,即使我不使用@Override注解标记代码,程序也能够正常执行。那么,该注解表示什么?这么写有什么好处吗? 事实上,@Override告诉编译器这个方法是一个重写方法(描述方法的元数据),如果父类中不存在该方法,编译器便会报错,提示该方法没有重写父类中的方法。如果我不小心拼写错误,例如将toString()写成了toStrring(){double r}

如何实现支持百亿级文件的分布式文件存储

最后都变了- 提交于 2020-02-11 22:08:17
前言 文件系统是最常用的数据存储形式,所以,常用Linux操作系统的用户必然知道ext4、xfs等单机文件系统,用Windows操作系统的用户也都知道NTFS单机文件系统。各种业务场景下,不同的数据都存储于文件系统之上,大量业务逻辑就是基于文件系统而设计和开发的。提供最常用的存储访问方式,这是我们做文件系统的出发点之一。 另一方面,单机文件系统有其明显限制,主要是容量、文件数量限制,以及可靠、可用性限制。单机文件系统毕竟存储空间有限,且掉电或坏盘等故障会带来数据不可达或丢失。通过分布式文件系统解决这些问题,这是我们的出发点之二。 但做分布式文件系统会面临很多挑战,也会面临非常多的选择。 Google GFS论文面世之后,Hadoop HDFS随之诞生,HDFS的选择是处理大文件,面向MapReduce这种非在线数据分析业务,重吞吐而非延时,对HDFS内部存储的数据进行访问,需要借助其提供的专有命令行和SDK,意味着它并不是一个通用型的文件系统。它的主要架构是元数据服务(本文统一用MetaData Service的缩写MDS来指代元数据服务)和数据服务(本文统一用Data Storage Service的缩写DSS来指代数据服务),其中MDS是单点的,单点的MDS能做出一致的决策,为了保证MDS可靠性,一般会选择再做一个备份。HDFS的DSS则可以是很多个。因为文件大小和形式固定

Oracle Spatial-元数据及SDO_GEOMETRY

余生长醉 提交于 2020-02-11 02:01:48
一、空间表的元数据 将表的SDO_GEOMETRY列的所有对象作为一个空间层。Spatial需要对所有空间对象进行验证、创建索引和查询。此时需要为图层指定适当的元数据,该数据包含如下信息:维度、维度边界、容差、坐标系。每个图层的上述信息填充到USER_SDO_GEOM_METADATA字典试图中。 SQL>DESCRIBE USER_SDO_GEOM_METADATA USER_SDO_GEOM_METADATA视图 列名 类型 列名描述 TABLE_NAME VARCHAR2() COLUMN_NAME VARCHAR2() SRID NUMBER DIMINFO MDSYS.SDO_DIM_ARRAY 伟度信息 SRID属性:SRID是空间参考系ID。如果SDO_SRID为null,则没有指定坐标系统,如果SDO_SRID不为null,那么它的值必须在在MDSYS.CS_SRS表中的 SRID 列有对应的值。 MDSYS.CS_SRS表 列名 类型 列名描述 CS_NAME VARCHAR2(68) 坐标系统名称 SRID NUMBER(38) 空间参考ID,为唯一值。1-999999为spatial使用的空间参考,1000000以后为用户自定义 AUTH_SRID NUMBER(38) 可选的SRID,是个外键。另一个坐标系统的SRID DIMEINFO属性: SQL

.Net 应用框架设计系列(三)

时光毁灭记忆、已成空白 提交于 2020-02-10 05:00:41
几乎每个应用程序都需要某种格式的配置信息。这些信息可以像数据库连接字符串一样简单,也可以像多部分、分层的用户首选信息一样复杂。作为一名开发人员,如何存储应用程序的配置数据以及将它们存储在何处是您经常面临的问题。典型的解决方案包含以下内容: • 使用配置文件(例如 XML 文件或 Windows .ini 文件) • 使用 Windows 注册表 • 使用诸如 Microsoft SQL Server 这样的数据库 其中每个选择都有其各自的优点和缺点;没有一种解决方案可以适合所有情况。在一个应用程序中,您可能需要采用多种方法来协调应用程序所需的不同类型的配置数据。例如,如果您的应用程序运行在不同的环境中,您可能需要支持多种配置存储解决方案。要考虑的其他重要因素包括:确保应用程序配置数据的安全性和完整性,以及将存储解决方案对应用程序性能的影响降到最低程度。 Enterprise Library Configuration Application Block 1.0 版解决了这些问题,并提供了一种可以在所有应用程序中管理配置数据的解决方案。具体地说,配置应用程序块提供了一种灵活的数据模型、一种检索配置数据的简单方法和可扩展性。 配置应用程序块将读/写配置数据的能力与基础数据存储的细节相分离。通过利用存储提供程序和转换器在应用程序和物理存储之间传输数据,可以实现这一点。存储提供程序是可以读

Java永久代去哪儿了

余生长醉 提交于 2020-02-09 10:00:21
http://www.infoq.com/cn/articles/ Java -PERMGEN-Removed 在Java虚拟机(以下简称JVM)中,类包含其对应的元数据,比如类的层级信息,方法数据和方法信息(如字节码,栈和变量大小),运行时常量池,已确定的符号引用和虚方法表。 在过去(当自定义类加载器使用不普遍的时候),类几乎是“静态的”并且很少被卸载和回收,因此类也可以被看成“永久的”。另外由于类作为JVM实现的一部分,它们不由程序来创建,因为它们也被认为是“非堆”的内存。 在JDK8之前的HotSpot虚拟机中,类的这些“永久的”数据存放在一个叫做永久代的区域。永久代一段连续的内存空间,我们在JVM启动之前可以通过设置-XX:MaxPermSize的值来控制永久代的大小,32位机器默认的永久代的大小为64M,64位的机器则为85M。永久代的垃圾回收和老年代的垃圾回收是绑定的,一旦其中一个区域被占满,这两个区都要进行垃圾回收。但是有一个明显的问题,由于我们可以通过‑XX:MaxPermSize 设置永久代的大小,一旦类的元数据超过了设定的大小,程序就会耗尽内存,并出现内存溢出错误(OOM)。 备注:在JDK7之前的HotSpot虚拟机中,纳入字符串常量池的字符串被存储在永久代中,因此导致了一系列的性能问题和内存溢出错误。想要了解这些永久代移除这些字符串的信息,请访问 这里 查看

创建WebApi Odata v3 终结点

自闭症网瘾萝莉.ら 提交于 2020-02-09 04:36:58
开放数据协议(OData) 是用于 web 的数据访问协议。 OData 提供统一的方法来构造数据、 查询的数据和操作该数据集通过 CRUD 操作 (创建、 读取、 更新和删除)。 OData 支持 AtomPub (XML) 和 JSON 格式。 OData 还定义了一种方法来公开数据的元数据。 客户端可以使用元数据发现的类型信息和数据集的关系。 ODataConventionModelBuilder 创建 EDM 使用一组默认命名约定 EDM。 此方法要求最少的代码。 如果你想更好地控制 EDM,则可以使用 ODataModelBuilder 类,以通过添加属性、 键和导航属性显式创建 EDM。 请求 GET http://localhost:61068/odata HTTP/1.1 User-Agent: Fiddler Host: localhost:61068 Accept: application/json 返回 { "odata.metadata":"http://localhost:61068/odata/$metadata","value":[ { "name":"Products","url":"Products" } ] } 探索 OData 终结点 服务元数据文档 服务元数据文档介绍了使用一种称为概念架构定义语言 (CSDL) 的 XML 语言的服务数据模型

openstack之glance

对着背影说爱祢 提交于 2020-02-09 03:11:08
Glance 文章目录 Glance 一、Glance的概述 二、Glance的组件 三、Glance的工作流程 四、Glance安装配置(此处将glance服务配置在控制节点上) 五、Glance配置总结 一、Glance的概述 Glance是为虚拟机的创建提供镜像的服务,我们基于Openstack是构建基本的IaaS平台对外提供虚拟机,而虚拟机在创建时必须为选择需要安装的操作系统,Glance服务就是为该选择提供不同的操作系统镜像。 二、Glance的组件 Glance-AP 主要用来响应各种REST请求然后通过其它模块(主要是glance-registry组件和后端存储接口)完成镜像的上传、删除、查询等操作。可以简单的再分为两部分:一层中间件,它主要是做一些对请求的解析工作(如分析出版本号), 另外一部分提供实际的服务(如与镜像上传下载的后端存储接口交互)。默认绑定端口是9292 Glance-Registry 镜像注册服务用于提供镜像元数据的REST接口。主要工作是存储或者获取镜像的元数据,与MySQL数据库进行交互。也可以简单的再细分为两部分,API和具体的Server。元数据是指镜像相关的一些信息(如id,size, status,location,checksum,min_disk,min_ram,owner等)真正的镜像数据保存在实际所使用的后端存储里(如Swift

Hdfs

给你一囗甜甜゛ 提交于 2020-02-08 18:49:13
1介绍 设计思想是分而治之,将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。 在大数据系统中的应用是为各类分布式运算框架提供数据存储服务。 2.特性 hdfs中的文件在物理上是分块存储(block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本是64M. hdfs文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/file.data 目录结构及文件分块位置信息(元数据)的管理由namenode节点承担,namenode是hdfs集群主节点,负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id及所在的datanode服务器) 文件的各个block的存储管理由datanode节点承担,datanode是hdfs集群从节点,每一个block都可以在多个datanode上存储多个副本,副本数量也可以通过参数设置dfs.replication,默认是3. hdfs是设计成适应一次写入,多次读出的场景,且不支持文件的修改,适合用来做数据分析,并不适合用来做网盘应用,因为不便修改,延迟大,网络开销大,成本太高。 3.shell命令行客户端操作

Hadoop——HDFS读写流程

青春壹個敷衍的年華 提交于 2020-02-08 08:12:59
HDFS写流程(也就是client上传文件到HDFS的流程): Client和NN连接创建文件元数据 NN判定元数据是否有效,比如判定client有没有权限创建文件,当前HDFS里有没有相同的同级同名文件 NN触发副本放置策略,返回一个有序的DN列表 Client和DN建立Pipeline连接(为降低带宽消耗和上传延时,client会根据距离,挑选一个与自己最近的DN建立连接) Client将block以更小的packet(64KB)的形式发送,并使用更小的数据chunk(512B)+ chucksum(校验和,4B)(每一个chuck对应一个chucksum)填充这个packet,每填充满一个packet,就发送这个packet Client将packet放入发送队列dataqueue中,并向第一个DN发送 第一个DN收到packet后本地保存并发送给第二个DN 第二个DN收到packet后本地保存并发送给第三个DN,这一个过程中,上游节点同时发送下一个packet,也就是第一个DN给第二个DN发送packet时,client可以同时并行地给第一个DN发第二个packet。这种形式就是流水线的形式,并且各个DN的传输过程是并行的。 Hdfs使用这种传输方式,副本数对于client是透明的,也就是client并不需要管要发多少副本,只需要给跟它连接的那个DN发送就行

文件与文件系统

孤者浪人 提交于 2020-02-08 05:15:46
文件与文件系统 一、文件 1.1 文本文件txt 1.2 音频文件wav 1.3 图像文件bmp 二、文件系统 2.1 目录文件 2.2 平面文件系统 2.3 分层文件系统 三、参考资料 一、文件 同一类型数据的集合组成一个文件,比如文本文件、音频文件、图片文件,对于文件需要一定的排列格式,方便不同的用户按照统一的格式可以正确读写文件,这种格式叫“文件格式”。当然文件格式可以用户自定义,但是为了方便文件的可读取性,最好用现成标准,比如txt、MP3、JPEG等。 1.1 文本文件txt 文本文件的字符内容,实际存储在计算机中以0和1进行存储的,那么字符时如何转化成0和1的呢? 首先,目前针对不同的字符有不同的编码标准,例如ASCII、GB2312标准、Unicode 字符集和编码, 计算机中存储的字符实际上就是字符在编码标准中的字符编码 。 计算机如何在屏幕上进行显示? 字模 :每个字符的图形文件,实质上就是一个个像素点数据。 字库 :多个字模数据组成的文件称为字库。 计算机显示字符时,根据字符编码与字模数据的映射关系找到对应的字模数据,液晶屏根据字模数据显示该字符 。 1.2 音频文件wav 对于音频文件,后缀.wav,主要有两部分组成: 元数据和音频数据 。 元数据存在文件的开头,在实际数据前面,因此也叫文件头(Header)。元数据中包含码率(bit rate)