一種更新數(shù)據(jù)查詢引擎配置列表的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及交互式數(shù)據(jù)查詢引擎技術(shù),尤其涉及一種更新數(shù)據(jù)查詢引擎配置列表的方法及裝置。
【背景技術(shù)】
[0002]在現(xiàn)今的信息化時(shí)代,對信息數(shù)據(jù)的應(yīng)用與研究已成為一種趨勢,很多大型公司需要通過如SQL Server, MySQL等數(shù)據(jù)庫管理系統(tǒng)對公司相關(guān)數(shù)據(jù)進(jìn)行查詢、分析、管理以及處理,從而更好的改善產(chǎn)品質(zhì)量,隨著大數(shù)據(jù)的出現(xiàn),僅通過數(shù)據(jù)庫管理系統(tǒng)進(jìn)行查詢操作效率很低,因此,查詢引擎成為快速查詢相關(guān)數(shù)據(jù)的必備工具。
[0003]Presto是一種純內(nèi)存的交互式SQL查詢引擎,查詢效率比Hive (基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,提供簡單的SQL查詢功能)高出近10倍,能夠跨越包括Hive、MySQL,Kafka在內(nèi)的多種數(shù)據(jù)源進(jìn)行查詢,目前已成功應(yīng)用在Facebook、Netflix、Dropbox、京東等知名互聯(lián)網(wǎng)公司。
[0004]Presto可以查詢多種不同的數(shù)據(jù)源,而對于數(shù)據(jù)源屬性的配置是以配置文件的形式存儲在名為catalog的配置文件目錄中,不同的數(shù)據(jù)源需要分不同的配置文件進(jìn)行配置,相同的數(shù)據(jù)源但是屬性不同(如MySQL連接地址不同)同樣需要分不同的配置文件進(jìn)行配置,一個(gè)合法的配置文件可作為Presto的一個(gè)catalog被保存在catalog列表中。當(dāng)Presto服務(wù)啟動時(shí),如圖1所示,首先檢測catalog配置文件目錄下的配置文件,如果配置文件合法則將其加載到Presto服務(wù)中,當(dāng)所有catalog配置文件都加載完成后,當(dāng)前Presto節(jié)點(diǎn)會聲明自身所擁有的合法的catalog列表。
[0005]在Presto的實(shí)際使用中,往往遇到對catalog配置進(jìn)行增、刪和改的更新需求,一般情況下,執(zhí)行上述需求的現(xiàn)有技術(shù)方案往往是重新啟動Presto服務(wù),因?yàn)楝F(xiàn)有Presto服務(wù)對catalog配置的加載是一次性的,即只在Presto服務(wù)啟動時(shí)進(jìn)行加載,之后不會再對catalog進(jìn)行任何處理。當(dāng)Presto服務(wù)啟動后,即使存在catalog配置文件的增刪改操作,也只有通過重啟Presto服務(wù),重新對所有的catalog配置都會進(jìn)行加載,才能實(shí)現(xiàn)catalog配置的更新。現(xiàn)有技術(shù)方案對于每次更新都需要重啟Presto服務(wù),一旦catalog配置錯(cuò)誤就需要頻繁重啟Presto服務(wù),導(dǎo)致Presto服務(wù)不能穩(wěn)定運(yùn)行,進(jìn)而增大運(yùn)維人員的負(fù)擔(dān),降低Presto服務(wù)的用戶體檢。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種更新數(shù)據(jù)查詢引擎配置列表的方法及裝置,實(shí)現(xiàn)數(shù)據(jù)查詢引擎中配置列表的動態(tài)更新,保證數(shù)據(jù)查詢引擎服務(wù)的穩(wěn)定運(yùn)行,從而提高數(shù)據(jù)查詢引擎服務(wù)的用戶體檢。
[0007]—方面,本發(fā)明實(shí)施例提供了一種更新數(shù)據(jù)查詢引擎配置列表的方法,包括:
[0008]如果監(jiān)測到數(shù)據(jù)查詢引擎的當(dāng)前節(jié)點(diǎn)的服務(wù)進(jìn)程啟動時(shí),則啟動后臺監(jiān)控線程,監(jiān)測所述數(shù)據(jù)查詢引擎的配置文件目錄的更新操作;
[0009]如果監(jiān)測到所述配置文件目錄的更新操作,則獲取被更新的配置文件信息;
[0010]根據(jù)所述被更新的配置文件信息,對所述當(dāng)前節(jié)點(diǎn)的配置列表進(jìn)行相應(yīng)的更新操作。
[0011]另一方面,本發(fā)明實(shí)施例提供了一種更新數(shù)據(jù)查詢引擎配置列表的裝置,集成在數(shù)據(jù)查詢引擎中,該裝置包括:
[0012]更新操作監(jiān)控模塊,用于當(dāng)監(jiān)測到數(shù)據(jù)查詢引擎的當(dāng)前節(jié)點(diǎn)的服務(wù)進(jìn)程啟動時(shí),啟動后臺監(jiān)控線程,監(jiān)測所述數(shù)據(jù)查詢引擎的配置文件目錄的更新操作;
[0013]更新信息獲取模塊,用于當(dāng)監(jiān)測到所述配置文件目錄的更新操作時(shí),獲取被更新的配置文件信息;
[0014]配置列表更新模塊,用于根據(jù)所述被更新的配置文件信息,對所述當(dāng)前節(jié)點(diǎn)的配置列表進(jìn)行相應(yīng)的更新操作。
[0015]本發(fā)明實(shí)施例中提供的一種更新數(shù)據(jù)查詢引擎配置列表的方法及裝置,根據(jù)監(jiān)控線程監(jiān)測數(shù)據(jù)查詢引擎的配置文件目錄,若監(jiān)測到配置文件目錄存在增加、刪除或者修改的配置文件時(shí),根據(jù)監(jiān)測線程提供的被更新的配置文件信息,對數(shù)據(jù)查詢引擎服務(wù)進(jìn)程中的配置列表進(jìn)行相應(yīng)的更新。本發(fā)明無需重啟數(shù)據(jù)查詢引擎節(jié)點(diǎn)的服務(wù)進(jìn)程,就可實(shí)現(xiàn)數(shù)據(jù)查詢引擎配置列表的動態(tài)更新,達(dá)到數(shù)據(jù)查詢引擎自動化運(yùn)維的效果,從而減輕運(yùn)維人員負(fù)擔(dān),提升數(shù)據(jù)查詢引擎的用戶體驗(yàn)。
【附圖說明】
[0016]圖1為現(xiàn)有技術(shù)中更新數(shù)據(jù)查詢引擎配置列表的流程圖;
[0017]圖2為本發(fā)明實(shí)施例一提供的一種更新數(shù)據(jù)查詢引擎配置列表的方法的流程示意圖;
[0018]圖3為本發(fā)明實(shí)施例二提供的一種更新數(shù)據(jù)查詢引擎配置列表的方法的流程示意圖;
[0019]圖4為本發(fā)明實(shí)施例三提供的一種更新數(shù)據(jù)查詢引擎配置列表的裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0020]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0021]實(shí)施例一
[0022]圖2為本發(fā)明實(shí)施例一提供的一種更新數(shù)據(jù)查詢引擎配置列表方法的流程示意圖,該方法可以由更新數(shù)據(jù)查詢引擎配置列表的裝置執(zhí)行,其中該裝置可由軟件和/或硬件實(shí)現(xiàn),作為數(shù)據(jù)查詢引擎的一部分集成在數(shù)據(jù)查詢引擎中,本發(fā)明實(shí)施例提供的更新數(shù)據(jù)查詢引擎配置列表的方法,如圖2所示,包括如下操作:
[0023]步驟101、如果監(jiān)測到數(shù)據(jù)查詢引擎的當(dāng)前節(jié)點(diǎn)的服務(wù)進(jìn)程啟動時(shí),則啟動后臺監(jiān)控線程,監(jiān)測所述數(shù)據(jù)查詢引擎的配置文件目錄的更新操作。
[0024]在本實(shí)施例中,所述數(shù)據(jù)查詢引擎具體可指交互式連接關(guān)系型數(shù)據(jù)庫,并通過客戶端的數(shù)據(jù)查詢請求實(shí)現(xiàn)快速查詢的交互式查詢系統(tǒng),例如,名為Hive、Impala、Spark、Stinger以及Presto等都是目前較流行的開源大數(shù)據(jù)查詢分析引擎,可實(shí)現(xiàn)大數(shù)據(jù)的快速查詢處理。
[0025]上述數(shù)據(jù)查詢引擎均可用來對大數(shù)據(jù)進(jìn)行查詢分析和處理,因此在這些數(shù)據(jù)查詢引擎中至少存在兩個(gè)計(jì)算節(jié)點(diǎn),在數(shù)據(jù)查詢引擎工作時(shí),需要啟動相應(yīng)的計(jì)算節(jié)點(diǎn)服務(wù)進(jìn)程才能進(jìn)行相應(yīng)的處理計(jì)算工作。本實(shí)施例提出的更新數(shù)據(jù)查詢引擎配置列表的方法就是在監(jiān)測到數(shù)據(jù)查詢引擎相應(yīng)計(jì)算節(jié)點(diǎn)的服務(wù)進(jìn)程啟動后進(jìn)行的一系列操作。
[0026]在本實(shí)施例中,所述后臺監(jiān)控線程具體可指在所述數(shù)據(jù)查詢引擎系統(tǒng)相應(yīng)代碼中加入的監(jiān)控代碼,可通過所述當(dāng)前節(jié)點(diǎn)服務(wù)進(jìn)程啟動時(shí)的觸發(fā)器觸發(fā)啟動,具體可用于監(jiān)控?cái)?shù)據(jù)查詢引擎配置文件目錄中是否出現(xiàn)配置文件的更新操作。所述配置文件目錄具體可用于存放數(shù)據(jù)源的配置文件參數(shù)信息。所述配置文件目錄的更新操作具體可包括:配置文件目錄中配置文件的增加、刪除以及參數(shù)變更。
[0027]步驟102、如果監(jiān)測到所述配置文件目錄的更新操作,則獲取被更新的配置文件信息。
[0028]在本實(shí)施例中,對所述配置文件目錄更新操作的監(jiān)測由后臺監(jiān)控線程執(zhí)行,所述后臺監(jiān)控線程由相應(yīng)的監(jiān)控代碼實(shí)現(xiàn),所述監(jiān)控代碼具體可為編程語言應(yīng)用程序自帶的編程接□ (Applicat1n Programming Interface,API)。
[0029]優(yōu)選的,本實(shí)施例米用Java語言中的WatchService API,所述WatchService API可以作為一個(gè)獨(dú)立線程后臺運(yùn)行機(jī)制,在后臺直接監(jiān)控目錄的變更情況并且返回對目錄的監(jiān)控信息,不會影響前端處理。所述WatchService API內(nèi)部的具體監(jiān)控目錄變更的過程不再詳細(xì)描述。
[0030]步驟103、根據(jù)所述被更新的配置文件信息,對所述當(dāng)前節(jié)點(diǎn)的配置列表進(jìn)行相應(yīng)的更新操作。
[0031]在本實(shí)施例中,所述被更新的配置文件信息具體可包括:新增配置文件的文件名及參數(shù)信息、被刪除文件的文件名、以及被修改配置文件的文件名及修改