如果您需要對MaxCompute(ODPS)中的海量數據進行信息檢索、多維查詢、統計分析等操作,可借助阿里云Elasticsearch實現。本文通過DataWorks的數據集成服務,實現最快分鐘級,將海量MaxCompute數據離線同步到阿里云ES中。
背景信息
DataWorks是一個基于大數據引擎,集成數據開發、任務調度、數據管理等功能的全鏈路大數據開發治理平臺。您可以通過DataWorks的同步任務,快速的將各種數據源中的數據同步到阿里云ES。
支持同步的數據源包括:
阿里云云數據庫(MySQL、PostgreSQL、SQL Server、MongoDB、HBase)
阿里云PolarDB-X(原DRDS升級版)
阿里云MaxCompute
阿里云OSS
阿里云Tablestore
自建HDFS、Oracle、FTP、DB2及以上數據庫類型的自建版本
適用場景:
大數據離線同步到阿里云ES的場景,支持同步整個庫或同步某個表中的全部數據。更多信息,請參見整庫離線同步至Elasticsearch。
大數據在線實時同步到阿里云ES的場景,支持全量、增量一體化同步。更多信息,請參見一鍵實時同步至Elasticsearch。
前提條件
已創建MaxCompute項目。具體操作,請參見創建MaxCompute項目。
已創建阿里云ES實例,并開啟實例的自動創建索引功能。具體操作,請參見創建阿里云Elasticsearch實例和配置YML參數。
已創建DataWorks工作空間。具體操作,請參見創建工作空間。
僅支持將數據同步到阿里云ES,不支持自建Elasticsearch。
MaxCompute項目、ES實例和DataWorks工作空間所在地域需保持一致。
ES實例、MaxCompute和DataWorks工作空間需要創建在同一時區下,否則同步與時間相關的數據時,同步前后的數據可能存在時區差。
費用說明
ES實例費用,請參見ES計費項。
獨享數據集成資源組費用,請參見獨享數據集成資源組計費說明:包年包月。
操作步驟
步驟一:準備源數據
創建MaxCompute表并導入測試數據。具體操作,請參見創建表和導入數據。
本文使用的表結構和表數據如下所示:
表結構
部分表數據
步驟二:購買并配置獨享資源組
購買一個數據集成獨享資源組,并為該資源組綁定專有網絡和工作空間。獨享資源組可以保證數據快速、穩定地傳輸。
登錄DataWorks控制臺。
在頂部菜單欄選擇相應地域后,在左側導航欄單擊資源組。
在獨享資源組頁簽下,單擊創建舊版集成資源組。
在DataWorks獨享資源購買頁面,獨享資源類型選擇獨享數據集成資源,輸入資源組名稱,單擊立即購買,購買獨享資源組。
更多配置信息,請參見購買資源組。
在已創建的獨享資源組的操作列,單擊網絡設置,為該獨享資源組綁定專有網絡。具體操作,請參見綁定專有網絡。
說明本文以獨享數據集成資源組通過VPC內網同步數據為例。關于通過公網同步數據,請參見添加白名單。
獨享資源需要與Elasticsearch實例的專有網絡連通才能同步數據。因此需要綁定Elasticsearch實例所在的專有網絡、可用區和交換機。查看Elasticsearch實例所在的專有網絡、可用區和交換機,請參見查看Elasticsearch實例的基本信息。
重要綁定專有網絡后,您需要將專有網絡的交換機網段加入到Elasticsearch實例的VPC私網訪問白名單中。具體操作,請參見配置Elastic search實例公網或私網訪問白名單。
在頁面左上角,單擊返回圖標,返回資源組列表頁面。
在已創建的獨享資源組的操作列,單擊綁定工作空間,為該獨享資源組綁定目標工作空間。
具體操作,請參見綁定歸屬工作空間。
步驟三:添加數據源
將MaxCompute和Elasticsearch數據源接入DataWorks的數據集成服務中。
進入DataWorks的數據集成頁面。
登錄DataWorks控制臺。
在左側導航欄,單擊工作空間。
在目標工作空間的操作列,選擇
。
在左側導航欄,單擊數據源。
新增MaxCompute數據源。
在數據源列表頁面,單擊新增數據源。
在新增數據源頁面,搜索并選擇MaxCompute數據源。
在新增MaxCompute數據源對話框,在基礎信息區域配置數據源參數。
配置詳情,請參見配置MaxCompute數據源。
在連接配置區域,單擊測試連通性,連通狀態顯示為可連通時,表示連通成功。
單擊完成。
使用同樣的方式添加Elasticsearch數據源。配置詳情,請參見配置Elasticsearch數據源。
步驟四:配置并運行數據同步任務
數據同步任務將獨享資源組作為一個可以執行任務的資源,獨享資源組將獲取數據集成服務中數據源的數據,并將數據寫入Elasticsearch。
有兩種方式可以配置離線同步任務,文本以向導模式配置離線同步任務為例。您也可以通過腳本模式配置離線同步任務,詳情請參見通過腳本模式配置離線同步任務和Elasticsearch Writer。
進入DataWorks的數據開發頁面。
登錄DataWorks控制臺。
在左側導航欄,單擊工作空間。
在目標工作空間的操作列,選擇
。
新建一個離線同步任務。
在左側導航欄,單擊圖標,選擇
,新建一個業務流程。右鍵單擊新建的業務流程,選擇
。在新建節點對話框中,輸入節點名稱,單擊確認。
配置網絡與資源
在數據來源區域,數據來源選擇MaxCompute(ODPS),數據源名稱選擇待同步的數據源名稱。
在我的資源組區域,選擇獨享資源組。
在數據去向區域,數據去向選擇Elasticsearch,數據源名稱選擇待同步的數據源名稱。
單擊下一步。
配置任務。
在數據來源區域,選擇待同步的表。
在數據去向區域,配置數據去向的各參數。
在字段映射區域中,設置來源字段與目標字段的映射關系。
在通道控制區域,配置通道參數。
詳細配置信息,請參見通過向導模式配置離線同步任務。
運行任務。
(可選)配置任務調度屬性。在頁面右側,單擊調度配置,按照需求配置相應的調度參數。各配置的詳細說明,請參見調度配置。
在節點區域的右上角,單擊保存圖標,保存任務。
在節點區域的右上角,單擊提交圖標,提交任務。
如果您配置了任務調度屬性,任務會定期自動執行。您還可以在節點區域的右上角,單擊運行圖標,立即運行任務。
運行日志中出現
Shell run successfully!
表明任務運行成功。部分任務運行日志如下所示:2023-10-31 16:52:35 INFO Exit code of the Shell command 0 2023-10-31 16:52:35 INFO --- Invocation of Shell command completed --- 2023-10-31 16:52:35 INFO Shell run successfully! 2023-10-31 16:52:35 INFO Current task status: FINISH 2023-10-31 16:52:35 INFO Cost time is: 33.106s
步驟五:驗證數據同步結果
在Kibana控制臺中,查看同步成功的數據,并按條件查詢數據。
登錄目標阿里云Elasticsearch實例的Kibana控制臺。
具體操作,請參見登錄Kibana控制臺。
單擊Kibana頁面左上角的圖標,選擇Dev Tools(開發工具)。
在Console(控制臺)中,執行如下命令查看同步的數據。
POST /odps_index/_search?pretty { "query": { "match_all": {}} }
說明odps_index
為您在數據同步腳本中設置的index
字段的值。數據同步成功后,返回如下結果。
執行如下命令,搜索文檔中的
category
和brand
字段。POST /odps_index/_search?pretty { "query": { "match_all": {} }, "_source": ["category", "brand"] }
執行如下命令,搜索
category
為生鮮
的文檔。POST /odps_index/_search?pretty { "query": { "match": {"category":"生鮮"} } }
執行如下命令,按照
trans_num
字段對文檔進行排序。POST /odps_index/_search?pretty { "query": { "match_all": {} }, "sort": { "trans_num": { "order": "desc" } } }
更多命令和訪問方式,請參見Elastic.co官方幫助中心。