当前位置: 首页 > news >正文

腾讯做网站上传自动做效果图的网站

腾讯做网站上传,自动做效果图的网站,网页设计网站视频,有口碑的网站建设在数据库中#xff0c;Schema 常有#xff0c;而动态 Schema 不常有。 例如#xff0c;SQL 数据库有预定义的 Schema#xff0c;但这些 Schema 通常都不能修改#xff0c;用户只有在创建时才能定义 Schema。Schema 的作用是告诉数据库使用者所希望的表结构#xff0c;确保… 在数据库中Schema 常有而动态 Schema 不常有。 例如SQL 数据库有预定义的 Schema但这些 Schema 通常都不能修改用户只有在创建时才能定义 Schema。Schema 的作用是告诉数据库使用者所希望的表结构确保每行数据都符合该表的 Schema。NoSQL 数据库通常都支持动态 Schema 或可以不创建 Schema即在创建数据库时无需为每个对象定义属性。 而在 Milvus 社区中支持动态 Schema 亦是呼声较高的功能之一。为了更好地满足用户需求Milvus 在 2.2.9 中发布了这一功能数据库 Schema 便可以根据用户添加数据而“动态变化”。此后用户无需像以前一样在插入数据时严格遵循预先定义的 Schema可以像在 NoSQL 数据库中一般以 JSON 格式添加数据。 不过我们发现很多用户对于在向量数据库中使用动态 Schema 的 A、B 面及其作用仍有不少疑问本文将一一解答。 01.什么是数据库 Schema 什么是数据库 Schema我们举例来看 Schema 定义了如何在数据库中插入和存储数据上图展示了如何为关系型数据库创建一个标准的 Schema。 在上图的数据库中 一共有 4 张表每张表都有各自的 Schema。图片中间的表有 4 列数据其余 3 张表有 2 列数据。 此外我们还需要在 Schema 中定义数据类型。“Employee”、“Title”和“DeptName”列都将是字符串即VARCHAR“CourseID”也是字符串“EmpID”和“DeptID”列数据是整数而“Date”列数据类型可以是日期或 VARCHAR。 02.什么是向量数据库 Schema 以我们之前的文章《书接上回如何用 LlamaIndex 搭建聊天机器人》为例下图展示了 1 个 Zilliz Cloud 实例中的 1 条数据 如果在传统的数据库中定义 Schema那么针对这条数据我们需要创建 11 列 Schema。 其中“id”、“paragraph”、“subtitle”、“publication”、“article_url”和“title” 这 6 列数据类型为VARCHAR“reading_time”、“responses”和“claps” 这 3 列数据类型为整数INT“date”列数据类型为日期DATE剩下的最后一列“embedding” 的数据类型为浮点向量FLOAT_VECTOR用于存储 Embedding 向量数据。 如何使用 Milvus 向量数据库中的 Dynamic Schema 功能 下面的代码片段展示了如何在 Milvus 中开启动态 Schema 功能以及如何将数据插入到动态字段并执行过滤搜索。 from pymilvus import (connections,FieldSchema, CollectionSchema, DataType,Collection, ) DIMENSION 8 COLLECTION_NAME books connections.connect(default, hostlocalhost, port19530) fields [FieldSchema(nameid, dtypeDataType.INT64, is_primaryTrue),FieldSchema(nametitle, dtypeDataType.VARCHAR, max_length200),FieldSchema(nameembeddings, dtypeDataType.FLOAT_VECTOR, dimDIMENSION) ] Schema CollectionSchema(fieldsfields, enable_dynamic_fieldTrue) collection Collection(nameCOLLECTION_NAME, SchemaSchema) data_rows [{id: 1, title: Lord of the Flies,embeddings: [0.64, 0.44, 0.13, 0.47, 0.74, 0.03, 0.32, 0.6],isbn: 978-0399501487},{id: 2, title: The Great Gatsby,embeddings: [0.9, 0.45, 0.18, 0.43, 0.4, 0.4, 0.7, 0.24],author: F. Scott Fitzgerald},{id: 3, title: The Catcher in the Rye,embeddings: [0.43, 0.57, 0.43, 0.88, 0.84, 0.69, 0.27, 0.98],claps: 100}, ] collection.insert(data_rows) collection.create_index(embeddings, {index_type: FLAT, metric_type: L2}) collection.load() vector_to_search [0.57, 0.94, 0.19, 0.38, 0.32, 0.28, 0.61, 0.07] result collection.search(data[vector_to_search],anns_fieldembeddings,param{},limit3,exprclaps 30 || title The Great Gatsby,output_fields[title, author, claps, isbn],consistency_levelStrong)for hits in result:for hit in hits:print(hit.to_dict())在创建的 Collection “books”中我们定义了 Schema其中包含 3 个字段id、title和embeddings。id是主键列——每行数据的唯一标识符数据类型为INT64。title代表书名数据类型为VARCHAR。embeddings是向量列向量维度为 8。注意本文代码中的向量数据为随机设置仅用于演示目的。 Schema CollectionSchema(fieldsfields, enable_dynamic_fieldTrue) collection Collection(nameCOLLECTION_NAME, SchemaSchema)我们通过在定义时向CollectionSchema对象传入一个字段来开启动态Schema。简而言之只需要添加enable_dynamic_field 并将其参数值设置为True 即可。 data_rows [{id: 1, title: Lord of the Flies,embeddings: [0.64, 0.44, 0.13, 0.47, 0.74, 0.03, 0.32, 0.6],isbn: 978-0399501487},{id: 2, title: The Great Gatsby,embeddings: [0.9, 0.45, 0.18, 0.43, 0.4, 0.4, 0.7, 0.24],author: F. Scott Fitzgerald},{id: 3, title: The Catcher in the Rye,embeddings: [0.43, 0.57, 0.43, 0.88, 0.84, 0.69, 0.27, 0.98],claps: 100}, ]在上述代码中我们插入了 3 行数据。id1的数据包括动态字段isbnid2包括authorid3包括claps。这些动态字段具有不同的数据类型包括字符串类型isbn和author和整数类型claps。 result collection.search(data[vector_to_search],anns_fieldembeddings,param{},limit3,exprclaps 30 || title The Great Gatsby,output_fields[title, author, claps, isbn],consistency_levelStrong)在上述代码中我们进行了过滤查询。过滤查询结合了ANNS近似最近邻搜索和基于动态和静态字段的标量过滤查询的目的是检索满足expr参数中指定条件的数据输出包括title、author、claps和isbn字段expr参数允许基于 Schema 字段或称之为静态字段title和动态字段claps进行过滤。 运行代码后输出结果如下 {id: 2, distance: 0.40939998626708984, entity: {title: The Great Gatsby, author: F. Scott Fitzgerald}} {id: 3, distance: 1.8463000059127808, entity: {title: The Catcher in the Rye, claps: 100}}Milvus 如何实现动态 Schema 功能 Milvus 通过用隐藏的元数据列的方式来支持用户为每行数据添加不同名称和数据类型的动态字段的功能。当用户创建表并开启动态字段时Milvus 会在表的 Schema 里创建一个名为$meta的隐藏列。JSON 是一种不依赖语言的数据格式被现代编程语言广泛支持因此 Milvus 隐藏的动态实际列使用 JSON 作为数据类型。 Milvus 以列式结构组织数据在插入数据过程中每行数据中的动态字段数据被打包成 JSON 数据所有行的 JSON 数据共同形成隐藏的动态列 $meta。 03.动态 Schema 的 A、B 面 当然动态 Schema 的功能并不一定适合所有用户大家可以根据自己的场景和需求选择开启或关闭动态 Schema。 一方面动态 Schema 设置简便无需复杂的配置即可开启动态 Schema动态 Schema 可以随时适应数据模型的变化开发者无需进行重构或调整代码。 另一方面使用动态 Schema 进行过滤搜索比固定 Schema 慢得多在动态 Schema 上进行批量插入比较复杂推荐用户使用行式插入接口写入动态字段数据。 当然为了应对上述挑战Milvus 已经整合了向量化执行模型来提升过滤搜索效率。向量化执行的思想就是不再像火山模型一样调用一个算子一次处理一行数据而是一次处理一批数据。这种计算模式在计算过程中也具有更好的数据局部性从而显著提高了整体系统性能。 04.总结 看到这里相信大家对于如何在 Milvus 中使用动态 Schema 有了更深的认识需要提醒大家的是动态Schema 功能拥有 A、B 两面一方面提供了动态 Schema 设置简便为用户提供灵活性和高效率。但另一方面使用动态 Schema 的过滤搜索比固定 Schema 慢而且在动态 Schema 上进行批量插入的情况更加复杂。Milvus 利用向量化执行模型来应对动态 Schema 的一些劣势从而优化整体系统性能。 后续我们还将在 Milvus 2.4 中增强标量索引能力通过静态和动态字段的倒排索引加速过滤查询实现动态 Schema 管理和查询的性能和效率提升。 本文由 mdnice 多平台发布
http://www.hkea.cn/news/14278699/

相关文章:

  • 网站开发能进入无形资产吗济南网站建设搜q.479185700
  • 心雨在线高端网站建设创新seo是什么的缩写
  • 比利时网站后缀免费wordpress模板下载地址
  • 开发网站的技术风险工控人如何做自己的网站
  • 温州网站建设温州优质网站建设是哪家
  • 备案个人可以做视频网站代理公司注册品牌
  • 杭州做产地证去哪个网站电子商务项目策划书范文
  • 邯郸移动网站建设泰安网络推广培训
  • 搭建网站多少钱crm管理平台
  • 怎么在百度上做公司网站济南优化网页
  • 广州网站推广策划案浙江搜索引擎优化
  • 上虞做网站公司福田区住房和建设局官方网站
  • 建设银行手机银行下载官方网站下载百度影响力排名顺序
  • 沧州网站建设运营公司成品网站nike源码1688免费
  • 网站制作效果好钓鱼网站在线下载
  • 南通公司网站建设北京和隆优化科技
  • 做网站排名大概要多少钱wordpress 常数函数
  • 网视易网站建设人像摄影作品网站
  • 网站设计制作公司推荐密码管理系统admin
  • 一个人做网站难吗关键词优化是什么
  • 淄博品质网站建设新手要如何让网站被收录
  • 腾讯云wordpress搭建网站WordPress手机显示内容
  • 企业网站设计师wordpress增强编辑器
  • 有没有免费注册的网站株洲关键词seo优化服务商
  • wordpress大学主题下载苏州谷歌seo
  • 怎么加入网站做微商城360网站卖东西怎么做的
  • p2p网站开发公司开源seo软件
  • 河北省沧州建设厅网站网站打开慢是什么原因
  • 网站等保建设工作网站建设
  • 中山网站建设推荐互动网络平台