本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種查詢DMP(Data-Management Platform,數(shù)據(jù)管理平臺(tái))的方法及裝置。
背景技術(shù):
DMP是把分散的多方數(shù)據(jù)進(jìn)行整合納入統(tǒng)一的技術(shù)平臺(tái),并對(duì)這些數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化和細(xì)分,用戶可以從DMP中查詢所需要的數(shù)據(jù)。
現(xiàn)有技術(shù)中,在查詢DMP時(shí),需要與待查詢的DMP建立連接,向該待查詢的DMP輸入搜索詞,通過(guò)搜索詞從該DMP中查詢對(duì)應(yīng)的數(shù)據(jù)。當(dāng)需要查詢兩個(gè)以上的DMP中的數(shù)據(jù)時(shí),需要分別與每個(gè)DMP建立連接,并分別向每個(gè)DMP中輸入對(duì)應(yīng)的搜索詞。
通過(guò)上述描述可見(jiàn),現(xiàn)有技術(shù)中的查詢DMP的方案中,當(dāng)需要查詢兩個(gè)以上的DMP中的數(shù)據(jù)時(shí),需要分別對(duì)每個(gè)DMP進(jìn)行單獨(dú)查詢,比較復(fù)雜。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種查詢DMP的方法及裝置,能夠更加方便地查詢DMP。
一方面,本發(fā)明實(shí)施例提供了一種查詢DMP的方法,包括:
接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件;
根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件;
針對(duì)每個(gè)所述待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢所述當(dāng)前待查詢DMP;
接收每個(gè)所述待查詢DMP返回的查詢結(jié)果。
進(jìn)一步地,所述查詢條件中包括:回寫(xiě)字段,所述回寫(xiě)字段中包括:每個(gè)所述待查詢DMP的標(biāo)識(shí);
在所述接收每個(gè)所述待查詢DMP返回的查詢結(jié)果之后,進(jìn)一步包括:
根據(jù)所述回寫(xiě)字段,通過(guò)每個(gè)所述查詢結(jié)果對(duì)應(yīng)的所述待查詢DMP的標(biāo)識(shí)來(lái)標(biāo)記每個(gè)所述查詢結(jié)果。
進(jìn)一步地,所述查詢條件中包括:緩存字段,所述緩存字段中包括:目標(biāo)緩存信息;
在所述接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件之前,進(jìn)一步包括:
預(yù)先建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系;
所述根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件,包括:
從所述查詢條件的所述緩存字段中解析出所述目標(biāo)緩存信息;
判斷所述對(duì)應(yīng)關(guān)系中是否存在所述目標(biāo)緩存信息,如果是,根據(jù)所述對(duì)應(yīng)關(guān)系,確定所述目標(biāo)緩存信息對(duì)應(yīng)的至少一個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件。
進(jìn)一步地,在所述接收每個(gè)所述待查詢DMP返回的查詢結(jié)果之后,進(jìn)一步包括:
將每個(gè)所述待查詢DMP返回的所述查詢結(jié)果轉(zhuǎn)換成預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù)。
進(jìn)一步地,在所述針對(duì)每個(gè)所述待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢所述當(dāng)前待查詢DMP之前,進(jìn)一步包括:
分別建立與每個(gè)所述待查詢DMP的長(zhǎng)連接,以分別通過(guò)每個(gè)所述長(zhǎng)連接與對(duì)應(yīng)的所述待查詢DMP進(jìn)行通信。
進(jìn)一步地,所述子查詢條件包括:關(guān)鍵字;
其中,所述關(guān)鍵字包括:os(Operating System,操作系統(tǒng))、IMEI(International Mobile Equipment Identity,國(guó)際移動(dòng)設(shè)備身份碼)、IDFA(IdentifierForIdentifier,廣告標(biāo)示符)、Android ID(安卓標(biāo)識(shí)碼)、MAC(Medium Access Control,物理地址)、IP和cookie中的一個(gè)或多個(gè)。
進(jìn)一步地,所述查詢條件中包括:每個(gè)所述待查詢DMP對(duì)應(yīng)的條件字段,其中,針對(duì)每個(gè)所述待查詢DMP,所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段用于保存所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件;
所述根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件,包括:
針對(duì)每個(gè)所述待查詢DMP,從所述查詢條件的所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段獲取所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件。
另一方面,本發(fā)明實(shí)施例提供了一種查詢DMP的裝置,包括:
第一接收單元,用于接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件;
確定單元,用于根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件;
查詢單元,用于針對(duì)每個(gè)所述待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢所述當(dāng)前待查詢DMP;
第二接收單元,用于接收每個(gè)所述待查詢DMP返回的查詢結(jié)果。
進(jìn)一步地,所述查詢條件中包括:回寫(xiě)字段,所述回寫(xiě)字段中包括:每個(gè)所述待查詢DMP的標(biāo)識(shí);
該裝置進(jìn)一步包括:
標(biāo)識(shí)單元,用于根據(jù)所述回寫(xiě)字段,通過(guò)每個(gè)所述查詢結(jié)果對(duì)應(yīng)的所述待查詢DMP的標(biāo)識(shí)來(lái)標(biāo)記每個(gè)所述查詢結(jié)果。
進(jìn)一步地,所述查詢條件中包括:緩存字段,所述緩存字段中包括:目標(biāo)緩存信息;
該裝置進(jìn)一步包括:
第一建立單元,用于建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系;
所述確定單元,用于從所述查詢條件的所述緩存字段中解析出所述目標(biāo)緩存信息,判斷所述對(duì)應(yīng)關(guān)系中是否存在所述目標(biāo)緩存信息,如果是,根據(jù)所述對(duì)應(yīng)關(guān)系,確定所述目標(biāo)緩存信息對(duì)應(yīng)的至少一個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件。
進(jìn)一步地,該裝置進(jìn)一步包括:
轉(zhuǎn)換單元,用于將每個(gè)所述待查詢DMP返回的所述查詢結(jié)果轉(zhuǎn)換成預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù)。
進(jìn)一步地,該裝置進(jìn)一步包括:
第二建立單元,用于分別建立與每個(gè)所述待查詢DMP的長(zhǎng)連接,以分別通過(guò)每個(gè)所述長(zhǎng)連接與對(duì)應(yīng)的所述待查詢DMP進(jìn)行通信。
進(jìn)一步地,所述子查詢條件包括:關(guān)鍵字;
其中,所述關(guān)鍵字包括:os、IMEI、IDFA、Android ID、MAC、IP和cookie中的一個(gè)或多個(gè)。
進(jìn)一步地,所述查詢條件中包括:每個(gè)所述待查詢DMP對(duì)應(yīng)的條件字段,其中,針對(duì)每個(gè)所述待查詢DMP,所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段用于保存所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件;
所述確定單元,用于針對(duì)每個(gè)所述待查詢DMP,從所述查詢條件的所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段獲取所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件。
在本發(fā)明實(shí)施例中,用戶輸入查詢條件,從該查詢條件中確定出每個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件,分別對(duì)每個(gè)待查詢DMP進(jìn)行查詢,接收每個(gè)待查詢DMP返回的查詢結(jié)果,用戶通過(guò)一個(gè)查詢條件可以同時(shí)對(duì)多個(gè)DMP進(jìn)行查詢,無(wú)需分別對(duì)每個(gè)DMP進(jìn)行操作,能夠更加方便地查詢DMP。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實(shí)施例提供的一種查詢DMP的方法的流程圖;
圖2是本發(fā)明一實(shí)施例提供的另一種查詢DMP的方法的流程圖;
圖3是本發(fā)明一實(shí)施例提供的又一種查詢DMP的方法的流程圖;
圖4是本發(fā)明一實(shí)施例提供的再一種查詢DMP的方法的流程圖;
圖5是本發(fā)明一實(shí)施例提供的一種查詢DMP的裝置的示意圖;
圖6是本發(fā)明一實(shí)施例提供的另一種查詢DMP的裝置的示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種查詢DMP的方法,該方法可以包括以下步驟:
步驟101:接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件;
步驟102:根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件;
步驟103:針對(duì)每個(gè)所述待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢所述當(dāng)前待查詢DMP;
步驟104:接收每個(gè)所述待查詢DMP返回的查詢結(jié)果。
在本發(fā)明實(shí)施例中,用戶輸入查詢條件,從該查詢條件中確定出每個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件,分別對(duì)每個(gè)待查詢DMP進(jìn)行查詢,接收每個(gè)待查詢DMP返回的查詢結(jié)果,用戶通過(guò)一個(gè)查詢條件可以同時(shí)對(duì)多個(gè)DMP進(jìn)行查詢,無(wú)需分別對(duì)每個(gè)DMP進(jìn)行操作,能夠更加方便地查詢DMP。
為了更加準(zhǔn)確地區(qū)分查詢結(jié)果的來(lái)源,在本發(fā)明一實(shí)施例中,所述查詢條件中包括:回寫(xiě)字段,所述回寫(xiě)字段中包括:每個(gè)所述待查詢DMP的標(biāo)識(shí);
在所述接收每個(gè)所述待查詢DMP返回的查詢結(jié)果之后,進(jìn)一步包括:
根據(jù)所述回寫(xiě)字段,通過(guò)每個(gè)所述查詢結(jié)果對(duì)應(yīng)的所述待查詢DMP的標(biāo)識(shí)來(lái)標(biāo)記每個(gè)所述查詢結(jié)果。
由于各個(gè)待查詢DMP返回的查詢結(jié)果是無(wú)序的,在本發(fā)明實(shí)施例中,通過(guò)回寫(xiě)字段中的標(biāo)識(shí)可以對(duì)這些查詢結(jié)果進(jìn)行標(biāo)記,可以通過(guò)這些標(biāo)記對(duì)這些查詢結(jié)果進(jìn)行排序,使得用戶可以區(qū)分出各個(gè)查詢結(jié)果的來(lái)源。這里的回寫(xiě)字段可以是用戶根據(jù)需要填寫(xiě)的,也就是說(shuō),回寫(xiě)字段中的待查詢DMP的標(biāo)識(shí)可以是在輸入查詢條件時(shí)自定義的,當(dāng)然,該回寫(xiě)字段也可以是預(yù)先設(shè)置的。舉例來(lái)說(shuō),待查詢DMP有三個(gè),分別是DMP1、DMP2和DMP3,在回寫(xiě)字段中,這三個(gè)待查詢DMP的標(biāo)識(shí)分別為標(biāo)識(shí)A、標(biāo)識(shí)B和標(biāo)識(shí)C;這三個(gè)待查詢DMP返回的查詢結(jié)果分別是:查詢結(jié)果A、查詢結(jié)果B和查詢結(jié)果C。在接收到這三個(gè)查詢結(jié)果后,根據(jù)回寫(xiě)字段,通過(guò)標(biāo)識(shí)A標(biāo)記查詢結(jié)果A,通過(guò)標(biāo)識(shí)B標(biāo)記查詢結(jié)果B,通過(guò)標(biāo)識(shí)C標(biāo)記查詢結(jié)果C,這樣,用戶可以通過(guò)這三個(gè)標(biāo)記,識(shí)別出每個(gè)查詢結(jié)果來(lái)自哪個(gè)DMP。
為了更加方便地查詢DMP,在本發(fā)明一實(shí)施例中,所述查詢條件中包括:緩存字段,所述緩存字段中包括:目標(biāo)緩存信息;
在所述接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件之前,進(jìn)一步包括:
預(yù)先建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系;
所述根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件,包括:
從所述查詢條件的所述緩存字段中解析出所述目標(biāo)緩存信息;
判斷所述對(duì)應(yīng)關(guān)系中是否存在所述目標(biāo)緩存信息,如果是,根據(jù)所述對(duì)應(yīng)關(guān)系,確定所述目標(biāo)緩存信息對(duì)應(yīng)的至少一個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件。
在本發(fā)明實(shí)施例中,在該對(duì)應(yīng)關(guān)系中,每個(gè)緩存信息可以對(duì)應(yīng)兩個(gè)以上的DMP對(duì)應(yīng)的子查詢條件,通過(guò)該緩沖字段中的目標(biāo)緩存信息可以同時(shí)對(duì)多個(gè)待查詢DMP進(jìn)行查詢,無(wú)需分別針對(duì)不同的待查詢DMP設(shè)置子查詢條件,能夠更加方便地查詢DMP。
舉例來(lái)說(shuō),在對(duì)應(yīng)關(guān)系中,緩存信息A對(duì)應(yīng)DMP1對(duì)應(yīng)的子查詢條件A和DMP2對(duì)應(yīng)的子查詢條件B,用戶在輸入查詢條件時(shí),在緩存字段中填入緩存信息A可以同時(shí)對(duì)DMP1和DMP2進(jìn)行查找,相應(yīng)的子查詢條件分別是子查詢條件A和子查詢條件B。當(dāng)然如果目標(biāo)緩存信息在對(duì)應(yīng)關(guān)系中找不到對(duì)應(yīng)的子查詢條件,那么,直接返回?zé)o子查詢條件的狀態(tài)碼,結(jié)束查詢流程。通過(guò)該對(duì)應(yīng)關(guān)系,可以輸出待查詢DMP能夠識(shí)別的子查詢條件。
另外,緩存字段中的緩存信息可以子查詢條件。舉例來(lái)說(shuō),緩存字段中是DMP1對(duì)應(yīng)的子查詢條件A,由于子查詢條件A可能無(wú)法被DMP2識(shí)別,為了對(duì)DMP2進(jìn)行查詢,在設(shè)置該對(duì)應(yīng)關(guān)系,該對(duì)應(yīng)關(guān)系中,DMP1對(duì)應(yīng)的子查詢條件A與DMP2對(duì)應(yīng)的子查詢條件B相對(duì)應(yīng),這樣,可以同時(shí)對(duì)DMP1和DMP2進(jìn)行查詢。這里的子查詢條件可以關(guān)鍵字,由于不同的DMP可以識(shí)別的關(guān)鍵字不同,通過(guò)本發(fā)明實(shí)施例,可以將不同的DMP的關(guān)鍵字對(duì)應(yīng),使得用戶通過(guò)在緩存字段中輸入任一DMP的關(guān)鍵字,可以通過(guò)對(duì)應(yīng)關(guān)系獲取到其他DMP的關(guān)鍵字。舉例來(lái)說(shuō),該關(guān)鍵字為cookie。由于不同的DMP的cookie是不同的。對(duì)于同一個(gè)用戶來(lái)說(shuō),該用戶在不同的DMP中cookie是不同的,只是在查詢條件中輸入一個(gè)DMP的cookie無(wú)法查詢?cè)撚脩粼谄渌鸇MP中的cookie。例如:用戶A在優(yōu)酷的DMP中的cookie為cookie1,在騰訊的DMP中的cookie為cookie2,如果要同時(shí)在優(yōu)酷的DMP和騰訊的DMP中查詢用戶A的cookie,可能需要分別在查詢條件中輸入cookie1和cookie2,比較復(fù)雜。然而,在本發(fā)明實(shí)施例中,在該對(duì)應(yīng)關(guān)系中,可以包括cookie1與cookie2的對(duì)應(yīng)關(guān)系,需要查詢DMP的用戶在緩存字段中填寫(xiě)cookie1或者cookie2,通過(guò)對(duì)應(yīng)關(guān)系可以確定出優(yōu)酷的DMP的關(guān)鍵詞為cookie1,可以確定出騰訊的DMP的關(guān)鍵詞為cookie2,這樣,可以同時(shí)對(duì)優(yōu)酷的DMP和騰訊的DMP進(jìn)行查詢。另外,在該對(duì)應(yīng)關(guān)系中,可以是,用戶A的緩存信息對(duì)應(yīng)cookie1和cookie2。需要查詢DMP的用戶在緩存字段中填寫(xiě)用戶A的緩存信息,通過(guò)對(duì)應(yīng)關(guān)系可以確定出優(yōu)酷的DMP的關(guān)鍵詞為cookie1,可以確定出騰訊的DMP的關(guān)鍵詞為cookie2,這樣,可以同時(shí)對(duì)優(yōu)酷的DMP和騰訊的DMP進(jìn)行查詢,其中的用戶A的緩存信息可以用戶A的標(biāo)識(shí)。
如圖2所示,本發(fā)明實(shí)施例提供的一種查詢DMP的方法,該方法包括:
步驟201:預(yù)先建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系。
舉例來(lái)說(shuō),這里的緩存信息可以是目標(biāo)用戶的標(biāo)識(shí),對(duì)應(yīng)關(guān)系中包括:目標(biāo)用戶的標(biāo)識(shí)對(duì)應(yīng)至少一個(gè)DMP對(duì)應(yīng)的cookie。例如:目標(biāo)用戶A的標(biāo)識(shí)對(duì)應(yīng)DMP1對(duì)應(yīng)的cookie1和DMP2對(duì)應(yīng)的cookie2。
步驟202:接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件,該查詢條件中包括緩存字段,緩存字段中包括:目標(biāo)緩存信息。
舉例來(lái)說(shuō),需要查詢DMP的用戶輸入查詢條件,查詢條件的緩存字段中包括目標(biāo)用戶A的標(biāo)識(shí)。
步驟203:從查詢條件的緩存字段中解析出目標(biāo)緩存信息。
舉例來(lái)說(shuō),從查詢條件的緩存字段中解析出目標(biāo)用戶A的標(biāo)識(shí)。
步驟204:判斷對(duì)應(yīng)關(guān)系中是否存在目標(biāo)緩存信息,如果是,則執(zhí)行步驟205,否則,執(zhí)行步驟208。
舉例來(lái)說(shuō),判斷出對(duì)應(yīng)關(guān)系中存在目標(biāo)用戶A的標(biāo)識(shí)。
步驟205:根據(jù)對(duì)應(yīng)關(guān)系,確定目標(biāo)緩存信息對(duì)應(yīng)的至少一個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件,執(zhí)行步驟206。
舉例來(lái)說(shuō),根據(jù)對(duì)應(yīng)關(guān)系,確定目標(biāo)用戶A的標(biāo)識(shí)對(duì)應(yīng)DMP1對(duì)應(yīng)的cookie1和DMP2對(duì)應(yīng)的cookie2。
步驟206:針對(duì)每個(gè)待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢當(dāng)前待查詢DMP。
舉例來(lái)說(shuō),待查詢DMP分別是DMP1和DMP2,對(duì)應(yīng)的子查詢條件分別是cookie1和cookie2。針對(duì)DMP1,向DMP1請(qǐng)求cookie1的數(shù)據(jù)。針對(duì)DMP2,向DMP2請(qǐng)求cookie2的數(shù)據(jù)。
步驟207:接收每個(gè)待查詢DMP返回的查詢結(jié)果。
步驟208:結(jié)束當(dāng)前流程。
舉例來(lái)說(shuō),接收DMP1返回的cookie1的數(shù)據(jù),接收DMP2返回的cookie2的數(shù)據(jù)。
基于圖1所示的一種查詢DMP的方法,為了便于對(duì)獲取的查詢結(jié)果進(jìn)行后續(xù)處理,如圖3所示,在本發(fā)明一實(shí)施例中,在所述接收每個(gè)所述待查詢DMP返回的查詢結(jié)果之后,進(jìn)一步包括:
步驟301:將每個(gè)所述待查詢DMP返回的所述查詢結(jié)果轉(zhuǎn)換成預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù)。
在本發(fā)明實(shí)施例中,預(yù)設(shè)數(shù)據(jù)格式可以是json格式。由于不同DMP中存儲(chǔ)數(shù)據(jù)的格式不同,在查詢多個(gè)DMP后,可能會(huì)獲得多種格式的查詢結(jié)果,通過(guò)本發(fā)明實(shí)施例,將各個(gè)查詢結(jié)果轉(zhuǎn)出統(tǒng)一的預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù),可以方便后續(xù)對(duì)這些數(shù)據(jù)進(jìn)行處理。
在本發(fā)明一實(shí)施例中,所述子查詢條件包括:關(guān)鍵字;
其中,所述關(guān)鍵字包括:os、IMEI、IDFA、Android ID、MAC、IP和cookie中的一個(gè)或多個(gè)。
在本發(fā)明實(shí)施例中,子查詢條件為關(guān)鍵字,用戶只需輸入關(guān)鍵字,即可根據(jù)關(guān)鍵字查詢對(duì)應(yīng)的待查詢DMP。在查詢條件中可以包括至少一個(gè)待查詢DMP的至少一個(gè)關(guān)鍵字。具體地,在查詢條件中,用戶針對(duì)每個(gè)待查詢DMP輸入對(duì)應(yīng)的至少一個(gè)關(guān)鍵字。舉例來(lái)說(shuō),用戶需要查詢DMP1、DMP2、DMP3,用戶可以在查詢條件中輸入DMP1對(duì)應(yīng)的關(guān)鍵字1和關(guān)鍵字2,DMP2對(duì)應(yīng)的關(guān)鍵字3,DMP3對(duì)應(yīng)的關(guān)鍵字4和關(guān)鍵字5,根據(jù)關(guān)鍵字1和關(guān)鍵字2對(duì)DMP1進(jìn)行查詢,根據(jù)關(guān)鍵字3對(duì)DMP2進(jìn)行查詢,根據(jù)關(guān)鍵字4和關(guān)鍵字5對(duì)DMP3進(jìn)行查詢。另外,關(guān)鍵字可以包括:redis,redis是分布式存儲(chǔ)系統(tǒng)。
為了能夠更加準(zhǔn)確地查詢DMP,在本發(fā)明一實(shí)施例中,所述查詢條件中包括:每個(gè)所述待查詢DMP對(duì)應(yīng)的條件字段,其中,針對(duì)每個(gè)所述待查詢DMP,所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段用于保存所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件;
所述根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件,包括:
針對(duì)每個(gè)所述待查詢DMP,從所述查詢條件的所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段獲取所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件。
在本發(fā)明實(shí)施例中,用戶在輸入查詢條件時(shí),按照預(yù)設(shè)格式生成查詢條件。舉例來(lái)說(shuō),有10個(gè)待查詢DMP,這查詢條件中設(shè)置有10個(gè)條件字段,每個(gè)待查詢DMP對(duì)應(yīng)一個(gè)條件字段,用戶在對(duì)應(yīng)的條件字段中輸入需要的查詢的子查詢條件,例如關(guān)鍵字。后續(xù)可以根據(jù)該預(yù)設(shè)格式確定出查詢條件中每個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件。通過(guò)改預(yù)設(shè)格式,可以更加準(zhǔn)確地確定每個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件,進(jìn)而能夠更加準(zhǔn)確地查詢DMP。
為了加快查詢DMP的速度,在本發(fā)明一實(shí)施例中,在所述針對(duì)每個(gè)所述待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢所述當(dāng)前待查詢DMP之前,進(jìn)一步包括:
分別建立與每個(gè)所述待查詢DMP的長(zhǎng)連接,以分別通過(guò)每個(gè)所述長(zhǎng)連接與對(duì)應(yīng)的所述待查詢DMP進(jìn)行通信。
為了與每個(gè)待查詢DMP進(jìn)行通信,需要與每個(gè)待查詢DMP建立連接,但是,如果建立短連接,需要每次通信都重新建立連接,浪費(fèi)時(shí)間。在本發(fā)明實(shí)施例中,建立與每個(gè)待查詢DMP的長(zhǎng)連接,通過(guò)長(zhǎng)連接可以多次與DMP進(jìn)行通信,無(wú)需多次建立連接,節(jié)省了時(shí)間,加快了查詢DMP的速度。
在本發(fā)明一實(shí)施例中,在所述根據(jù)每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件,分別查詢每個(gè)所述待查詢DMP之前,進(jìn)一步包括:
分別建立與每個(gè)所述待查詢DMP的socket(套接字)連接,以分別通過(guò)每個(gè)所述socket連接與對(duì)應(yīng)的所述待查詢DMP進(jìn)行通信;
在所述接收每個(gè)所述待查詢DMP根據(jù)對(duì)應(yīng)的子查詢條件返回的查詢結(jié)果之后,進(jìn)一步包括:
針對(duì)每個(gè)所述socket連接,在一次通信結(jié)束后,將當(dāng)前socket連接放到對(duì)應(yīng)的連接池中,維持所述當(dāng)前socket連接。
其中,在針對(duì)每個(gè)所述socket連接,在一次通信結(jié)束后,將當(dāng)前socket連接放到對(duì)應(yīng)的連接池中,維持所述當(dāng)前socket連接之前,進(jìn)一步包括:
獲取每個(gè)所述待查詢DMP的域名;
解析每個(gè)所述待查詢DMP的域名,獲取每個(gè)所述待查詢DMP的IP地址;
根據(jù)建立每個(gè)所述待查詢DMP的IP地址對(duì)應(yīng)的連接池。
在本發(fā)明實(shí)施例中,當(dāng)通過(guò)Socket向待查詢DMP發(fā)出請(qǐng)求時(shí),如果待查詢DMP為HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)請(qǐng)求API(Application Programming Interface,應(yīng)用程序編程接口)方式,增加http頭的關(guān)鍵字keep-alive、以http1.1協(xié)議方式與待查詢DMP建立HTTP長(zhǎng)連接,維持HTTP長(zhǎng)連接。
需要說(shuō)明的是:在本發(fā)明實(shí)例中,待查詢DMP可以是外部需要查詢的DMP,這些待查詢DMP可以是所有可以被查詢的DMP中的一部分。舉例來(lái)說(shuō),可以被查詢的DMP有10個(gè),而用戶A通過(guò)查詢條件規(guī)定了只是查詢這10個(gè)DMP中的DMP1、DMP2和DMP3,那么,DMP1、DMP2和DMP3為待查詢DMP。
另外,DMP設(shè)置有查詢接口,可以預(yù)先獲取每個(gè)DMP的查詢接口的配置信息,根據(jù)每個(gè)DMP對(duì)應(yīng)的配置信息,與每個(gè)DMP的查詢接口連接。
還有,由于與不同的待查詢DMP的連接可能不同,因此,在向不同的待查詢DMP發(fā)送查詢請(qǐng)求時(shí),可能需要發(fā)送不同形式的請(qǐng)求,例如:數(shù)據(jù)包或者查詢地址。
如圖4所示,本發(fā)明實(shí)施例提供了一種查詢DMP的方法,該方法可以包括以下步驟:
步驟401:預(yù)先建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系。
舉例來(lái)說(shuō),子查詢條件為關(guān)鍵字,該對(duì)應(yīng)關(guān)系為:緩存信息與至少一個(gè)DMP對(duì)應(yīng)的關(guān)鍵字的對(duì)應(yīng)關(guān)系。
步驟402:接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件,其中,查詢條件中包括:回寫(xiě)字段、緩存字段以及每個(gè)待查詢DMP對(duì)應(yīng)的條件字段。
具體地,查詢條件中包括:回寫(xiě)字段、緩存字段、每個(gè)待查詢DMP對(duì)應(yīng)的條件字段;其中,回寫(xiě)字段中包括:每個(gè)待查詢DMP的標(biāo)識(shí);緩存字段中包括:目標(biāo)緩存信息;針對(duì)每個(gè)所述待查詢DMP,當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段用于保存當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件。
在本發(fā)明實(shí)施例中,每個(gè)待查詢DMP對(duì)應(yīng)子查詢條件,可以來(lái)自于對(duì)應(yīng)關(guān)系中,目標(biāo)緩存信息對(duì)應(yīng)的子查詢條件,也可以來(lái)自于條件字段中的查詢條件。
舉例來(lái)說(shuō),子查詢條件為關(guān)鍵字。待查詢DMP有DMP1、DMP2和DMP3。在查詢條件中DMP1對(duì)應(yīng)的條件字段中為關(guān)鍵字1,DMP2對(duì)應(yīng)的條件字段中為關(guān)鍵字2,DMP3對(duì)應(yīng)的條件字段中為空。
在查詢條件中的緩存字段存儲(chǔ)有緩存信息A,則緩存信息A為目標(biāo)緩存信息。
在對(duì)應(yīng)關(guān)系中,緩存信息A與DMP2對(duì)應(yīng)的關(guān)鍵字3以及DMP3對(duì)應(yīng)的關(guān)鍵字4。
基于上述的查詢條件,DMP1對(duì)應(yīng)的子查詢條件為關(guān)鍵字1,DMP2對(duì)應(yīng)的子查詢條件為關(guān)鍵字2和關(guān)鍵字3,DMP3對(duì)應(yīng)的子查詢條件為關(guān)鍵字4。
步驟403:針對(duì)每個(gè)待查詢DMP,從查詢條件的當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段獲取當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件。
舉例來(lái)說(shuō),從查詢條件中DMP1對(duì)應(yīng)的條件字段中獲取DMP1對(duì)應(yīng)的關(guān)鍵字1,從查詢條件中DMP2對(duì)應(yīng)的條件字段中獲取DMP2對(duì)應(yīng)的關(guān)鍵字2。
步驟404:從查詢條件的緩存字段中解析出目標(biāo)緩存信息。
舉例來(lái)說(shuō),從查詢條件中的緩存字段中解析出緩存信息A。
步驟405:判斷對(duì)應(yīng)關(guān)系中是否存在目標(biāo)緩存信息,如果是,則執(zhí)行步驟406,否則,執(zhí)行步驟407。
舉例來(lái)說(shuō),目標(biāo)緩存信息為緩存信息A,對(duì)應(yīng)關(guān)系中存在緩存信息A,執(zhí)行步驟406。
步驟406:根據(jù)對(duì)應(yīng)關(guān)系,確定目標(biāo)緩存信息對(duì)應(yīng)的至少一個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件。
舉例來(lái)說(shuō),根據(jù)對(duì)應(yīng)關(guān)系,確定DMP2對(duì)應(yīng)的關(guān)鍵字3,確定DMP3對(duì)應(yīng)的關(guān)鍵字4。
步驟407:針對(duì)每個(gè)待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢當(dāng)前待查詢DMP。
舉例來(lái)說(shuō),通過(guò)上述步驟確定出:DMP1對(duì)應(yīng)的子查詢條件為關(guān)鍵字1,DMP2對(duì)應(yīng)的子查詢條件為關(guān)鍵字2和關(guān)鍵字3,DMP3對(duì)應(yīng)的子查詢條件為關(guān)鍵字4。
利用關(guān)鍵字1查詢DMP1,利用關(guān)鍵字2和關(guān)鍵字3查詢DMP2,利用關(guān)鍵字4查詢DMP3。
具體地,可以將當(dāng)前待查詢DMP對(duì)應(yīng)的關(guān)鍵字發(fā)送給當(dāng)前待查詢DMP,使得當(dāng)前待查詢DMP根據(jù)該關(guān)鍵字返回查詢結(jié)果。
步驟408:接收每個(gè)待查詢DMP返回的查詢結(jié)果。
舉例來(lái)說(shuō),接收DMP1根據(jù)關(guān)鍵字1返回的查詢結(jié)果1,接收DMP2根據(jù)關(guān)鍵字2和關(guān)鍵字3返回的查詢結(jié)果2,接收DMP3根據(jù)關(guān)鍵字4返回的查詢結(jié)果3。
步驟409:根據(jù)回寫(xiě)字段,通過(guò)每個(gè)查詢結(jié)果對(duì)應(yīng)的待查詢DMP的標(biāo)識(shí)來(lái)標(biāo)記每個(gè)查詢結(jié)果。
舉例來(lái)說(shuō),查詢條件中的回寫(xiě)字段中:DMP1的標(biāo)識(shí)為標(biāo)識(shí)A,DMP2的標(biāo)識(shí)為標(biāo)識(shí)B,DMP3的標(biāo)識(shí)為標(biāo)識(shí)C。
通過(guò)標(biāo)識(shí)A標(biāo)記查詢結(jié)果1,通過(guò)標(biāo)識(shí)B標(biāo)記查詢結(jié)果2,通過(guò)標(biāo)識(shí)C標(biāo)記查詢結(jié)果3。
步驟410:將每個(gè)待查詢DMP返回的查詢結(jié)果轉(zhuǎn)換成預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù)。
舉例來(lái)說(shuō),查詢結(jié)果1、查詢結(jié)果2和查詢結(jié)果3分別是不同格式的數(shù)據(jù),為了方便后續(xù)處理,將查詢結(jié)果1、查詢結(jié)果2和查詢結(jié)果3轉(zhuǎn)換成預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù)。這里的預(yù)設(shè)數(shù)據(jù)格式可以是json格式。
如圖5、圖6所示,本發(fā)明實(shí)施例提供了一種查詢DMP的裝置。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。從硬件層面而言,如圖5所示,為本發(fā)明實(shí)施例提供的一種查詢DMP的裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖5所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等。以軟件實(shí)現(xiàn)為例,如圖6所示,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的CPU將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。本實(shí)施例提供的一種查詢DMP的裝置,包括:
第一接收單元601,用于接收外部輸入的用于查詢至少一個(gè)待查詢DMP的查詢條件;
確定單元602,用于根據(jù)所述查詢條件,確定每個(gè)所述待查詢DMP對(duì)應(yīng)的子查詢條件;
查詢單元603,用于針對(duì)每個(gè)所述待查詢DMP,利用當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件,查詢所述當(dāng)前待查詢DMP;
第二接收單元604,用于接收每個(gè)所述待查詢DMP返回的查詢結(jié)果。
在本發(fā)明一實(shí)施例中,所述查詢條件中包括:回寫(xiě)字段,所述回寫(xiě)字段中包括:每個(gè)所述待查詢DMP的標(biāo)識(shí);
該裝置進(jìn)一步包括:
標(biāo)識(shí)單元,用于根據(jù)所述回寫(xiě)字段,通過(guò)每個(gè)所述查詢結(jié)果對(duì)應(yīng)的所述待查詢DMP的標(biāo)識(shí)來(lái)標(biāo)記每個(gè)所述查詢結(jié)果。
在本發(fā)明一實(shí)施例中,所述查詢條件中包括:緩存字段,所述緩存字段中包括:目標(biāo)緩存信息;
該裝置進(jìn)一步包括:
第一建立單元,用于建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系;
所述確定單元,用于從所述查詢條件的所述緩存字段中解析出所述目標(biāo)緩存信息,判斷所述對(duì)應(yīng)關(guān)系中是否存在所述目標(biāo)緩存信息,如果是,根據(jù)所述對(duì)應(yīng)關(guān)系,確定所述目標(biāo)緩存信息對(duì)應(yīng)的至少一個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件。
在本發(fā)明一實(shí)施例中,該裝置進(jìn)一步包括:
轉(zhuǎn)換單元,用于將每個(gè)所述待查詢DMP返回的所述查詢結(jié)果轉(zhuǎn)換成預(yù)設(shè)數(shù)據(jù)格式的數(shù)據(jù)。
在本發(fā)明一實(shí)施例中,該裝置進(jìn)一步包括:
第二建立單元,用于分別建立與每個(gè)所述待查詢DMP的長(zhǎng)連接,以分別通過(guò)每個(gè)所述長(zhǎng)連接與對(duì)應(yīng)的所述待查詢DMP進(jìn)行通信。
在本發(fā)明一實(shí)施例中,所述子查詢條件包括:關(guān)鍵字;
其中,所述關(guān)鍵字包括:os、IMEI、IDFA、Android ID、MAC、IP和cookie中的一個(gè)或多個(gè)。
在本發(fā)明一實(shí)施例中,所述查詢條件中包括:每個(gè)所述待查詢DMP對(duì)應(yīng)的條件字段,其中,針對(duì)每個(gè)所述待查詢DMP,所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段用于保存所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件;
所述確定單元,用于針對(duì)每個(gè)所述待查詢DMP,從所述查詢條件的所述當(dāng)前待查詢DMP對(duì)應(yīng)的條件字段獲取所述當(dāng)前待查詢DMP對(duì)應(yīng)的子查詢條件。
另外,該裝置接收到的查詢條件可以是來(lái)自相連的客戶端,用戶通過(guò)客戶端向該裝置發(fā)送查詢條件,該裝置接收到查詢結(jié)果后,將查詢結(jié)果發(fā)送給客戶端。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
本發(fā)明各個(gè)實(shí)施例至少具有如下有益效果:
1、在本發(fā)明實(shí)施例中,用戶輸入查詢條件,從該查詢條件中確定出每個(gè)待查詢DMP對(duì)應(yīng)的子查詢條件,分別對(duì)每個(gè)待查詢DMP進(jìn)行查詢,接收每個(gè)待查詢DMP返回的查詢結(jié)果,用戶通過(guò)一個(gè)查詢條件可以同時(shí)對(duì)多個(gè)DMP進(jìn)行查詢,無(wú)需分別對(duì)每個(gè)DMP進(jìn)行操作,能夠更加方便地查詢DMP。
2、在本發(fā)明實(shí)施例中,通過(guò)回寫(xiě)字段中的標(biāo)識(shí)可以對(duì)接收到的查詢結(jié)果進(jìn)行標(biāo)記,通過(guò)這些標(biāo)記可以確定出每個(gè)查詢結(jié)果對(duì)應(yīng)的待查詢DMP,使得用戶可以準(zhǔn)確地區(qū)分出各個(gè)查詢結(jié)果的來(lái)源。
3、在本發(fā)明實(shí)施例中,預(yù)先建立緩存信息與至少一個(gè)DMP對(duì)應(yīng)的子查詢條件的對(duì)應(yīng)關(guān)系,在該對(duì)應(yīng)關(guān)系中,每個(gè)緩存信息可以對(duì)應(yīng)兩個(gè)以上的DMP對(duì)應(yīng)的子查詢條件,通過(guò)該緩沖字段中的目標(biāo)緩存信息可以同時(shí)對(duì)多個(gè)待查詢DMP進(jìn)行查詢,無(wú)需分別針對(duì)不同的待查詢DMP設(shè)置子查詢條件,能夠更加方便地查詢DMP。
4、在本發(fā)明實(shí)施例中,分別建立與每個(gè)待查詢DMP的長(zhǎng)連接,分別通過(guò)每個(gè)長(zhǎng)連接與對(duì)應(yīng)的待查詢DMP進(jìn)行通信,通過(guò)長(zhǎng)連接可以多次與DMP進(jìn)行通信,無(wú)需多次建立連接,節(jié)省了時(shí)間,加快了查詢DMP的速度。
需要說(shuō)明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)······”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。