[發(fā)明專利]一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法在審
| 申請?zhí)枺?/td> | 202010715426.0 | 申請日: | 2020-07-22 |
| 公開(公告)號: | CN111858632A | 公開(公告)日: | 2020-10-30 |
| 發(fā)明(設計)人: | 李貴振;胡清;王建華 | 申請(專利權(quán))人: | 浪潮云信息技術(shù)股份公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/28 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 馮春連 |
| 地址: | 250100 山東省濟南市高*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 nifi 關(guān)系 數(shù)據(jù)庫 增量 數(shù)據(jù) 入庫 方法 | ||
1.一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,該入庫方法基于增設在關(guān)系型數(shù)據(jù)庫的處理組件,該處理組件用于判斷新增、更新或者刪除的增量數(shù)據(jù),同時,該處理組件還用于支持新增、更新或者刪除的增量數(shù)據(jù)入庫,并支持設置忽略更新字段;在從源關(guān)系型數(shù)據(jù)庫獲取增量數(shù)據(jù)時,通過處理組件去目標關(guān)系型數(shù)據(jù)庫中查詢該增量數(shù)據(jù)是否存在,并根據(jù)查詢結(jié)果,在目標關(guān)系型數(shù)據(jù)庫中進行更新、插入或刪除操作,完成增量數(shù)據(jù)的入庫。
2.根據(jù)權(quán)利要求1所述的一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,該入庫方法的具體實現(xiàn)內(nèi)容包括:
步驟1、基于NiFi,在關(guān)系型數(shù)據(jù)庫中增設一個處理組件,該處理組件用于判斷新增、更新或者刪除的增量數(shù)據(jù),同時,該處理組件還用于支持新增、更新或者刪除的增量數(shù)據(jù)入庫,并支持設置忽略更新字段;
步驟2、從源關(guān)系型數(shù)據(jù)庫中獲取增量數(shù)據(jù);
步驟3、將獲取的增量數(shù)據(jù)傳送至目標關(guān)系型數(shù)據(jù)庫,根據(jù)源關(guān)系型數(shù)據(jù)庫的處理組件設置的刪除標識,目標關(guān)系型數(shù)據(jù)庫的處理組件對該數(shù)據(jù)庫的對應數(shù)據(jù)進行同步刪除;
步驟4、隨后,目標關(guān)系型數(shù)據(jù)庫的處理組件通過比對查詢該數(shù)據(jù)庫是否包含從源關(guān)系型數(shù)據(jù)庫獲取的增量數(shù)據(jù),
若存在,則處理組件進行更新操作,此時,還可以根據(jù)設置的忽略更新字段進行忽略,
若不存在,則處理組件進行插入操作;
步驟5、完成源關(guān)系型數(shù)據(jù)庫中增量數(shù)據(jù)到目標關(guān)系型數(shù)據(jù)庫的入庫。
3.根據(jù)權(quán)利要求2所述的一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,步驟2中,增量數(shù)據(jù)的來源可以是MySQL、Oracle、SqlServer、postgreSQL任一關(guān)系型數(shù)據(jù)庫,也可以是關(guān)系型數(shù)據(jù)庫包含的不同格式的文件。
4.根據(jù)權(quán)利要求3所述的一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,通過時間戳字段從源關(guān)系型數(shù)據(jù)庫MySQL的庫表中獲取增量數(shù)據(jù),或者,通過讀取源關(guān)系型數(shù)據(jù)庫MySQL的binlog日志獲取增量數(shù)據(jù)。
5.根據(jù)權(quán)利要求3所述的一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,在執(zhí)行步驟3之前,首先查看獲取增量數(shù)據(jù)的格式,
若增量數(shù)據(jù)為avro格式,則直接執(zhí)行步驟3,
若增量數(shù)據(jù)不是avro格式,則基于NiFi默認的數(shù)據(jù)格式為avro,應當將獲取增量數(shù)據(jù)的格式轉(zhuǎn)換為avro格式,隨后執(zhí)行步驟3。
6.根據(jù)權(quán)利要求5所述的一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,當源關(guān)系型數(shù)據(jù)庫為MySQL時,
a)通過sql查詢獲取到的增量數(shù)據(jù)為avro格式,獲取的增量數(shù)據(jù)沒有操作標識,此時,通過處理組件手動設置比對字段,然后執(zhí)行步驟3,將獲取的增量數(shù)據(jù)傳送至目標關(guān)系型數(shù)據(jù)庫,
b)通過binlog日志獲取到的增量數(shù)據(jù)為json格式,獲取的增量數(shù)據(jù)帶有操作標識table.operation,此時,需要對json相應的路徑進行處理以得到入庫時所期望的字段值key:value映射方式,同時將binlog日志中的操作類型添加到table.operation屬性中,隨后執(zhí)行步驟3。
7.根據(jù)權(quán)利要求6所述的一種基于NiFi的關(guān)系型數(shù)據(jù)庫增量數(shù)據(jù)的入庫方法,其特征在于,當獲取的增量數(shù)據(jù)沒有操作標識時,如果獲取增量數(shù)據(jù)的源關(guān)系型數(shù)據(jù)庫或者增量數(shù)據(jù)入庫的目標關(guān)系型數(shù)據(jù)庫是MySQL/MariaDB數(shù)據(jù)庫和PostgreSQL9.5及以上版本數(shù)據(jù)庫,則分別根據(jù)ON DUPLICATE KEY UPDATE和ON CONFLICT DO UPDATE SET省略手動比對步驟,處理組件通過主鍵判斷直接進行插入更新操作。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮云信息技術(shù)股份公司,未經(jīng)浪潮云信息技術(shù)股份公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010715426.0/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種ApacheNiFi在源數(shù)據(jù)錄入數(shù)據(jù)庫方面的擴展應用方法和系統(tǒng)
- 一種基于NiFi的大數(shù)據(jù)計算方法及裝置
- 一種基于NiFi的數(shù)據(jù)采集方法
- 一種數(shù)據(jù)處理方法、裝置、設備及介質(zhì)
- 一種用于NIFI任務的分布式監(jiān)控系統(tǒng)及方法
- 一種基于NiFi的大數(shù)據(jù)量非結(jié)構(gòu)文件采集方法及系統(tǒng)
- 基于NiFi的數(shù)據(jù)處理方法和裝置
- 一種基于分布式架構(gòu)的空間數(shù)據(jù)轉(zhuǎn)換方法
- 一種NiFi同步數(shù)據(jù)量統(tǒng)計方法
- 一種基于NiFi更新Delta Lake的方法
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





