一、结构化数据
结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。举一个例子:
id name age gender
1 Liu Yi 20 male
2 Chen Er 35 female
3 Zhang San 28 male
所以,结构化的数据的存储和排列是很有规律的,这对查询和修改等操作很有帮助。
但是,它的扩展性不好。比如,如果字段不固定,利用关系型数据库也是比较困难的,有人会说,需要的时候加个字段就可以了,这样的方法也不是不可以,但在实际运用中每次都进行反复的表结构变更是非常痛苦的,这也容易导致后台接口从数据库取数据出错。你也可以预先设定大量的预备字段,但这样的话,时间一长很容易弄不清除字段和数据的对应状态,即哪个字段保存有哪些数据。
典型的结构化数据包括:信用卡号码、日期、财务金额、电话号码、地址、产品名称等。
结构化数据,简单来说就是数据库。结合到典型场景中更容易理解,比如企业ERP、财务系统;医疗HIS数据库;教育一卡通;政府行政审批;其他核心数据库等。这些应用需要哪些存储方案呢?基本包括高速存储应用需求、数据备份需求、数据共享需求以及数据容灾需求。
二、半结构化数据
半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。
半结构化数据,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。
常见的半结构数据有XML和JSON,对于对于两个XML文件,第一个可能有
<person>
<name>A</name>
<age>13</age>
<gender>female</gender>
</person>
第二个可能为:
<person>
<name>B</name>
<gender>male</gender>
</person>
从上面的例子中,属性的顺序是不重要的,不同的半结构化数据的属性的个数是不一定一样的。有些人说半结构化数据是以树或者图的数据结构存储的数据,怎么理解呢?上面的例子中,标签是树的根节点,和标签是子节点。通过这样的数据格式,可以自由地表达很多有用的信息,包括自我描述信息(元数据)。所以,半结构化数据的扩展性是很好的。
标记语言XML这是一种半结构化的文档语言。XML是一组定义人机可读格式的文档编码规则(虽然说XML是人类可读的,但并没有带来太大的好处,因为人员阅读XML文档都会让他们更加耗费时间。)其价值在于它的标签驱动结构非常灵活,编码人员可以使其适应在Web上普及数据结构、存储和传输。
开放标准JSON(JavaScript Object
Notation)是另一种半结构化数据交换格式。Java隐含在名称中,但其他类似C语言的编程语言可以识别它。其结构由名称/值对(或对象、散列表等)和有序值列表(或数组、序列、列表)组成。由于结构在各种语言之间可以互换,JSON擅长在Web应用程序和服务器之间传输数据。NoSQL半结构化数据也是许多NoSQL(不仅是SQL)数据库的重要组成部分。NoSQL数据库与关系数据库不同,因为它们不会将组织(模式)与数据分开。这使得NoSQL成为存储不容易适应记录和表格格式的信息(比如长度不同的文本)的更好选择。它还允许数据库之间进行更容易的数据交换。一些较新的NoSQL数据库(如MongoDB和Couchbase)也通过将它们以JSON格式本地存储来包含半结构化文档。
在大数据环境中,NoSQL不需要管理员将运营和分析数据库分离为单独的部署。NoSQL是可操作的数据库,并托管用于商业智能的本地分析工具。在Hadoop环境中,NoSQL数据库摄取并管理传入数据并提供分析结果。
这些数据库在大数据基础架构和LinkedIn等实时Web应用程序中很常见。在LinkedIn网站上,数以亿计的商业用户可以自由分享职位、地点、技能等等。LinkedIn以半结构化格式捕捉海量数据。当求职用户创建搜索时,LinkedIn会将查询与其大规模的半结构化数据存储相匹配,将数据交叉引用到招聘趋势中,并与求职者分享结果推荐。 Salesforce等高级LinkedIn服务中的销售和营销查询也采用相同的流程。亚马逊还将读者推荐建立在半结构化数据库上。
半结构化数据,包括邮件、HTML、报表、资源库等等,典型场景如邮件系统、WEB集群、教学资源库、数据挖掘系统、档案系统等等。这些应用对于数据存储、数据备份、数据共享以及数据归档 等基本存储需求。
三、非结构化数据
非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括所有格式的办公文档、文本、图片、各类报表、图像和音频/视频信息等等。
非结构化数据其格式非常多样,标准也是多样性的,而且在技术上非结构化信息比结构化信息更难标准化和理解。所以存储、检索、发布以及利用需要更加智能化的IT技术,比如海量存储、智能检索、知识挖掘、内容保护、信息的增值开发利用等。
非结构化数据,包括视频、音频、图片、图像、文档、文本等形式。具体到典型案例中,像是医疗影像系统、教育视频点播、视频监控、国土GIS、设计院、文件服务器(PDM/FTP)、媒体资源管理等具体应用,这些行业对于存储需求包括数据存储、数据备份以及数据共享等。
典型的人为生成的非结构化数据包括:
- 文本文件:文字处理、电子表格、演示文稿、电子邮件、日志。
- 电子邮件:电子邮件由于其元数据而具有一些内部结构,我们有时将其称为半结构化。但是,消息字段是非结构化的,传统的分析工具无法解析它。
- 社交媒体:来自新浪微博、微信、QQ、Facebook,Twitter,LinkedIn等平台的数据。
- 网站: YouTube,Instagram,照片共享网站。
- 移动数据:短信、位置等。
- 通讯:聊天、即时消息、电话录音、协作软件等。
- 媒体:MP3、数码照片、音频文件、视频文件。
- 业务应用程序:MS Office文档、生产力应用程序。
典型的机器生成的非结构化数据包括:
- 卫星图像:天气数据、地形、军事活动。
- 科学数据:石油和天然气勘探、空间勘探、地震图像、大气数据。
- 数字监控:监控照片和视频。
- 传感器数据:交通、天气、海洋传感器。
四、结构化数据与非结构化数据有什么区别?
结构化数据和非结构化数据是大数据的两种类型,这两者之间并不存在真正的冲突。客户如何选择不是基于数据结构,而是基于使用它们的应用程序:关系数据库用于结构化数据,大多数其他类型的应用程序用于非结构化数据。除了存储在关系数据库和存储非关系数据库之外的明显区别之外,最大的区别在于分析结构化数据与非结构化数据的便利性。针对结构化数据存在成熟的分析工具,但用于挖掘非结构化数据的分析工具正处于萌芽和发展阶段。
并且非结构化数据要比结构化数据多得多。非结构化数据占企业数据的80%以上,并且以每年55%~65%的速度增长。如果没有工具来分析这些海量数据,企业数据的巨大价值都将无法发挥。