TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄-創(chuàng)新互聯(lián)

這篇文章主要介紹“TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄”,在日常操作中,相信很多人在TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)公司從2013年開始,先為港北等服務(wù)建站,港北等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為港北企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、方案背景

軌跡管理系統(tǒng)日常生活中使用非常普遍,如外賣派送軌跡、快遞物流流轉(zhuǎn)、車輛定位軌跡等。該場景與地理位置管理類似,核心點(diǎn)與瓶頸都在數(shù)據(jù)庫的存儲性能與查詢能力,同時(shí)需要時(shí)間字段正序排列,保證軌跡點(diǎn)順序;一方面,存儲服務(wù)需要應(yīng)對海量數(shù)據(jù)的低延遲存、讀,另一方面,存儲服務(wù)也要提供高效的多維度數(shù)據(jù)檢索與排序。表格存儲(TableStore)對于軌跡管理場景,依然可以勝任,完全具備實(shí)現(xiàn)軌跡管理系統(tǒng)的能力。
不妨來體驗(yàn)一下基于TableStore打造的【億量級摩托車管理系統(tǒng)】樣例

需求場景

某城市市區(qū)出于安全考慮,限制摩托車進(jìn)入一定的區(qū)域范圍。某摩托車租賃公司,為了更好管理所轄摩托車的違章問題,對自己所轄摩托車安裝定位系統(tǒng),定時(shí)采集摩托車位置。摩托車租賃公司,可以通過軌跡管理平臺,查詢統(tǒng)計(jì)違章情況,也可作為依據(jù),提醒違章的租賃用戶,過多違章拉入黑名單;
查詢場景:【2018年11月01日】編號【id00001】的摩托車行駛軌跡與違章情況查詢;

樣例如下:
注:該樣例提供了【億量級】軌跡數(shù)據(jù)。官網(wǎng)控制臺地址:項(xiàng)目樣例

樣例內(nèi)嵌在表格存儲控制臺中,用戶可登錄控制臺體驗(yàn)系統(tǒng)(若為表格存儲的新用戶,需要點(diǎn)擊開通服務(wù)后體驗(yàn),開通免費(fèi),訂單數(shù)據(jù)存儲在公共實(shí)例中,體驗(yàn)不消耗用戶存儲、流量、Cu)。

表格存儲(TableStore)方案

采用表格存儲(TableStore)輕松搭建一套:億量級摩托車管理系統(tǒng)。多元索引功能提供GEO檢索、多維查詢的能力,通過對時(shí)間的排序獲取追蹤設(shè)備的軌跡。同時(shí),用戶可隨時(shí)創(chuàng)建索引然后完成自動同步,不用擔(dān)心存量數(shù)據(jù)問題。
TableStore作為阿里云提供的一款全托管、零運(yùn)維的分布式NoSql型數(shù)據(jù)存儲服務(wù),具有【海量數(shù)據(jù)存儲】、【熱點(diǎn)數(shù)據(jù)自動分片】、【海量數(shù)據(jù)多維檢索】等功能,有效的地解決了GEO數(shù)據(jù)量大膨脹這一挑戰(zhàn);
SearchIndex功能在保證用戶數(shù)據(jù)高可用的基礎(chǔ)上,提供了數(shù)據(jù)多維度搜索、排序等能力。針對多種場景創(chuàng)建多種索引,實(shí)現(xiàn)多種模式的檢索。用戶可以僅在需要的時(shí)候創(chuàng)建、開通索引。由TableStore來保證數(shù)據(jù)同步的一致性,這極大的降低了用戶的方案設(shè)計(jì)、服務(wù)運(yùn)維、代碼開發(fā)等工作量。

二、搭建準(zhǔn)備

若您對于基于TableStore實(shí)現(xiàn)的【億量級摩托車管理系統(tǒng)】體驗(yàn)不錯,并希望開始自己系統(tǒng)的搭建之旅,只需按照如下步驟便可以著手搭建了:

1、開通表格存儲

通過控制臺開通表格存儲服務(wù),表格存儲即開即用(后付費(fèi)),采用按量付費(fèi)方式,已為用戶提供足夠功能測試的免費(fèi)額度。 表格存儲官網(wǎng)控制臺 、 免費(fèi)額度說明 。

2、創(chuàng)建實(shí)例

通過控制臺創(chuàng)建表格存儲實(shí)例,選擇支持多元索引的Region。(當(dāng)前階段SearchIndex功能尚未商業(yè)化,暫時(shí)開放北京,上海,杭州和深圳四地,其余地區(qū)將逐漸開放)

TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄

創(chuàng)建實(shí)例后,提交工單申請多元索引功能邀測(商業(yè)化后默認(rèn)打開,不使用不收費(fèi))。

  • 邀測地址: 提工單 ,選擇【表格存儲】>【產(chǎn)品功能、特性咨詢】>【創(chuàng)建工單】,申請內(nèi)容如下:

  • 問題描述:請?zhí)顚憽旧暾圫earchIndex邀測】

  • 機(jī)密信息:請?zhí)顚憽镜赜?實(shí)例名】,例:上海+myInstanceName

TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄

3、SDK下載

使用具有多元索引(SearchIndex)的SDK, 官網(wǎng)地址 ,暫時(shí)java、go、node.js三種SDK增加了新功能

java-SDK
<dependency>
    <groupId>com.aliyun.openservices</groupId>
    <artifactId>tablestore</artifactId>
    <version>4.7.4</version></dependency>
go-SDK
$ go get github.com/aliyun/aliyun-tablestore-go-sdk

4、表設(shè)計(jì)

店鋪檢索系統(tǒng)樣例,僅簡易使用一張店鋪表,主要包含字段:店鋪類型、店鋪名稱、店鋪地理位置、店鋪平均評分、人均消費(fèi)消等。表設(shè)計(jì)如下:
表名:geo_track

列名數(shù)據(jù)類型索引類型字段說明
_id(主鍵列)String
MD5(mId + timestamp)避免熱點(diǎn)
mIdStirng
摩托車編號
timestamplongLONG時(shí)間點(diǎn)(毫秒時(shí)間戳)
posStringGEO_POINT車輛位置:"30.132,120.082"(緯度,精度)
............

三、開始搭建(核心代碼)

1、創(chuàng)建數(shù)據(jù)表

用戶僅需在完成邀測的實(shí)例下創(chuàng)建“摩托車軌跡表”:通過控制臺創(chuàng)建、管理數(shù)據(jù)表(用戶也可以通過SDK直接創(chuàng)建):其他表如租賃用戶表、摩托車信息表等,根據(jù)需求創(chuàng)建:這里僅展示軌跡表,表名:geo_track

TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄

2、創(chuàng)建數(shù)據(jù)表索引

TableStore自動做全量、增量的索引數(shù)據(jù)同步:用戶可以通過控制臺創(chuàng)建索引、管理索引(也可以通過SDK創(chuàng)建索引)

TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄

TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄

3、數(shù)據(jù)導(dǎo)入

插入部分測試數(shù)據(jù)(控制臺樣例中插入了1.08億條(1萬輛摩托70天24小時(shí)*6個"10分鐘點(diǎn)")數(shù)據(jù),用戶自己可以通過控制臺插入少量測試數(shù)據(jù));

TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄

表名:geo_track

摩托車編號軌跡點(diǎn)md5(mId + timestamp)(主鍵)時(shí)間店鋪位置
id00001f50d55bec347253c24dc9144dff3e3b7154110360000030.30094,120.01278

表名:moto_user

摩托車編號(主鍵)摩托車顏色摩托車品牌摩托車租賃用戶
id00001銀灰色H牌摩托車楊六

4、數(shù)據(jù)讀取

數(shù)據(jù)讀取分為兩類:

主鍵讀取(摩托車信息查詢)

基于原生表格存儲的主鍵列獲?。篻etRow, getRange, batchGetRow等。主鍵讀取用于索引(自動)反查,用戶也可以提供主鍵(摩托車編號)單條查詢的頁面,查詢速度極快。單主鍵查詢方式不支持多維度檢索;

索引讀?。ㄜ壽E信息查詢)

基于新SearchIndex功能Query:search接口。用戶可以自由設(shè)計(jì)索引字段的多維度條件組合查詢。通過設(shè)置選擇不同的查詢參數(shù),構(gòu)建不同的查詢條件、不同排序方式;目前支持:精確查詢、范圍查詢、前綴查詢、匹配查詢、通配符查詢、短語匹配查詢、分詞字符串查詢,并通過布爾與、或組合。
如【2018年11月01日,id00001號摩托車,行駛軌跡及違章查詢】Query條件如下:

List<Query> mustQueries = new ArrayList<Query>();
List<String> polygonList = Arrays.asList(//地理圍欄,禁摩區(qū)域
    "30.262348,120.092127",    "30.311668,120.079761",    "30.332413,120.129371",
    ...
);
String mId = "id00001";
Long timeStart = [2018-11-01時(shí)間戳];
Long timeEnd = [2018-11-02時(shí)間戳];
GeoPolygonQuery geoPolygonQuery = new GeoPolygonQuery();
geoPolygonQuery.setPoints(polygonList);
geoPolygonQuery.setFieldName("pos");
mustQueries.add(geoPolygonQuery);
TermQuery termQuery = new TermQuery();
termQuery.setFieldName("mId");
termQuery.setTerm(ColumnValue.fromString(request.getmId()));
mustQueries.add(termQuery);
RangeQuery rangeQuery = new RangeQuery();
rangeQuery.setFieldName("timestamp");
rangeQuery.setFrom(ColumnValue.fromDouble(timeStart, true);
rangeQuery.setTo(ColumnValue.fromDouble(timeEnd, false);
mustQueries.add(rangeQuery);
BoolQuery boolQuery = new BoolQuery();
boolQuery.setMustQueries(mustQueries);

到此,關(guān)于“TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享名稱:TableStore怎么實(shí)現(xiàn)軌跡管理與地理圍欄-創(chuàng)新互聯(lián)
文章起源:http://bm7419.com/article40/cdigeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、定制開發(fā)網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名