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