TableStore 爬蟲資料儲存和查詢利器

2021-09-11 23:12:54 字數 2981 閱讀 8880

在眾多大資料場景中,爬蟲型別的資料非常適合儲存在tablestore。主要是因為爬蟲型別資料的一些特徵和tablestore和匹配:

資料量大

寬行和稀疏列

查詢型別多樣

爬蟲資料的儲存後,一般有兩個出口,乙個是資料處理程式,資料處理程式會讀取最新的爬蟲資料,然後按照自定義的處理邏輯做資料加工,處理完後會新資料寫入原表或新錶。

資料處理完之後,資料可以提供給下游企業客戶或終端使用者使用了,場景的查詢需求有下列幾種:

當前業內的開源儲存系統有兩大類,一類是開源的關係型資料庫,比如mysql等,一類是nosql,比如hbase等。這兩類資料儲存系統都不能支援分詞查詢,那麼還需要乙個全文檢索的系統,當前可選的有solr和elasticsearch。

基於上述的素材,我們就可以搭建乙個儲存爬蟲的系統了:

大概解釋下:

訊息佇列的目的是削峰填谷,減少對下游系統:elasticsearch的壓力,同時當elasticsearch寫入慢或者出故障後,不至於影響上游系統,目的也是為了提高系統可用性,避免單點故障導致整個系統雪崩。

這個系統中,需要運維6個不同開源系統,運維壓力比較大。

最開始,我們說tablestore很適合儲存爬蟲資料,在介紹了開源系統的解決方案後,我們再來看一下tablestore的解決方案,以及相對於開源系統,可以為客戶帶來的收益。

也先看一下架構圖:

大概解釋下:

資料處理部分一般有兩種處理方式,一種是離線全量處理,這種可以使用阿里雲的maxcompute系統,maxcompute可以直讀tablestore的資料做計算,不需要額外把資料導過去。另一種是流式實時處理,tablestore提供了tunnelservice系統,可以獲取到實時的table中的資料更新記錄,然後將更新記錄傳送到函式計算、流式計算系統,或者自己的應用、flink等系統處理。

這個架構中,使用者只需要運維2個系統即可。

示例我們接下來舉乙個簡歷類爬蟲資料儲存和查詢的示例,幫忙讀者快速理解。

簡歷一般是乙個pdf文件或者doc文件,是乙個檔案,但是我們可以從這些檔案中抽取出結構化的資訊,比如姓名、**號碼、身份證、郵箱、畢業學校、學歷、專業領域、專案經驗、興趣、期望薪水和工作年限等。

首先,我們設計tablestore中主表結構:

主鍵列屬性列

屬性列屬性列

屬性列屬性列

屬性列屬性列

屬性列屬性列

身份證姓名

**號碼

郵箱畢業學校

學歷專業領域

專案經驗

興趣期望薪水

工作年限

string

string

string

string

string

string

string

string

string

long

double

61***5

王一152***7

[email protected]

mit碩士

[資料庫,mysql]

1.資料庫binlog優化。

[足球]

20000

3.5大概解釋下:

然後,我們再建立多元索引,多元索引的結構如下:

屬性列屬性列

屬性列屬性列

屬性列屬性列

屬性列屬性列

屬性列姓名

**號碼

畢業學校

學歷專業領域

專案經驗

興趣期望薪水

工作年限

text:單字分詞

keyword

keyword

keyword

keyword array

text:多層語義

keyword array

long

double

解釋下:

至此,我們就把簡歷庫的table和index都建好了,使用者就可以往table中開始寫資料,資料寫入後會非同步同步到index中,這樣就可以通過index查詢了。

使用tablestore解決方案後,相對於開源解決方案,可以帶來不少的收益:

減少運維負擔

使用開源系統的架構中,需要運維6個系統,包括了3個開源系統:hbase、kafka和elasticsearch,為了運維這三個開源系統,需要有人對這三個系統比較熟悉,否則很難運維好。就算比較熟悉,也很難處理線上遇到的所有的問題,總會碰到無法解決的棘手問題而影響生產環境。

如果使用了tablestore雲解決方案,那麼就不需要運維任何開源系統,只需要運維自己開發的兩個系統,同時關注tablestore中的兩個表就可以了,這兩張表的運維全部是tablestore服務負責,且提供sla保障,絕對比自己運維開源系統的可用性要高。

同時,採用tablestore方案後,由於tablestore支援實時自動擴容,客戶不再需要提前規劃水位和集群容量,也不用擔心高水位和突發流量對系統的衝擊,將這些工作都交給了更擅長的雲服務處理。

這樣,不僅降低了運維的工作量和壓力,同時也降低了系統風險,提高了系統整體的可用性。

減少時間成本

tablestore雲架構方案相對於開源方案,系統更少,從零開始到上線需要的開發時間更少,同時,tablestore是serverless的雲服務,全球多個區域即開即用,可以大大降低客戶的開發上線的時間,提前將產品推出,搶先爭取市場領先優勢。

同時,tablestore支援按量付費,使用者完全可以根據真實使用量付費,不再需要擔心低峰期系統資源的浪費了,一定程度上,也能降低使用成本。

目前,已經有不少行業的客戶在使用tablestore儲存爬蟲資料,比如資訊類、生活類、文章類等等,也有部分使用者在小資料量級時使用mysql等關係型資料庫,等資料規模大了後被迫遷移到tablestore儲存。同時歡迎更多的客戶開始使用tablestore儲存你們的爬蟲資料。

TableStore 爬蟲資料儲存和查詢利器

在眾多大資料場景中,爬蟲型別的資料非常適合儲存在tablestore。主要是因為爬蟲型別資料的一些特徵和tablestore和匹配 資料量大 寬行和稀疏列 查詢型別多樣 爬蟲資料的儲存後,一般有兩個出口,乙個是資料處理程式,資料處理程式會讀取最新的爬蟲資料,然後按照自定義的處理邏輯做資料加工,處理完...

沃保網爬蟲(二) 爬蟲資料儲存MySQL 建表

沃保網爬的每乙個 人資料,最後以字典形式儲存 這樣的鍵值對結構,具體通過desc 表名 可以檢視表結構,我們建好表結構後,就可以通過按照字典的鍵值對儲存在表對應的字段中,紅框標出的是表結構的欄位名稱,下面我會講如何建立這個結構的表 照顧不懂mysql資料庫的同學,我會從連線資料庫,建立資料庫,建立表...

TableStore 使用者畫像資料的儲存和查詢利器

使用者畫像資料是一種資料規模較大 資料結構複雜 查詢種類多的資料,是公司差異化運營的基礎,是打造 千人千面 智慧型化的核心資料,幫產品找到最佳目標客戶,對各種產品而言是一種很有價值的資料。我們接下來先看一下使用者畫像資料的場景和特徵,僅以儲存和查詢的角度看一下使用者畫像資料的儲存選擇。使用者畫像的資...