一種數據導出方法和裝置的制造方法
【技術領域】
[0001]本發明實施例涉及數據導出技術領域,尤其涉及一種數據導出方法和裝置。
【背景技術】
[0002]在數據庫日常運維中經常遇到導出數據到文本文件中,比較常用數據格式是CSV (Comma-Separated Values,逗號分隔值)格式,有時需要導出插入INSERT語句格式,雖然格式不同但處理的方式基本相同,目前基本采用spool日志文件方式導出結果,通常情況下是運維DBA (Database administrator,數據庫管理員)根據用戶的導出數據請求編寫對應的導出數據腳本,然后運行導出數據腳本,生成日志文件在屏幕滾動顯示,滾動顯示所有導出數據之后,打包發送給用戶。因此,對于不同的導出數據需求,每次都要重新編寫導出數據腳本,靈活性較差,運維工作將變得十分繁雜,耗費大量的人力資源。并且當數據量較大時,通過spool日志文件屏幕滾動顯示的方法導出數據耗時長,導出速度慢,時間成本上不可控。
【發明內容】
[0003]本發明提供一種數據導出方法和裝置,以實現自動完成不同格式的導出數據的導出工作,提高導出速度,節省運維成本。
[0004]第一方面,本發明實施例提供了一種數據導出方法,該方法包括:
[0005]接收用戶的導出數據請求任務,并根據所述導出數據請求任務設置配置信息;
[0006]根據所述配置信息,確定導出數據格式,并根據導出數據格式生成數據庫可執行語句信息;
[0007]根據所述數據庫可執行語句信息,讀取需要導出的數據,并將需要導出的數據轉換為對應格式的導出數據;
[0008]將所述導出數據寫入文本文件。
[0009]進一步的,所述根據所述配置信息,確定導出數據格式,并根據導出數據格式生成數據庫可執行語句信息,包括:
[0010]根據所述配置信息,判斷導出數據格式是否為插入語句格式,若是,則生成數據庫可執行的插入語句信息;否則,生成數據庫可執行的逗號分隔值語句信息。
[0011]進一步的,在接收用戶的導出數據請求任務,并根據所述導出數據請求任務設置配置信息之后,還包括:
[0012]根據配置信息獲取導出數據表占用物理空間,并根據所述導出數據表占用物理空間判斷是否開啟并行導出模式。
[0013]進一步的,當根據所述導出數據表占用物理空間開啟并行導出模式時,還包括:
[0014]根據操作系統資源使用率,設置并行導出模式的并行度。
[0015]進一步的,在將所述導出數據寫入文本文件之前,還包括:
[0016]判斷所述導出數據的編碼格式與所述配置信息是否一致,并在不一致時,將所述導出數據的編碼格式轉換為所述配置信息中的編碼格式。
[0017]第二方面,本發明實施例提供了一種數據導出裝置,該裝置包括:
[0018]配置信息設置模塊,用于接收用戶的導出數據請求任務,并根據所述導出數據請求任務設置配置信息;
[0019]解析模塊,用于根據所述配置信息,確定導出數據格式,并根據導出數據格式生成數據庫可執行語句信息;
[0020]數據格式轉換模塊,用于根據所述數據庫可執行語句信息,讀取需要導出的數據,并將需要導出的數據轉換為對應格式的導出數據;
[0021]導出模塊,用于將所述導出數據寫入文本文件。
[0022]進一步的,所述解析模塊包括:
[0023]導出數據格式判斷單元,用于根據所述配置信息,判斷導出數據格式是否為插入語句格式,若是,則生成數據庫可執行的插入語句信息;否則,生成數據庫可執行的逗號分隔值語句信息。
[0024]進一步的,還包括:
[0025]并行判斷模塊,用于根據配置信息獲取導出數據表占用物理空間,并根據所述導出數據表占用物理空間判斷是否開啟并行導出模式。
[0026]進一步的,還包括:
[0027]并行度設置模塊,根據操作系統資源使用率,設置并行導出模式的并行度。
[0028]進一步的,還包括:
[0029]編碼格式轉換模塊,用于判斷所述導出數據的編碼格式與所述配置信息是否一致,并在不一致時,將所述導出數據的編碼格式轉換為所述配置信息中的編碼格式。
[0030]本發明通過接收用戶的導出數據請求任務,并根據所述導出數據請求任務設置配置信息,根據所述配置信息,確定導出數據格式,并根據導出數據格式生成數據庫可執行語句信息,根據所述數據庫可執行語句信息,讀取需要導出的數據,并將需要導出的數據轉換為對應格式的導出數據,將所述導出數據寫入文本文件,解決了現有技術中需要針對不用的數據導出任務分別編寫程序導出數據的問題,并且本發明提供的數據導出方法與現有的通過spool日志文件屏幕滾動顯示的方法導出相比,導出速度快。
【附圖說明】
[0031]圖1為本發明實施例一提供的一種數據導出方法的流程圖;
[0032]圖2為本發明實施例二提供的一種數據導出方法的流程圖;
[0033]圖3為本發明實施例三提供的一種數據導出方法的流程圖;
[0034]圖4為本發明實施例四提供的一種數據導出裝置的結構示意圖。
【具體實施方式】
[0035]下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部結構。
[0036]實施例一
[0037]圖1為本發明實施例一提供的一種數據導出方法的流程圖,本實施例可適用于不同數據格式的導出任務,針對不同數據格式的導出任務,無需重新編寫程序,只需加載相應的配置信息即可自動完成數據導出工作。本發明實施例可以由數據導出裝置執行,該裝置可以通過硬件和/或軟件的方式實現,并一般可集成于數據庫服務器端。如圖1所示,該方法包括如下步驟:
[0038]步驟110、接收用戶的導出數據請求任務,并根據所述導出數據請求任務設置配置信息;
[0039]在使用數據庫的過程中,難免會有將數據表中的數據導出這樣的需求,特別是一些企業需要經常性的提取一些業務數據作為分析決策的參考,而這些提取數據的需求又具有格式經常變化等特點。當用戶需要導出數據時,通過客戶端輸入導出數據請求,并將所述導出數據請求發送至數據庫服務器,數據庫服務器識別所述導出數據請求,并根據上述導出數據請求任務設置配置信息,以根據不同的導出數據請求設置不同的導出參數。所述配置信息例如可以包括導出數據格式信息、需要導出數據表信息等。
[0040]步驟120、根據所述配置信息,確定導出數據格式,并根據導出數據格式生成數據庫可執行語句信息;
[0041]加載上述配置信息并解析,確定導出數據格式,并生成數據庫可執行的語句信息,以供數據庫調用執行。
[0042]步驟130、根據所述數據庫可執行語句信息,讀取需要導出的數據,并將需要導出的數據轉換為對應格式的導出數據;
[0043]根據所述數據庫可執行語句信息,查詢數據庫,讀取需要導出的數據,并將需要導出的數據轉換為對應格式的導出數據。
[0044]步驟140、將所述導出數據寫入文本文件。
[0045]本發明實施例直接將導出數據寫入文本文件,代替傳統的spool方式,由于傳統的spool方式生成日志文件并在屏幕滾動顯示,在操作系統上有2G大小的限制,如果日志文件大于2G,就有可能發生數據截斷,影響導出數據的完整性,而本發明實施例直接將導出數據寫入文本文件,因此不會有操作系統2G大小的限制。
[0046]進一步的,本發明實施例所述的方法支持二進制存儲單行數據,相比于spool方式的抓屏字符串顯示,本本發明實施例所述的方法可用于寬表,單行不受字符串長度限制,防止導出數據因受字符串長度限制被截斷丟失的技術問題。
[0047]本發明實施例通過根據用戶的導出數據請求任務設置配置信息,導出數據時,只需根據不同導出數據請求任務設置不同的配置信息即可完成相應的導出數據任務,解決了現有技術中針對每個導出數據任務分別編寫程序的問題,節省了運維成本。
[0048]實施例二
[0049]圖2為本發明實施例二提供的一種數據導出方法的流程圖,本實施例為上述實施例基礎上的優化,具體的,所述方法包括如下步驟:
[0050]步驟210、接收用戶的導出數據請求任務,并根據所述導出數據請求任務設置配置信息。
[0051]步驟220、根據所述配置信息,判斷導出數據格式是否為插入語句格式。
[0052]當導出數據格式為插入語句格式時,依次執行步驟230、250、260否則依次執行步驟 240、250、260。
[0053]步驟230、生成數據庫可執行的插入語句信息。
[0054]步驟240、生成數據庫可執行的逗號分隔值語句信息。
[0055]逗號分隔值格式(Comma-Separated Values,CSV),是以純文本形式存儲表格數據,廣泛應用在程序之間轉移表格數據。插入INSERT語句格式可以經過進一步的改造完成不同數據庫間數據的使用,以供第三方進行方便的調用。用戶可根據具體的環境需要選擇合理相應的導出數據格式。
[0056]步驟250、讀取需要導出的數據,并將需要導出的數據轉換為對應格式的導出數據。
[0057]步驟260、將所述導出數據寫入文本文件。
[0058]本發明實施例可以根據用戶需求,通過解析配置信息導出CSV格式或者INSERT語句格式的數據,所述方法支持Oracle、SQL以及MySql關系數據庫的數據導出任務,提升了導出效率,提高了導出數據任務的靈活性。
[0059]實施例三<