本文介绍如何快速搭建支持在线多表join功能的实例。
前提条件
操作步骤
- 创建并购买应用。 
- 配置应用:定义应用结构->定义索引结构->配置数据源->创建成功。 
- 搜索测试。 
创建应用
- 在OpenSearch-高性能检索版实例管理页,单击创建实例:  
- 选择实例类型,包括商品版本、商品类型、地域和可用区、应用名、集群偏好、存储容量、计算资源,单击立即购买:  - 商品版本选择高性能检索版。  - 商品类型可选:包月包年或按量付费。 
- 地域和可用区:用户按需选择。 
- 应用名称:可自定义。 
- 集群偏好:独享存储型 (固定)。 
- 存储容量和计算资源保持默认,或按需购买。 
 
- 确认订单,勾选服务协议后,单击立即开通:  
- 开通完成后,可以在控制台列表页,查看待配置状态的实例:  
配置应用
- 在控制台列表页,找到新购的实例,在右侧操作栏中单击配置:  
- 定义应用结构:目前提供了 4 种方式的应用结构创建方式。 - 通过模板创建应用结构,用户可以将自己定义的应用结构创建成模板,可以通过已有模板快速创建出一个新的应用。 
- 通过上传文档创建应用结构,用户可以上传已有的数据文件(仅支持JSON格式),系统会自动解析并创建出初始的应用结构(注意字段类型等需要重新定义)。 
- 通过数据源创建应用结构,适用于RDS、MaxCompute等数据源同步场景。此功能可快速从源表结构生成初始应用结构,减少手动构造工作量并降低出错概率。具体详见数据源配置。 
- 通过手动创建应用结构,快速测试接入时使用,这里以该方式为例,创建2张表: 
  - 字段类型的选择可以参考OpenSearch-高性能检索版表结构。 - 注意: 说明- 表总数不能超过系统最大限制8个。 
- 索引结构配置,不同的表需要单独配置:(每张表都需要单独配置)  说明 说明- FLOAT,FLOAT_ARRAY,DOUBLE,DOUBLE_ARRAY 不支持设置索引字段。 
- TEXT,SHORT_TEXT 不支持设置属性字段。 
 
- 分列键配置:  - OpenSearch实例,后端是分布式的部署,在多表场景下,需要多个表join的数据在同一台机器上,如下图:  - 引擎在build索引时根据用户配置的分列进行hash,将hash结果相同的记录存放在同一列。查询时,查询节点向各列发起请求,各列根据用户的SQL进行内部join操作,不进行跨列join。最终,每列将join结果返回给查询节点,查询节点汇总后将结果返回给用户。 说明- 系统默认已采用主键分列; 
- 只能选择一个字段为分列字段; 
- 分列字段需要保证全局值唯一; 
- 分列字段支持的类型有:INT、LITERAL; 
- 如需非主键join,必须在分列键中配置需要join的字段; 
 
- 数据源配置,可根据高性能检索版支持的数据源类型进行配置:  - 单击添加数据源,配置对应的数据源:  
- 配置完成后,单击完成:  
- 在实例详情页中,等待线下应用状态为正常后,即可进行查询:  
搜索测试
- 线下应用状态正常,并切换上线后,可在搜索测试页进行搜索测试:  
- 目前多表在线join方式,仅支持SQL查询:  - 详细的SQL语法可参考SQL支持。