本文字數:2421
閱讀時間:5~8分鐘
以下是正文
阿裡雲Elasticsearch擁有強大的搜尋分析能力,最快可達5分鐘/次。如何讓你的阿裡雲雲存儲、雲資料庫産品瞬間擁有資料分析和搜尋能力?那麼這篇文章将會給你答案。
說明 做資料同步時可能會産生公網流量費用,請您知曉。
準備工作
完成離線資料的分析與搜尋,您需要完成以下幾步操作:
- 步驟一:建立和檢視表 ,并 步驟二:導入資料 。實際情況中,您可以 将Hadoop資料遷移MaxCompute最佳實踐再進行同步 ,本案例使用的表結構和部分資料如下:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。
- 建立一個阿裡雲Elasticsearch執行個體,用來存儲資料內建系統同步成功的資料。
- 購買一台與阿裡雲Elasticsearch相同VPC的阿裡雲ECS,這台ECS将擷取資料源資料并執行寫阿裡雲Elasticsearch資料的任務(該任務将由資料內建系統統一下發)。
- 開通DataWorks資料內建服務,并且将ECS作為一個可以執行任務的資源,注冊到資料內建服務中去。
- 配置一個資料同步腳本,并讓其周期性執行
操作步驟
- 建立阿裡雲Elasticsearch和ECS執行個體
- 搭建IPv4專有網絡 ,本案例建立了一個位于華東1區,名稱為es_test_vpc的專有網絡,對應的交換機名稱為es_test_switch。
- 進入 阿裡雲Elasticsearch控制台 ,建立一個阿裡雲Elasticsearch執行個體。
說明 地域、 專有網絡、 虛拟交換機與您第一步中建立的專有網絡保持一緻。
- 購買一台與阿裡雲Elasticsearch執行個體處于同一個VPC内的ECS伺服器,并配置設定一個公網IP或開通彈性IP,為了節省您的成本,您可以複用已有且符合條件的ECS伺服器。
本案例建立了一個位于華東1,可用區F的ECS執行個體,使用CentOS 7.4 64位系統,并勾選配置設定公網位址,網絡配置如下:
說明
1、建議使用CentOS 6、CentOS 7 或者 Aliyun Linux。
2、如果您添加的ECS需要執行MaxCompute任務或者同步任務,需要檢查目前ECS的python版本是否是python2.6或2.7 的版本(CentOS 5 的版本為2.4,其餘CentOS自帶了2.6以上版本)。
3、請確定 ECS 有公網 IP。
- 配置資料同步
a.進入
DataWorks控制台建立項目,本案例使用名稱為bigdata_DOC的DataWorks項目。
- 如果您已經開通過DataWorks資料內建産品,您将會看到如下頁面:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - 如果您未開通過DataWorks資料內建産品,将會看到如下頁面。您需要按照步驟開通資料內建服務,此開通動作會産生費用,請您按照費用提示進行預算評估。
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。
- 單擊DataWorks項目下方的進入資料內建。
- 建立資源組。
-
在資料內建頁面,選擇左側導航欄中的資源組,單擊新增資源組。
1、按照以下步驟,完成資源組的添加:
建立資源組:自定義輸入資源組名稱,本案例的資源組名稱為es_test_resource。
2、添加伺服器
- ECS UUID: 步驟 3:連接配接ECS執行個體 伺服器,執行
js`
- | grep UUID
,
`
取傳回值。
-
機器 IP/機器CPU(核)/機器記憶體(GB):ECS執行個體的公網IP/CPU/記憶體。進入ECS控制台,單擊執行個體名稱連結,在配置資訊子產品,可以找到相關資訊。
3、 安裝Agent:按照界面提示,完成安裝Agent步驟。由于本案例使用的是VPC網絡,不需要開通伺服器的8000端口。
4、 檢查聯通:聯通成功後,狀态會顯示為可用。如果狀态為不可用,您可以登入該ECS伺服器,使用
`
tail -f /home/admin/alisatasknode/logs/heartbeat.log
命
`
令檢視DataWorks與該ECS伺服器之間心跳封包是否逾時。
- 添加資料源。
- 在資料內建頁面,選擇左側導航欄中的資料源,單擊新增資料源。
- 選擇資料源類型為MaxCompute
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - 輸入資料源資訊,本案例建立的資料源名稱為odps_es,如下所示。
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。
- ODPS空間名稱:在DataWorks的資料開發頁面,表對應的空間名稱顯示在左上角圖示右側,如下圖所示:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - Access Id/ Access Key:滑鼠移至您的使用者名稱上,選擇 使用者資訊,如下圖所示:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。
在 個人資訊頁面,滑鼠移至您的使用者頭像上,單擊 accesskeys進行擷取,如下圖所示:
e.配置同步任務。
- 在資料開發頁面,單擊左側菜單欄中的資料開發,打開業務流程導航欄:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - 右鍵單擊導航欄中的資料內建,選擇建立資料內建節點 > 同步節點,輸入同步任務名稱:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - 成功建立同步節點後,單擊建立同步節點右上角的轉換腳本,選擇确認即可進入腳本模式:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - 單擊腳本模式右上角的導入模闆,在彈框中分别選擇讀取端的來源類型和資料源、寫入端的目标類型和資料源,單擊确認生成初始腳本:
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。 - 配置資料同步腳本,具體配置請參考 腳本模式配置 ,Elasticsearch的配置規則請參考配置Elasticsearch Writer。
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。
1、同步腳本的配置分為三個部分,Reader用來配置您上遊資料源(待同步資料的雲産品)的config,Writer用來配置阿裡雲Elasticsearch的config,setting用來配置同步中的一些丢包和最大并發等。
2、endpoint為阿裡雲Elasticsearch的内網或外網位址,本案例使用内網位址,是以不用配置白名單。如果您是用的是外網位址,請在阿裡雲Elasticsearch的網絡配置頁面,配置阿裡雲Elasticsearch的公網位址通路白名單(包括
DataWorks伺服器的IP位址和您所使用的資源組的IP位址)。
3、Elasticsearch Writer中accessId和accessKey需要配置您的阿裡雲Elasticsearch的通路使用者名(預設為elastic)和密碼。
4、index為阿裡雲Elasticsearch執行個體的索引,您需要使用該索引名稱通路阿裡雲Elasticsearch的資料。本案例中的index名為es_index。
5、如果您的ODPS表是一個分區表,需要在partition字段中設定分區資訊,本案例中的分區資訊為**pt=1。
**
配置代碼示例如下
{
"configuration": {
"reader": {
"plugin": "odps",
"parameter": {
"partition": "pt=1",
"datasource": "odps_es",
"column": [
"create_time",
"category",
"brand",
"buyer_id",
"trans_num",
"trans_amount",
"click_cnt"
],
"table": "hive_doc_good_sale"
}
},
"writer": {
"plugin": "elasticsearch",
"parameter": {
"accessId": "elastic",
"endpoint": "http://es-cn-mpXXXXXXX.elasticsearch.aliyuncs.com:9200",
"indexType": "elasticsearch",
"accessKey": "XXXXXX",
"cleanup": true,
"discovery": false,
"column": [
{
"name": "create_time",
"type": "string"
},
{
"name": "category",
"type": "string"
},
{
"name": "brand",
"type": "string"
},
{
"name": "buyer_id",
"type": "string"
},
{
"name": "trans_num",
"type": "long"
},
{
"name": "trans_amount",
"type": "double"
},
{
"name": "click_cnt",
"type": "long"
}
],
"index": "es_index",
"batchSize": 1000,
"splitter": ","
}
},
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": false,
"concurrent": 1,
"mbps": "1",
"dmu": 1
}
}
},
"type": "job",
"version": "1.0"
}
- 同步腳本配置完成後,單擊運作,将ODPS中的資料同步到阿裡雲Elasticsearch中。
【最佳實踐】這樣運用阿裡雲Elasticsearch,讓你的資料庫馬上擁有強大的資料分析和搜尋能力。
e.結果驗證
- 進入阿裡雲Elasticsearch控制台,單擊右上角的kibana控制台,選擇Dev Tools。
- 執行如下指令,檢視資料是否已經同步到ES中。
POST /es_index/_search?pretty
{
"query": { "match_all": {}}
}
es_index為您同步資料時,設定的index字段的值。
如果資料同步成功,會顯示以下界面:
- 執行如下指令,按照trans_num字段對文檔進行排序。
POST /es_index/_search?pretty
{
"query": { "match_all": {} },
"sort": { "trans_num": { "order": "desc" } }
}
- 執行如下指令,搜尋文檔中的category和brand字段。
POST /es_index/_search?pretty
{
"query": { "match_all": {} },
"_source": ["category", "brand"]
}
- 執行如下指令,搜尋category為生鮮的文檔。
POST /es_index/_search?pretty
{
"query": { "match": {"category":"生鮮"} }
}
更多指令和通路方式,請參考
ES通路測試和
Elastic.co官方幫助中心。
常見問題
無法連通阿裡雲ES執行個體相關報錯
一、檢查在運作同步腳本之前,是否在頁面右側的配置任務資源組中選擇了您前面步驟建立的資源組。
- 是,執行下一步。
- 否,單擊頁面右側的配置任務資源組,選擇您前面步驟建立的資源組,完成後單擊運作。
二、檢查您的同步腳本配置是否正确,包括endpoint(您的阿裡雲Elasticsearch執行個體的内網或外網位址,使用外網位址需要配置公網位址通路白名單)、accessId(阿裡雲Elasticsearch執行個體的通路使用者名,預設為elastic)和accessKey(阿裡雲Elasticsearch執行個體的通路密碼)。
相關活動:
限時折扣截止--11/29
- 新購,首月75折
- 新購/續購/更新,預購6個月85折
- 新購/續購/更新,預購12個月8折
點選下方産品連結購買Elaticsearch
提供100%相容開源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商業功能,緻力于資料分析、資料搜尋等場景服務。與開源社群背後商業公司Elastic戰略合作,為客戶提供企業級權限管控、安全監控告警、自動報表生成等場景服務。