全部產品
Search
文件中心

OpenSearch:線上多表join快速搭建

更新時間:Jul 13, 2024

本文介紹如何快速搭建支援線上多表join功能的執行個體。

前提條件

  1. 成功註冊阿里雲帳號並通過實名認證

  2. 第一次開通阿里雲帳號並登入控制台時,會提示先建立access key才能繼續使用。

  • 建立及使用應用依賴access key參數,主帳號下access key參數不可為空。

  • 在為主帳號建立access key參數後,還可以再建立RAM子帳號access key通過RAM子帳號進行訪問,RAM子帳號賦予對應存取權限,請參考訪問鑒權規則

配置多表join

步驟:

  1. 建立併購買應用

  2. 配置應用:定義應用結構->定義索引結構->配置資料來源->建立成功

  3. 搜尋測試

建立應用

  1. 登入OpenSearch控制台,頁面左上方選擇“OpenSearch-高效能檢索版”,進入“執行個體管理”頁,點擊“建立應用”:

image

  1. 選擇執行個體類型,包括商品版本、商品類型、地區和可用性區域、應用程式名稱、叢集偏好、儲存容量、計算資源,點擊“立即購買”:

image

商品版本選擇“高效能檢索版”。

image

  • 商品類型可選:“包月包年”或“隨用隨付”

  • 地區和可用性區域:使用者按需選擇

  • 應用程式名稱:可自訂

  • 叢集偏好:獨享儲存型 (固定)

  • 儲存容量和計算資源保持預設,或按需購買

  1. 確認訂單,勾選服務合約後,點擊“立即開通”:

image

  1. 開通完成後,可以在控制台列表頁,查看待配置狀態的執行個體:

image

配置應用

  1. 在控制台列表頁,找到新購的執行個體,在右側操作欄中點擊“配置”:

image

  1. 定義應用結構:目前提供了 4 種方式的應用結構建立方式,

  • 通過模板建立應用結構。使用者可以將自己定義的應用結構建立成模板,可以通過已有模板快速建立出一個新的應用。

  • 通過上傳文檔建立應用結構。您可以上傳已有的資料檔案(僅支援JSON格式),系統會自動解析並建立出初始的應用結構(注意欄位類型等需要重新定義)。

  • 通過資料來源建立應用結構。適用於通過RDS、MaxCompute等資料來源同步的情境,可以快速由源表結構建立出初始的應用結構,節省手動構造的工作量,降低出錯機率。具體詳見資料來源配置

  • 通過手動建立應用結構,快速測試接入時使用,這裡以該方式為例,建立2張表:

image

欄位類型的選擇的可參考OpenSearch-高效能檢索版表結構

注意

說明

表總數不能超過系統最大限制8個;

  1. 索引結構配置,不同的表需要單獨配置:(每張表都需要單獨配置)

image

  • 應用結構的配置可參考索引結構

  • 分析方式的選擇,可參考文本分析器

  • 屬性欄位的選擇:需要在SELECT 、WHERE、ORDER BY 時使用該欄位時,將其設定為屬性欄位

說明
  • FLOAT,FLOAT_ARRAY,DOUBLE,DOUBLE_ARRAY 不支援設定索引欄位

  • TEXT,SHORT_TEXT 不支援設定屬性欄位

  1. 分列鍵配置:

image

OpenSearch執行個體,後端是分布式的部署,在多表情境下,需要多個表join的資料在同一台機器上,如下圖:

image

引擎在build索引時會根據使用者配置的分列進行hash,將hash結果相同的記錄存放在一列上,同時查詢時,由查詢節點向每一列發起查詢請求,每一列根據使用者的SQL進行join,不會跨列進行join,最後每列把join後的結果返回給查詢接節點,查詢節點匯總召回結果內容後,返回給使用者。

說明
  • 系統預設已採用主鍵分列;

  • 只能選擇一個欄位為分欄欄位;

  • 分欄欄位需要保證全域值唯一;

  • 分欄欄位支援的類型有:INT、LITERAL;

  • 如需非主鍵join,必須在分列鍵中配置需要join的欄位;

  1. 資料來源配置,可根據高效能檢索版支援的資料來源類型進行配置:

image

點擊添加資料來源,配置對應的資料來源:

image

  1. 配置完成後,點擊完成:

image

  1. 在執行個體詳情頁中,等待線下應用狀態為“正常”後,即可進行查詢:

image

搜尋測試

  1. 線下應用狀態正常,並切換上線後,可在搜尋測試頁進行搜尋測試:

image

  1. 目前多表線上join方式,僅支援SQL查詢:

image

詳細的SQL文法可參考SQL支援

注意事項

  • 目前僅儲存型-獨享叢集,支援線上多表join;

  • 多表join情境下,僅支援SQL查詢;

  • 多表join情境下,不支援自訂分析器

  • 多表join情境下,不支援排序配置;(可以用ORDER BY

  • 多表join情境下,不支援搜尋結果展示

  • 儲存型-獨享叢集執行個體,不可變更配置為其他規格執行個體;