大的数据体量:社交媒体、移动设备、科学计算、视频监控、城市中部署的各类传感器等等(视频数据)
针对Oracle、MySQL、SQL Server、DB2等结构化数据,我们可以选择存储在关系型数据库中。
针对诸如视频、音频、文件等非结构化数据,又是如何存储呢?
一般视频、大文件都不会直接存储在数据库中,因为会严重影响性能。视频文件存放在数据库,应该使用大字段、IO流的知识。
Oracle中可通过BLOB类型来存储4GB以下的视频数据。【定义blob字段,使用dbms_lob包】
数据库自定义为字节数组类型(如:image等),用程序将视频转化为流,写入字段数据数组中,保存进数据库。
将视频文件所在的路径保存在数据库中,然后通过程序调用该路径的文件内容。【数据上传到磁盘空间里,数据库中存储路径】
视频、音频、文件等非结构化数据可存储在一些NoSQL解决方案中。
建议:图片-blob字段来存储,视频-存储路径
测试:如何把视频文件存放在mysql数据?
当然不建议直接存放,因为迁移会很麻烦而且容易出现问题,以下只是测试功能,导入jpg、png等图片类似。
创建一个测试表test,使用longblob或者mediumblob
CREATE TABLE test (id INTEGER NOT NULL PRIMARY KEY,name VARCHAR (20),movie LONGBLOB);
然后把视频文件导入
INSERT INTO test VALUES(1, 'titanic', LOAD_FILE("/tmp/good.mp4"));
注意,如果不使用longblob可能出现以下错误

面对社交媒体、视频监控等产生的大量非结构化数据,传统的结构化数据库如Oracle、MySQL等并不适合直接存储。通常,视频和大文件不会直接存入数据库以避免性能下降。在Oracle中,可以使用BLOB类型存储小规模的视频数据,而大部分情况下,文件路径会被存储在数据库中,实际文件则保存在磁盘。NoSQL数据库也是非结构化数据的一个选择。对于测试目的,可以将视频文件通过MySQL的LOAD_FILE函数导入,但实际操作不推荐,因为迁移和管理复杂。

3998

被折叠的 条评论
为什么被折叠?



