全部產品
Search
文件中心

:MaxCompute資料來源

更新時間:Sep 04, 2024

前置條件

  • 瞭解MaxCompute(原ODPS) ,如果您對MaxCompute 沒有過多的瞭解,可點擊此處進行參考。

  • 表許可權,在配置MaxCompute 資料表時需要登入OpenSearch的帳號對該表有相應的許可權(describe,select,download,欄位的label許可權)。

賦權語句如下:

-- 添加帳號
add user ****@aliyun.com;

-- 給該帳號賦相應的表許可權
GRANT describe,select,download ON TABLE table_xxx TO USER ****@aliyun.com
GRANT describe,select,download ON TABLE table_xxx_done TO USER ****@aliyun.com

-- 由於MaxCompute開啟了欄位許可權校正,導致拉取資料的時候無法訪問高許可權的欄位,表索引build不出來,碰到這種情況需要授權給帳號欄位層級的存取權限。
-- 給整個Project統一授權
SET LABEL 3 to USER ****@aliyun.com

-- 給單表授權
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.com
  • 向量檢索版引擎支援的MaxCompute 表欄位類型有:STRING 、BOOLEAN、DOUBLE、BIGINT、DATETIME;

說明

詳細的建表語句說明和參數配置可參考MaxCompute資料來源建表語句說明

配置MaxCompute 資料來源

1. 進入OpenSearch控制台,在左上方切換到OpenSearch-向量檢索版,在執行個體管理頁面對應的列表中找到所屬執行個體,點擊操作欄中的管理:

image

  1. 在配置中心>資料來源配置介面,點擊添加資料來源,在添加資料來源時選擇MaxCompute,填寫紅框中資料來源名稱、Project、accesskeyId、accesskeySecret、Table、分組鍵partition、自動索引重建等資訊:

image

3. 配置完成後,點擊校正後,校正通過後,確定按鈕可點擊:

image

4. 新添加資料來源後,需要配置索引結構為其添加索引表,詳情可參考添加索引表

5. 索引表配置完成後,需要更新配置並索引重建才可供線上叢集使用,詳情可參考配置更新

注意:

  • 資料來源名稱:使用者建立的資料來源名稱,命名規則為執行個體名稱_使用者自訂名稱;

  • Project、accesskeyId、accesskeySecret、Table、分組鍵partition:使用者訪問MaxCompute資料來源所需要的參數;

  • 自動索引重建:是否開啟自動索引重建任務,如果開啟,則將在識別到當前資料來源的變更時,自動對引用該資料來源的索引表進行索引重建;

  • 開啟自動索引重建,則必須建立done表,建立方式,可參考下方自動索引重建

自動索引重建

done 表的作用:當使用者在配置資料來源開啟自動索引重建時,表示向量檢索版執行個體會根據使用者的done表變動去自動索引重建。

舉例:假設使用者的MaxCompute 資料表mytable,分區為ds=20220113,首次配置資料來源索引重建之後,以後每天產出一個新分區(新分區資料是表的全量資料),需要向量檢索版執行個體掃描到新分區然後自動進行索引重建拉取新分區資料,此時就需要:自動索引重建+done表 實現此功能。

操作步驟如下

1.添加資料來源的時候,開啟自動索引重建:

image

2.在MaxCompute 設定done 表,假設資料表名為mytable,分區鍵名稱為ds,那麼done表表名為mytable_done,分區鍵名稱為ds,兩張表在MaxCompute 顯示為:

odps:sql:xxx> show tables;
InstanceId: xxx  
SQL: .                                                                                              

ALIYUN$****@aliyun.com:mytable          #全量資料來源的表
ALIYUN$****@aliyun.com:mytable_done     #控制自動全量的done表

done 表的示意圖:

image

建立done表語句:

create table mytable_done (attribute string) partitioned by (ds string);

3.當資料表mytable分區ds=20220114 資料完成產出後,需要設定done表,以觸發向量檢索版執行個體的索引重建;

-- 添加分區
alter table mytable_done add if not exists partition (ds="20220114");

-- 插入自動全量訊號資料
insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';

最終done表內容如下所示:

odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
InstanceId: xxx  
SQL: .                                                                                              
+-----------+----+
| attribute | ds |
+-----------+----+
| {"swift_start_timestamp":1642003200} | 20220114 |
+-----------+----+

最終當done表插入自動全量訊號資料後,向量檢索版執行個體會掃描done的訊號,然後自動觸發索引重建。

重要

  • 要求done表至少有一個分區鍵,並且分區鍵名稱必須與資料表的分區鍵名稱一致,若資料表的分區鍵為ds,那麼done表的分區鍵也需要設定為ds;

  • done表只有一個string類型的欄位,欄位名必須為“attribute”;

  • done表添加的分區必須是資料表中存在的分區,若資料表的分區有、ds="20220114"、ds="20220115"、ds="20220116",那麼done表新加的分區也必須在資料表分區範圍內;

  • done表在插入資料時,attribute欄位值為字串類型的JSON串,如{"swift_start_timestamp":1642003200}該時間戳記表示追即時增量的開始位點;

編輯MaxCompute 資料來源

  1. 在資料來源配置介面,找到對應的資料來源,點擊右側操作欄中的“修改”按鈕:

image

  1. 進入編輯資料來源頁面對Project、accesskeyId、accesskeySecret、Table、分組鍵partition等資訊進行修改:

image

修改相應資訊後,點擊“校正”,校正通過後,點擊確定按鈕即可儲存修改。

  1. 資料來源修改後,需要更新配置並索引重建才可供線上叢集使用,詳情可參考配置更新

說明

建議分區設定到小時維度,比如yyyymmddhh,2022011314,這樣方便以後一天產出多個全量。

刪除MaxCompute資料來源

  1. 選擇資料來源配置,點擊刪除

image

  1. 點擊刪除後,會判斷當前資料來源是否被索引表引用:

  • 如果資料來源未被索引表引用時,點擊確定後,刪除當前資料來源;修改之後,需要推送配置,索引重建後才生效;

  • 如果資料來源被索引表引用時,直接刪除資料來源會有相應的報錯,如下圖:

image

需要先刪除資料來源被引用的索引表(刪除索引表),才能刪除該資料來源。

注意事項

  • 編輯資料來源時,不可修改資料來源名稱;

  • MaxCompute不支援外部表格,需要建立內部表;

  • MaxCompute的資料來源所配置的表需要是有分區的表;

  • 使用者在MaxCompute上產出的表作為全量輸入,使用API資料來源推送即時資料;