全部產品
Search
文件中心

OpenSearch:MaxCompute(原ODPS)資料來源配置

更新時間:Jun 24, 2026

開放資料處理服務 MaxCompute(原 ODPS)是一個大規模計算平台。若您的 OpenSearch-行業演算法版資料來源自 MaxCompute,可在應用中配置 MaxCompute 源資訊。該方案支援 MaxCompute 三級表結構。觸發索引重建任務後,系統將自動拉取表中的全量資料;後續增量資料則需通過調用 SDK API 進行推送。

設定帳號AccessKey

目前在OpenSearch-行業演算法版中配置MaxCompute資料來源後,OpenSearch-行業演算法版是通過使用者填寫的accessKey和accessKeySecret去下載MaxCompute資料表的資料,因此在配置MaxCompute資料來源之前,需要確定帳號的accessKey和accessKeySecret。

說明

MaxCompute和OpenSearch需要同屬於一個帳號。

  • 如果使用者確定可以使用主帳號的accessKey和accessKeySecret,那麼即可用主帳號的accessKey和accessKeySecret去訪問該帳號下的MaxCompute中project的表。

  • 如果使用主帳號的accessKey和accessKeySecret風險較大,也可以通過子帳號去配置,配置步驟如下。

  1. 在該主帳號下建立一個子帳號,詳情可參考RAM(子帳號)的建立及授權

  2. 在MaxCompute中為該子帳號新增成員。

在 MaxCompute 專案管理的成員管理彈窗中,在左側搜尋成員名列表中搜尋並選擇目標 RAM 子帳號,單擊向右箭頭按鈕將其移至右側已/待新增成員名列表,也可通過底部手動新增成員輸入框直接輸入成員名(多個成員名用逗號分隔),然後單擊確定

  1. 新增成員之後,在MaxCompute資料開發介面查看其帳號,命令為list users; ,更多參考使用控制台(查詢編輯器)串連

    OK
    OK
    OK
    OK
    OK
    OK
    OK
    OK
    A xxx
    RAM$o; xxx h_test@test.xxx xxx st_1
    2022-02-10 18:34:33 INFO ===xxx=====================================================
    2022-02-10 18:34:33 INFO Exit code of the Shell command 0
    2022-02-10 18:34:33 INFO -- Invocation of Shell command completed ---
  2. 整體複製該帳號名,然後給該帳號賦權(xxx 表示3中複製的帳號):

    -- 1.project list許可權
    grant CreateInstance,List on project zy_ts_test to user xxx;
    -- 2.表的select,describe,download許可權
    GRANT select,describe,download ON TABLE people_info TO USER xxx;
    -- 3.odps表的label許可權(可選)
    set label 2 to USER  xxx;
    -- 查詢指定使用者的許可權資訊和綁定的角色資訊
    show grants for xxx;

授權完成後即可在opensearch中配置MaxCompute資料來源。

配置MaxCompute 資料來源

  1. 在應用配置頁面,選擇通過資料來源配置應用,然後選擇MaxCompute資料來源。

  1. 在資料來源類型列表中,單擊MaxCompute,選擇MaxCompute資料來源。

  2. 點擊建立資料庫,配置MaxCompute(原ODPS)資訊,填寫project,以及已經在 MaxCompute授權的帳號的accessKey和accessKeySecret:

    填寫完成後,單擊串連按鈕。

  3. 串連後選擇需要配置的資料表,如以下樣本添加三級表:

    選擇資料來源對話方塊中,單擊MaxCompute頁簽,在選擇資料庫地區選取項目已串連的資料庫,然後在選擇資料表地區勾選目標三級表(例如 default.item_tableopensearch.bank_data),通過穿梭框將其移至已選擇列表後,單擊確定

完成後,系統會自動對應出對應的欄位,使用者可根據業務需求,進行微調,符合需求後點擊下一步

自動對應後的欄位配置表包含欄位名稱主鍵類型外表串連操作列,使用者可為每個欄位設定類型(如 TEXT、INT)、指定主鍵、配置外表串連,並支援刪除或新增欄位。

重要

配置應用結構時,OpenSearch-行業演算法版規定必須要有一張主表,並且各個表需要配置唯一的主鍵欄位。

  1. 配置索引結構,可根據使用者的檢索需求,選擇合適的分析器,詳情可參考索引結構,符合需求後點擊下一步

    樣本中配置了兩個索引:default 索引包含 country、source_buy_cnt、city、item_type、last_modify_time、channel、title、subscribe_cnt 欄位,分析方式選擇 中文-通用分析id 索引包含 custom_pk_id 欄位,分析方式選擇 關鍵字

  2. 配置資料來源(包括:配置欄位對應關係,選擇分區資訊,選擇資料同步並發控制機制);

    資料來源配置頁面,單擊+ 添加資料來源添加 MaxCompute 資料來源。

    5.1. 配置欄位對應關係:點擊操作欄中的編輯按鈕,OpenSearch-行業演算法版為MaxCompute(原ODPS)的資料提供了若干資料來源外掛程式說明,如要使用,則在配置欄位對應關係的同時,點擊“內容轉換”列中的“+”符號,則會在源欄位被同步到OpenSearch-行業演算法版之前,先進行內容轉換,再進行同步。如果內容轉換外掛程式由於配置錯誤、無法串連等錯誤失效,則源欄位仍然會被同步到目標欄位,只是內容不會被轉換。

    5.2. 選擇分區資訊:根據MaxCompute(原ODPS)資料特性,OpenSearch-行業演算法版允許使用者根據具體需要來指定匯入的分區,支援Regex,表示匯入前一天的資料,結合應用基本資料-索引重建-定時索引重建功能,可以實現每天匯入新分區資料的效果。

    Regex (等號/逗號/分號/雙豎線為系統保留,每天自動匯入前1天分區全量資料條件例子ds=%Y%m%d || -1 days)

說明

ds為分區欄位名,“=”兩邊不允許有空格等其他不可見字元

不同情境下MaxCompute(原ODPS)分區條件用法,參考如下所示:

  • 1: 支援多個分區過濾規則,不同的分區過濾規則用分號分隔,如pt=1;pt=2將匹配滿足分區欄位pt=1或者pt=2的所有分區。

  • 2: 分區過濾規則,支援指定多個分區欄位的值,不同分區欄位用逗號分隔,如:pt1=1,pt2=2,pt3=3 將匹配同時滿足pt1=1,pt2=2,pt3=3的所有分區【多分區目前不支援function功能,即不支援 %Y%m%d || -1 days這樣的,單分區是可以支援的】。

1

:(如上圖所示一張odps表中有pt分區下有ds分)

  • 多個分區:pt=1;pt=2 將同步pt=1 和 pt=2分區下的所有資料

  • 指定多個分區欄位的值:pt=1,ds=1 將同步pt=1同時ds=1的分區資料

  • 不支援情況:pt=1,ds=%Y%m%d || -1 days 或者pt=1;pt=%Y%m%d || -1 days 該類情況暫不支援

  • 3: 分區欄位的值支援萬用字元 *,表示該分區欄位可以為任意的值,這種情況下,過濾規則中也可不寫該欄位

  • 4: 分區欄位的值支援Regex,如pt=[0-9]* 將匹配pt值為數位所有分區。

  • 5: 分區欄位的值支援時間匹配,匹配規則: pt=包含格式化時間的分區列值||時間間隔運算式。如ds=%Y%m%d || -1 days,表示分區欄位為ds,格式為20150510,需要訪問1天前的資料。

  • 5.1 格式化時間參數支援標準的時間格式參數,如下表

  • 5.2 時間間隔運算式支援 +/- n week|weeks|day|days|hour|hours|minute|minutes|second|seconds|microsecond|microseconds, +號表示任務建立時間的表示n周/天/小時/分鐘/秒/毫秒後,-號表示任務建立時間的表示n周/天/小時/分鐘/秒/毫秒前。

  • 5.3 系統預設會對所有過濾規則,按照+0 days進行時間參數替換,因此,需要注意的是,用於過濾的欄位值不能包含下面這些字串作為普通的字串參數,如星期三建立的任務,pt=%abc 將匹配pt的值為Wedbc的分區,而不是pt=%abc的分區。

Regex全部可用參數及含義,參考如下:

%d:  日在這個月中的天數(是這個月的第幾天)  
%H:  小時(24小時制,[0, 23])     
%m: 月份([01,12])  
%M:  分鐘([00,59])   
%S:  秒(範圍為[00,61])   
%y:  2個數字表示的年份  
%Y:  4個數字表示的年份

5.3. 選擇資料同步並發控制機制:

當使用者勾選【使用done檔案】後,OpenSearch支援使用者通過上傳done檔案的方式控制系統拉取全量資料的時機,保證全量資料的完整性。系統在開始從MaxCompute(原ODPS)拉全量資料之前會先判斷一下當天的done檔案是否存在,如果不存在則等待,預設等待1小時後逾時。

  • 使用者需從odps官網下載odpscm,檔案名稱為:odps_clt_release_64.tar.gz;

  • 使用者需要具有所在project空間的CreateResource許可權;

  • 安裝後在使用者程式中運行如下命令:其中done檔案的命名規則為$prefix_%Y-%m-%d。$prefix: 檔案名稱首碼,預設為表名,%Y-%m-%d:索引重建任務日期,系統定時任務目前支援的最小粒度為1天。

    odpscmd -u accessid -p accesskey --project=<prj_name>-e "add file <done file>;"
  • MaxCompute用戶端odpscmd使用說明,請參考使用本地用戶端(odpscmd)串連

  • done檔案內容為JSON格式,目前僅需包含如下內容,用於指定該批全量資料的時間戳記(毫秒)【最多隻保留3天增量,因此該時間點不可以超過3天】。

  • 該時間戳記表示需要回溯的增量資料時間點,如果不配置則預設從索引重建任務開始時間追加資料【最多隻保留3天增量,因此該時間點不可以超過3天】。

  • 【例如】全量資料是今天9點的,odps處理完畢後為10點,OpenSearch定時任務為10:30,則done檔案需要指定為當天9點的毫秒值,在處理完全量後系統會追加當天9點後的增量,保證資料完整性;否則會從預設任務啟動時間10:30開始追加,這樣9:00~10:30期間的增量會丟失,該行為非常重要,需要特別注意。(當然,若沒有增量,則無需配置該時間戳記)。

  • 進階版done檔案內容相關說明。(提示:標準版中需設定的資料時間值也是類似原理,都是用來追索引重建期間API的增量資料的)。

{
"timestamp":"1234567890000"
}

done file與資料時間的優先順序:

  1. ODPS資料來源的“資料時間”目前是必選的,且優先於donefile;

  2. 使用者如果只建立一個版本,就只需要指定“資料時間”,沒有辦法單獨使用donefile;

  3. 使用者如果需要使用定時索引重建,就必須“資料時間”和donefile都配置:第一個版本優先使用“資料時間”,之後的每一個版本都優先使用donefile;

OpenSearch-行業演算法版支援三種阿里雲資料來源:RDSMaxCompute(原ODPS)PolarDB。RDS和PolarDB支援多表關聯配置,一個應用可配置主表和外表,通過外表串連實現多表資料關聯。MaxCompute(原ODPS)資料來源每個執行個體只能配置一個資料庫。OpenSearch不支援自建資料庫或外部資料源。

如需區分測試和生產環境,建立獨立的OpenSearch執行個體,分別配置不同資料來源,實現環境隔離。

注意事項

重要

目前 MaxCompute 資料來源只支援全量同步,不支援增量同步處理