《大数据原理:复杂信息的准备、共享和分析》一一2.3 注册唯一对象标识符

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 本节书摘来自华章出版社《大数据原理:复杂信息的准备、共享和分析》一 书中的第2章,第2.3节,作者:[美] 朱尔斯 J. 伯曼(Jules J. Berman)著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 注册唯一对象标识符
唯一性是每个人都能完全理解的概念,似乎没有解释的必要。实际上,计算科学所指的唯一性与自然世界的唯一性有些不同。在计算科学中,唯一性是指一个数据对象与一个唯一的标识符一一对应(即一个数据对象的标识符不会被分配给任何其他数据对象)。我们大部分人会把数据对象看作是一种数据记录,它可以由一个包含一串特征值的人名(包括身高、体重、年龄等)或包含一些实验数据的血液样本(包括白细胞数、红细胞数、红细胞压积等)组成。对于计算机科学家来说,一个数据对象意味着数据价值得以保值,数据描述清晰、完整,数据属性不变。当数据对象与其标识符永久绑定时,数据对象的唯一性就可以实现。
唯一性对象有三个属性:
1.唯一性对象可以从其他唯一性数据对象中区分开来。
2.唯一性对象无法从其自身中区分开来。
3.唯一性适用于唯一性对象集合(例如,属于同一类的实例是唯一的)。
注册表是一种可信任的服务,它为对象提供唯一的标识符。注册即每个数据对象用户都使用由中央注册中心提供的标识符,唯一的对象注册表很有用处,尤其是在数据对象标识符永久不变的情况下。拥有一个中央权威的网址列表、图书采购记录和期刊摘要文本信息是非常有意义的。下面列出一些发布标识符的组织:

在有些情况下,注册表无法为数据对象提供完整的标识符,而是向资源内的全部数据对象提供一个通用的标识符序列,而资源内的各数据对象会额外添加本地给出的后缀序列。作为典型案例,生命科学标识符(LSID)尤其能说明这种情况。每个LSID由五部分组成:网络标识符、机构标识符(顶级的DNS域名)、对象标识符、命名空间标识符和可选的修订ID。
在已发布的LSID标识符中,各个组成部分由冒号分隔开,如urn:lsid: pdb.org: 1AFT:1,这个标识1AFT蛋白在蛋白质数据库的第一个版本。其他LSID如:

标识一个PubMed的引用。

标识基因库中一个条目的第二个版本。
对象标识符(OID)是标识符前缀的层次结构。前缀中连续数确定层次结构的递减顺序。以HL7的OID为例,它是处理健康数据交换协议的一个组织,记为:1.3.6.1.4.250。
这些连串数据的每个节点由一个点分隔开。注册序列信息够细致的话,可直接得到机构代码。在本例中,HL7 OID正好是密歇根大学。
为数据对象创建OID的最后一步是在注册前缀的末端配置唯一的标识号。这一步由数据管理者完成。这种方法的问题是,数据管理者配置的标识号有时过于轻率,会破坏OID系统25。
举个例子,医院使用OID系统来识别图像―它是医学数字成像和通信标准(Digital Imaging and Communications in Medicine,DICOM)的一部分。前缀由永久性的机构和部门的注册码组成,后缀由创建图像时产生的数字码组成。例如,由计算机断层摄影(CT)扫描仪产生的第一幅图像可以用OID标识符和连字号以及数字1标识。
最坏的情况是,不同的仪器可能会分别给图像分配一串数字,而仪器间相互独立。这意味着在房间A中创建的CT图像标识符与房间B中创建的CT图像标识符可能相同,而房间A与房间B的图像来自不同的病人。这个问题可以通过限制每个CT扫描仪使用任何其他CT扫描仪数字分配补救。但这种方法也可能因为任何一个影响数字分配的系统出现故障而产生问题(例如,计数器被复位、损坏、更换或者简单地被忽略)。
当图像计数能正确完成时,扫描仪也被限制分配唯一编号,那么每个图像就会被分配到唯一的标识符(OID前缀+图像编号后缀)。尽管如此,随着时间的推移,使用连续编码的图像可能会造成标识符混乱。当图像服务更多部门,或者部门合并,又或者机构合并时,OID前缀会发生变化;这时,在使用连续编号系统时,你可能希望在OID前缀因合并发生变化后,可以创建标识符副本。这样,合并的两个机构的原始记录就可以被分配到相同的前缀,而后缀保持不变(如图像1、图像2等)。
另一个可能出现的问题是一个对象有多个不同的唯一标识符。一个软件程序在设计时可能会忽略对象先前已被指定的唯一标识符,而使用自身的分配方法生成新的标识符。此种做法向软件厂商提供了一种策略,即与其竞争软件给出的较差的标识符分隔开来,并潜在地提高客户对其软件产品的粘连度。
OID系统为机构提供了一套优秀的标识符,但机构内的数据对象需要有自己的标识系统。例如,OID有一个对HL7的陈述:“虽然HL7应当在给第三方HL7分支分配OID前进行仔细调查,但鉴于全球OID注册机制的缺乏,不能绝对肯定先前没有为第三方实体的HL7赋OID值26。”
有时,想从中央注册中心获得唯一标识符是不可行的。这主要发生在那些暂时的事务标识上,如临床实验室的血液样本的追踪代码。
网络工作小组发布了一个通用唯一标识符(UUID,也称为GUID;见术语表,UUID),不需要中央注册中心。一个UUID字长为128位,存储字节来自计算机时间戳的60位字符串27。如果使用得当,UUID将提供空间和时间上的唯一性。UUID最初用于阿波罗网络计算系统,此后被用于开源软件基金会的分布式计算环境。包括Perl、Python、Ruby等在内的众多计算语言已经内置生成UUID的程序19。
如果一个标识系统采用长随机数序列,再加上时间戳,将具有很大优势。假设你的系统由20个字符长的随机数序列和时间戳组成,则时间戳使用所谓的UNIX时间,这是自1970年1月1日零点开始已过的秒数。例如,1342883791发生在2012年7月21日那天。
使用一个随机字符生成器和一个时间测量仪可以生成唯一标识符,大多数程序语言已嵌入这两种程序。例如,标识符mje03jdf8ctsSdkTEWfk-1342883791。
随机序列里的字符可以是大小写、罗马数字或任何标准键盘字符,这些总计约有128个字符,也即所谓的ASCII字符(见术语表,ASCII)。两个20个字符长的随机序列完全一样的概率是128的-20次方。如果给这个随机序列附加一个时间戳,那么两个序列完全等价时相当于这两个序列有相同的随机数前缀,并且标识符是在同一时间创建的(见术语表,Time stamp)。
使用长的、包含时间戳的随机序列的标识符分配系统,完全不用担心两个不同的数据对象会被分配到相同的标识符。
假设一个场景,你正利用的大数据资源每秒产生万亿个标识符,在这些万亿的数据对象中,也许就有一天出现了重复的标识符。当然,也可能不会出现,但这是数据管理者必须考虑的一个问题,这里有一个解决方案。让我们设想大数据资源拥有分配每秒万亿标识符的能力,数据管理者保留每秒产生的新标识符列表。由于创建了新标识符,需要检查这个列表以保证新的标识符不与列表中的其他标识符重复。在存在副本的情况下(虽然几乎不可能发生),系统会停止产生标识符零点几秒,在这个时间间隔内,系统建立新的时间序列,标识符的冲突问题完成了自我消化。
假设正在合并两个大数据资源,如果在两个资源中存在标识符副本,你会怎么做?当然,标识符冲突的几率小到完全有理由忽略其发生的可能性。忠于观测事实的数据管理者会选择在合并之前比较标识符,一旦发现标识符副本的存在,有必要采取注释手段说明情况。
从技术角度来说,创建一个唯一性的标识系统是完全可行的。读者应该铭记,唯一性是一个设计良好的标识系统的基本要求。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
9天前
|
分布式计算 IDE 大数据
MaxCompute产品使用合集之有多人调用大数据计算MaxCompute,我需要给他们每个人都生成ak信息吗
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
存储 机器学习/深度学习 数据采集
大数据处理与分析实战:技术深度剖析与案例分享
【5月更文挑战第2天】本文探讨了大数据处理与分析的关键环节,包括数据采集、预处理、存储、分析和可视化,并介绍了Hadoop、Spark和机器学习等核心技术。通过电商推荐系统和智慧城市交通管理的实战案例,展示了大数据在提高用户体验和解决实际问题上的效能。随着技术进步,大数据处理与分析将在更多领域发挥作用,推动社会进步。
|
8天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之DataWorks中,填写ODPS SQL任务中的参数和分区信息如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
23 0
|
8天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在DataWorks中,查看ODPS表的OSS对象如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
23 1
|
9天前
|
分布式计算 DataWorks 安全
DataWorks产品使用合集之DataWorks创建 MaxCompute 资源背景信息如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
24 5
|
9天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之dataworks 同步es数据到maxcompute 遇到报错:获取表列信息失败如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
21 0
|
9天前
|
存储 运维 监控
|
9天前
|
分布式计算 大数据 调度
MaxCompute产品使用合集之大数据计算MaxCompute底层加速查询的原理是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
9天前
|
存储 分布式计算 DataWorks
MaxCompute产品使用合集之大数据计算MaxCompute dataworks可以批量修改数据集成任务的数据源配置信息吗
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
9天前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用合集之大数据计算MaxCompute如何限制用户只能访问特定的元数据信息,而不是整个工作空间
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章