• 首页 > 数据存储频道 > 数据库频道 > 数据库

    使用关系数据库来查询非结构化数据

    2023年01月09日 11:30:03   来源:51CTO

      译文 | 布加迪

      在过去的50年里,关系数据库一直是世界上一些最关键的应用软件的基础。虽然市面上还有其他数据库,比如键值数据库、文档数据库和图形数据库,但关系数据库依然是最受欢迎的。其主要原因是,SQL或关系数据库语言对初学者来说学习起来很容易,对专家来说实施起来很高效。

      然而随着我们进入人工智能新时代,存储结构化数据已经不够了。如今世界上80%的数据是非结构化数据,包括原始文本、图片、音频、视频及其他各种文件类型。这些非结构化数据含有大量关键信息,我们无法使用当前的关系数据库系统来检索这些信息。好消息是,机器学习领域的最新进展使我们能够以前所未有的方式来理解非结构化数据,我们可以利用这个机会使这项技术变得更普及。

      面向非结构化数据的关系数据库

      本文将介绍Superinsight,这是一种拥有内置机器学习功能的关系数据库。Superinsight让了解SQL的任何人都可以针对非结构化数据运行查询。

      Superinsight的核心概念如下:

      Superinsight建立在PostgreSQL之上,因此它拥有PostgreSQL的所有功能和机器学习能力。

      Superinsight可自动分析和索引存储在数据类型为[TEXT]的列中的任何数据。

      原始文本数据作为值来存储,而基于文件的数据(比如图片)作为实际位置的引用来存储。

      安装

      Superinsight可以作为独立机器来运行,也可以作为Kubernetes之类的编排框架的一部分来运行。本演示将使用独立版本。

      Docker是安装Superinsight的最方便方式。运行该命令前,记得修改用户名和密码。

      复制

      docker run \

      --name superinsight-db-standalone \

      -p 5432:5432 \

      -e SUPERINSIGHT_USER=admin \

      -e SUPERINSIGHT_PASSWORD=password \

      -e ENV_IMAGE_TO_LABEL=True \

      superinsight/superinsight-db-standalone:latest

      为了本文这个演示,我们将设置标志ENV_IMAGE_TO_LABEL=True,这个选项让我们可以基于文本搜索图片。

      连接

      一旦Docker容器开始运行,您就可以使用PostgreSQL协议和默认数据库Superinsight通过端口5432连接到Superinsight。

      复制

      postgres://admin:password@127.0.0.1:5432/superinsight

      存储和搜索非结构化数据

      Superinsight可以使用标准SQL来存储结构化数据和非结构化数据。Superinsight将只分析存储在数据类型为[TEXT]的列中的非结构化数据。在下面例子中,我们将使用Flipkart产品数据集。

      创建表

      标准的CREATE TABLE语句可用于创建表。由于我们只希望Superinsight分析名称、图片和描述下面的几列,作为非结构化数据进行分析,于是我们为这些列使用数据类型[TEXT]。此外,每个表都必须有一个主键,这是Superinsight的要求。

      复制

      CREATE TABLE mldb.product (

      _id serial PRIMARY KEY,

      category varchar(500),

      brand varchar(500),

      name TEXT,

      image TEXT,

      description TEXT,

      price float8,

      url varchar(500)

      );

      插入记录

      标准SQL Insert语句可用于插入记录。名称和描述这两列的值存储在数据库中,但至于图片,我们存储的是图片URL。Superinsight将基于每个图片URL自动读取和索引图片。在本例中,我们将为数据库添加20条记录。SQL脚本可以从这里下载:https://docs.superinsight.ai/setup/dataset/?ref=hackernoon.com#products。

      原始文本的语义搜索

      我们将在表和预构建模型之间使用JOIN语句创建语义搜索查询。关键字ON表明使用哪一列作为语义搜索模型的输入。WHERE关键字用于指定要比较的值。最后,我们可以使用predictions.core作为ORDER BY,对最相关的结果进行排序。

      注意:在我们第一次搜索之前,Superinsight必须将最新的语义搜索模型下载到您的数据库中。这个过程可能需要一两分钟,快慢取决于网速。

      复制

      SELECT predictions.score, mldb.product.image, mldb.product.name,

      mldb.product.description

      FROM mldb.product

      JOIN model.semantic_search

      ON model.semantic_search.inputs = mldb.product.description

      WHERE model.semantic_search.similar = 'Something to sit on'

      ORDER BY predictions.score DESC

      我们对“可以坐的东西”进行语义搜索,得到四个得分大于0.11的沙发床记录。Superinsight与其他关系数据库之间最显著的区别是,结果由理解数据上下文的机器学习模型来评分,从而获得丰富得多的搜索结果。

      图片到图片的语义搜索

      图片搜索就像搜索原始文本一样。只需要更改WHERE子句值和ON子句条件。我们将使用图片url作为搜索值,基于图片相似度查找记录。

      复制

      SELECT predictions.score, mldb.product.image, mldb.product.name,

      mldb.product.description

      FROM mldb.product

      JOIN model.semantic_search

      ON model.semantic_search.inputs = mldb.product.image

      WHERE model.semantic_search.similar =

      'http://img5a.flixcart.com/image/short/u/4/a/altht-3p-21-alisha-38-

      original-imaeh2d5vm5zbtgg.jpeg'

      ORDER BY predictions.score DESC

      注意,第一张图片的得分是1,因为它与我们要找的图片一模一样。我们可以看到下面五张图片非常相似,所以它们的得分都高于0.87。

      文本到图片的语义搜索

      我们还可以通过用文本描述图片的上下文来搜索图片。在下面例子中,我们寻找“女性服装”图片。

      复制

      SELECT predictions.score, mldb.product.image,

      mldb.product.name, mldb.product.description

      FROM mldb.product

      JOIN model.semantic_search

      ON model.semantic_search.inputs = mldb.product.image

      WHERE model.semantic_search.similar = 'woman dress'

      ORDER BY predictions.score DESC

      结语

      Superinsight使存储和搜索非结构化数据变得很简单。由于Superinsight基于PostgreSQL,任何支持PostgreSQL协议的现有应用软件和数据可视化工具现在都可以使用Superinsight。欲进一步了解Superinsight,请点击下面的链接:

      文档:https://docs.superinsight.ai

      GitHub:https://github.com/superinsight/superinsight-db

      原文标题:Using a Relational Database to Query Unstructured Data,作者:Nelson Chu

      文章内容仅供阅读,不构成投资建议,请谨慎对待。投资者据此操作,风险自担。

    即时

    新闻

    纯电版迈腾和帕萨特 大众ID旗舰轿车亮相上海车展

    上海车展正在火热进行中,一汽大众在2023上海车展中带来了ID家族的旗舰轿车产品,ID.7 VIZZION,新车基于MEB平台打造而来,预计将于今年下半年正式上市。

    企业IT

    “产业互联网平台赋能企业数字化转型升级”游学走进

    5月18日,为了帮助中小企业解决定为难、运营难、资金难、人才难、资源难等问题,杭州市市场营销协会组织多家专业机构联合举办“名企游学,走进上市公司”活动,通过学习交流赋能中小企业更好地完成转型升级。此次活动走进“A股互联网第一股”浙江网盛生意宝股份有限公司。

    3C消费

    装修也能更省心 京东装修自营业务为用户打造省时省钱

    5月18日,由京东携手爱空间整装举办的京东装修自营业务新品发布会暨京东联合爱空间整装新品媒体见面会正式召开。

    研究

    QuestAuto 3月报告:新能源轿车活跃总数突破777万辆

    5月17日消息,QuestAuto数据显示,2023年3月,新能源轿车销量TOP10车系总体增长幅度都比较大,秦PLUS DM-i、海豚、Aion S、五菱宏光MINIEV、Model 3位居前五,销量分别为3.13万辆、2.77万辆、2.64万辆、2.32万辆、2.17万辆。