描述非关系数据的类型

非关系数据通常分为两类:半结构化和非结构化。

什么是半结构化数据?

半结构化数据是包含字段的数据。 每个实体中的字段不必相同。 只需基于每个实体依据来定义字段。 上一单元中介绍的客户实体就是半结构化数据的示例。 数据格式必须以这样一种方式来设置,即应用程序可以对其进行分析和处理。 执行此操作的常用方法是将每个实体的数据存储为 JSON 文档。 术语 JSON 代表 JavaScript 对象表示法;它是 JavaScript 应用程序用于在内存中存储数据的格式,但也可用于在文件中读取和写入文档。

JSON 文档括在大括号({ 和 })中。 每个字段都有名称(标签),后接冒号,然后是字段的值。 字段可包含简单值或子文档(每个都以大括号开头和结尾)。 字段还可以有多个值,以数组形式保存,并用方括号([ 和 ])括起来。 字段中的文本(或固定值)用引号引起来,字段之间以逗号隔开。

下面的示例显示上一单元的客户,格式为 JSON 文档:

{"ID": "1","Name": "Mark Hanson","Telephone": [ { "Home": "1-999-9999999" }, { "Business": "1-888-8888888" }, { "Cell": "1-777-7777777" }],"Address": [ { "Home": [{ "StreetAddress": "121 Main Street" }, { "City": "Some City" },{ "State": "NY" }, { "Zip": "10110" }] },{ "Business": [{ "StreetAddress": "87 Big Building" },{ "City": "Some City" },{ "State": "NY" },{ "Zip": "10111" }] }]
}{"ID": "2","Title": "Mr","Name": "Jeff Hay","Telephone": [ { "Home": "0044-1999-333333" }, { "Mobile": "0044-17545-444444" }],"Address": [{ "UK": [{ "StreetAddress": "86 High Street" },{ "Town": "Some Town" }, { "County": "A County" }, { "Postcode": "GL8888" }, { "Region": "UK" }] },{ "US": [{ "StreetAddress": "777 7th Street" }, { "City": "Another City" },{ "State": "CA" },{ "Zip": "90111" }] }]
}

可以自由定义任何喜欢的字段。 重要的一点是,数据遵循 JSON 语法。 当应用程序读取文档时,它可以使用 JSON 分析器将文档拆分为其组件字段并提取各个数据片段。

其他可能出现的格式包括 Avro、ORC 以及 Parquet:

  • Avro 是一种基于行的格式。 它由 Apache 创建。 每条记录都包含一个标头,用于描述记录中的数据结构。 此标头以 JSON 格式存储。 数据以二进制信息的形式存储。 应用程序使用标头中的信息来分析二进制数据,并提取其中包含的字段。 Avro 是一种非常好的格式,用于压缩数据和最小化存储和网络带宽需求。 此示例部分显示了上例的标头信息(采用 Avro 格式):
{"type": "record","name": "contact_schema","fields": [{"name": "id","type": "int","doc": "ID of the contact"},{"name": "name","type": "string","doc": "Name of the contact"},
{"name": "telephone","type": ["null",{"type": "array","items": {"type": "record","name": "contact_schema.telephone","fields": [{"name": "phoneid","type": "int"},{"name": "phonetype","type": [ "null", "string" ]}]}}]}]
}
  • ORC(优化的行列式格式)将数据组织成列而不是行。 它由 HortonWorks 开发,用于优化 Apache Hive 中的读取和写入操作。 Hive 是一个数据仓库系统,支持快速数据汇总和查询大型数据集。 Hive 支持对非结构化数据进行类似于 SQL 的查询。 ORC 文件包含数据的带区。 每个带区都包含一列或一组列的数据。 带区包含对该带区中行的索引、每行的数据,以及保存着每列统计信息(count、sum、max、min 等)的脚注。

  • Parquet 是另一种列式数据格式。 它由 Cloudera 和 Twitter 创建。 Parquet 文件包括行组。 每列的数据一起存储在同一行组中。 每个行组都包含一个或多个数据块。 Parquet 文件包括描述在每个块中找到的行集的元数据。 应用程序可以使用此元数据快速找到给定行集的正确块,并为这些行检索指定列中的数据。 Parquet 专门用于有效地存储和处理嵌套数据类型。 它支持高效的压缩和编码方案。

什么是非结构化数据?

非结构化数据是不包含字段的数据。 示例包括视频、音频和其他媒体流。 每项都是二进制数据的无定形 blob。 无法在此数据中搜索特定元素。

可以选择将此类数据存储在专门为此目的设计的存储中。 在 Azure 中,可以将视频和音频数据存储为 Azure 存储帐户中的块 blob。 (blob 这个词表示“二进制大型对象”*)。 块 blob 仅支持基本的读取和写入操作。

也可以将文件视为非结构化数据的一种形式,尽管在某些情况下,文件可能包含用于指示文件类型(照片、Word 文档、Excel 电子表格等)的元数据、所有者以及可以存储为字段的其他元素。 但是,文件的主要内容是非结构化的。

Azure 数据基础知识探究核心数据概念-半结构化数据和非结构化数据相关推荐

  1. 大数据基础知识(下)

    大数据基础知识:技巧与概念 大数据伦理 匿名方面的挑战 保密性方面的挑战 大数据的来源和结构 人类生成的数据 机器生成的数据 结构化数据 非结构化数据 存储大数据 分布式存储与云 云计算:IaaS.P ...

  2. 大数据基础知识(上)

    大数据基础知识:技巧与概念 什么是大数据 数量多 流转快 种类多 大数据需要具备全部三个特征吗? 如何使用大数据 了解消费者大数据 了解企业大数据 了解科学研究大数据 大数据与数据科学 大数据与小数据 ...

  3. hawk大数据基础知识总结(1)

    一.大数据概述 1.1大数据的概念 大数据一共具有三个特征:(1)全样而非抽样:(2)效率而非精确:(3)相关而非因果. (1)在过去由于缺乏获取全体样本的手段,人们发明了"随机调研数据&q ...

  4. 大数据基础知识全集,大数据爱好者收藏必备

             目前,市场上的大数据产品太多,但远远低于IAAS的标准化水平,各产品之间的差异还不十分清楚.当许多公司正在制造大数据平台或大数据解决方案时,他们往往不知道选择哪些产品来满足他们的需求 ...

  5. 【大数据】大数据基础知识科普--数据分层

    大数据基础知识科普–数据分层 (ETL.ODS.DW.DWD.DWM.DWS.DIM) 零.数据加载层:ETL(Extract-Transform-Load) 一.数据操作层:ODS(Operatio ...

  6. 大数据_02【大数据基础知识】

    大数据_02[大数据基础知识] 01 什么是服务器 02 服务器类型 03 存储磁盘(硬盘) 04 什么是RAID RAID特点 RAID种类 05 什么是集群 06 什么是计算机网络 07 什么是交 ...

  7. 大数据_03【大数据基础知识】

    大数据_03 [大数据基础知识] 01 大数据概述 02 什么是大数据?(Big Data) 03 传统数据与大数据的对比 04 大数据的特点 4.1 传统数据与大数据处理服务器系统安装对比 4.2 ...

  8. Big Data大数据基础知识

    文章目录 大数据基础知识 什么是服务器? 服务器类型 什么是RAID 什么是集群? 为什么和谐号.复兴号会这么快? 大数据基础知识 内容概要 什么是服务器? 什么是RAID? 什么是集群? 什么是网络 ...

  9. 大数据基础知识科普(2)

    上一篇<大数据基础知识科普(1)>为大家讲解了关于服务器,存储磁盘以及RAID的内容.这一篇将沿着之前的脚步,为大家带来更多学习大数据必须要掌握的知识! 目录 什么是集群? 什么是计算机网 ...

最新文章

  1. 如何用excel筛选相似内容_Excel筛选你用好了么?别再下拉点点点了
  2. zblog拓源纯净主题
  3. python双划线_Python中单下划线(_)和双下划线(__)的特殊用法
  4. c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...
  5. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM中的查询
  6. 【Kafka】Kafka如何开启SSL 控制台消费与生产 代码消费与生产
  7. C# 线程手册 第二章 .NET 中的线程 线程的优势
  8. jstorm mysql_Jstorm+Spring+mybatis整合
  9. 程序员的小技能,1行代码修改开机密码、1张图片让你电脑死机
  10. Unity WebPlayer自定义进度条界面
  11. 论文必备:如何用卡片法写论文?
  12. java生成word目录_Apache POI自动生成Word文档(带目录)
  13. Hbuilder连接苹果手机
  14. NFT交易平台2.0来了,源代码,智能合约整套
  15. 点集的读入与输出操作
  16. 重读 阿里中供系前世今生:马云最神秘的子弟兵二
  17. 改变的不仅仅是货币——区块链技术的深层意义
  18. 基于SRS搭建RTMP直播流媒体服务器
  19. RiskCloud双控平台(有效分享HAZOP软件篇)
  20. 用随机场理论和卷积神经网络(CNN)分析边坡可靠度

热门文章

  1. 余弦相似度使用NEON指令加速
  2. 浅谈capsule胶囊网络
  3. STM32H750获取OV5640摄像头图像及上位机解码(一维码二维码)
  4. Linux系统开启IPv6任播(anycast)地址
  5. Oracle面试题(概念、定义)
  6. 实现阿里云域名的DDNS
  7. DZ INDEX.PHP 被篡改,教你用2种方法来实现DZ用户名快速更改
  8. 如何制作并使用ico图标呢?
  9. 下沉市场淘金进行时,解锁品牌拥抱下沉市场的正确姿势
  10. 如何在Java中获得Alexa排名