arcgis地理空間數據庫學習記錄05-管理分佈式數據庫

5.1 同步複製技術概述

      爲了解決多級應用、分佈在不同地方的數據的管理維護、同步更新等問題,ArcGIS提供了分佈式地理數據庫(Distributed geographic database)實現分佈的地理數據庫的管理,同步複製、更新等功能。

        通過爲地理數據庫創建複本(Replica),在目標地理數據庫上創建相同的數據,在數據變更後,通過數據同步,實現分佈式的地理數據的同步更新。

5.2 同步複製技術使用場景

1.需要與網絡斷開連接的移動用戶和現場工作人員

2.需要在不同的組織級別(城市、縣、州)維護數據副本的用戶

3.需要在不同的地理環境中維護數據副本的用戶

4.需要向承包商分發工作的用戶

5.需要生產和發佈地理數據庫的用戶

5.3 同步複製技術特點

        ArcGIS提供的建立在版本機制(和歸檔機制且具有全局ID)之上的數據分發的方法,可以在2個或者更多的GDB中分佈式地管理和應用數據的拷貝;

       支持所有的Geodatabase數據模型,包括拓撲和幾何網絡;

       鬆散耦合的同步機制,可以獨立地編輯各個GDB, 在需要的時候對它們實施數據同步;

       跨數據庫平臺之間可以實現複製;

      有許多可選的設置用來支持不同類型的工作流。

 

5.4 同步複製技術理念

        說到ArcGIS數據庫複製,就不得不先提下分佈式數據庫.所謂的分佈式數據庫,常是由一組物理上或邏輯上分佈的計算機組成,各個子節點相對獨立但又互相協同進行工作,共同組成一個完整的、全局的大型數據庫。

       分佈式數據庫最顯著的特點就是數據的分散存儲,這種分散存儲可以是不同的地點或是不同的數據庫。ArcGIS支持這種數據存儲方式,方便了各個部門管理本單位、本行業的數據信息,同時又利於國家、政府進行統籌規劃建設時的使用。

       既然用分佈式數據來管理數據,大家不禁要問,數據是如何進行分發、更新的呢?數據在國家、省、市、區、縣等各級行政單位間流轉又是如何管理的呢?

       ArcGIS提供的建立在版本機制(和歸檔機制)之上的數據分發的方法,可以在2個或者更多的GDB中分佈式地管理和應用數據的拷貝;

        支持所有的Geodatabase數據模型,包括拓撲和幾何網絡;

        鬆散耦合的同步機制,可以獨立地編輯各個GDB,

       在需要的時候對它們實施數據同步;

       跨數據庫平臺之間可以實現複製;

      有許多可選的設置用來支持不同類型的工作流。

 

      ArcGIS數據複製更新解決方案

      ArcGIS數據複製可以對整個或部分數據創建複本,複本之間相對獨立但又可以進行同步;在線也好、離線也罷,變化的數據能夠在所關聯的兩個複本間流動。

     利用Geodatabase歸檔:

     ArcGIS數據同步過程中更新發生變化的部分,來達到關聯複本數據的狀態一致。那麼ArcGIS如何知道那個部分、區域的數據發生了變化,如何鎖定這些數據,依靠的就是數據庫歸檔功能。

     Geodatabase歸檔:

            記錄數據在各時間點的變化

            基於版本

            用以追蹤和反演數據隨時間的變化趨勢

            提供了捕獲、管理、分析數據變化的途徑和方法

 

5.5 同步複製工具

           在ArcMap中提供了2種分佈式地理數據庫工具:

           分佈式地理數據庫工具欄和ArcToolbox工具,如下圖所示:

                                                                          分佈式地理數據庫工具欄

 

                                                                                      Toolbox工具

 

5.6 同步複製工具使用

          ArcGIS同步複製可以對整個或部分數據創建複本,複本之間相對獨立但又可以進行同步;不管在線還是離線,變化的數據能夠在所關聯的兩個複本間流動。

5.6.1 Replica (副本)

  • 每個參與複製的geodatabase都稱爲replica
  • 一個子replica由一個父replica創建成
  • 一個父replica與一個子replica構成一個“replica對” ,彼此稱爲對方的“相對應的replica”

 

5.6.2 數據同步複製類型

1. CheckIn/CheckOut

         ArcGIS還提供了CheckOut、CheckIn數據下載、上傳方式,結合離線編輯可以實現在離線的情況下來實現對數據的更新,在管線、石油、電力、交通等行業的數據採集更新中廣泛使用。

        CheckIn、CheckOut離線更新是基於版本的,且只能同步更新一次。

        CheckOut:數據下載的源頭必須是SDE數據庫,數據要註冊版本;下載的數據可以是全部的,也可以是指定區域的;下載後的數據可以是SDE、FGDB、PGDB等格式;

        CheckIn:數據上傳的目標必須是SDE數據庫,且只能更新一次。

2. OneWay單向複製

  • 單向複製的源頭即父Replica必須是SDE數據庫,複製的目標即子Replica可以是SDE Geodatabase、File Geodatabase、Personal Geodatabase;
  • 必須註冊爲版本,且註冊時不勾選“move edits to base”選項;
  • 具有GlobeID字段;對數據有讀寫權限。

        其中單向數據複製的同步又分爲由子到父的同步和由父到子的同步 
        由父到子同步:適用與數據自上而下的分發管理,可對各個子本(SDEFGDBPGDB)進行同步 
        由子到父同步:ArcGIS10的新功能;子本和父本都必須是SDE數據庫,適用於數據由下收集,自下而上彙總的情形。 

3. TwoWay雙向複製

簡單介紹

       雙向複製可用於多次將數據變更從父複本發送到子複本,或從子複本發送到父複本。如果在兩個複本地理數據庫中編輯同一行,同步複本時會檢測到衝突。提供的協調策略可用於定義衝突的處理方式。

      同步後雙向複本會繼續存在,以便用戶繼續編輯和同步複本。創建雙向複本時,目標必須是 ArcSDE 地理數據庫。

幾點必要條件

  • 數據複製的兩端必須都是SDE數據庫
  • 必須註冊爲版本,且註冊時不勾選“move edits to base”選項
  • 具有GlobeID字段;對數據有讀寫權限
  • 支持Simple Model(ArcGIS10)、Full Model

5.6.3 數據同步複製功能介紹

      本節介紹同步複製中用到的具體功能。

      在線環境和離線環境中均可使用地理數據庫複製功能。

       對於在線複製,將通過計算機網絡(有線或無線)來連接複本地理數據庫。可以使用以下形式中的任一種:

               始終在線 - 在網絡上始終可以訪問複本地理數據庫。

               間歇在線 - 在這類情況下,只能於某些時候在同一網絡上訪問複本地理數據庫。當兩個複本地理數據庫均位於網絡中 時,可以執行復本創建和複本同步操作。

       當未通過計算機網絡連接複本地理數據庫時,將進行離線複製。

       在線或離線環境中均可執行復本創建過程、同步過程以及應用架構更改過程。

1. 創建複本

      所有數據集必須來自同一企業級地理數據庫。

       您希望複製的數據必須進行版本化,但是無法通過“將編輯內容移動到基表”選項進行版本化。連接的數據庫用戶也必須具有對該數據的寫入權限。對於雙向複本和單向複本(兩種類型),所有數據集都必須具有 globalid 列並且具有高精度的空間參考。

       對於檢出複本和單向複本,子複本地理數據庫可以是企業級、文件或個人地理數據庫。

       對於雙向複本和單向“子-父”複本,子地理數據庫必須是企業級地理數據庫。

       要對單向複本使用歸檔,父工作空間必須連接至“默認”版本。對於單向“子-父”複本,子工作空間必須連接至“默認”版本。

2. 在線數據同步

        系統是根據子庫父庫存儲的Replica的XML獲取相關的角色、連接、數據描述等相關信息,然後編輯數據根據版本表、增量表將變化的數據讀取然後進行相關的操作。

        在線數據同步的原理就是從一個數據庫A後臺靜默導出數據增量包,通過網絡連接的方式在另一個數據庫B中導入獲得的數據增量包,同時數據庫B後臺靜默生成確認消息,通過網絡連接的在線方式傳輸到數據庫A,數據庫A靜默導入確認消息完成整個流程,以完成在線數據同步功能。

3. 離線數據同步

        離線數據同步的原理就是從一個數據庫A導出數據變更(.xml文件),通過發送郵件或者U盤、光盤等方式在另一個數據庫B中導入獲得的數據變更(.xml文件),進行離線同步,B導入成功後,導出確認消息(.xml文件),再次通過發送郵件或者U盤、光盤到達A數據庫,A數據庫導入確認消息,完成離線數據同步功能。

        下面4個步驟截圖即爲過程:

        父庫數據編輯導出數據(數據或者XML)->子庫接受數據->子庫導出確認消息->父庫接受確認消息

 

 

 

 

5.6.4 數據同步三種方式

本節介紹同步複製中CheckIn/CheckOut 、OneWay、TwoWay三種同步方式具體過程。

1. CheckIn/CheckOut

       簽入簽出(Check Out/In

       簽入簽出的使用在我們平常的業務中使用非常廣泛,試想有一箇中心數據庫,用戶在外邊進行數據的編輯更新,可以利用該方式事先導出Check Out文件數據庫(PGDB、FGBD、也可以是ArcSDE數據庫),用戶可以在文件數據庫文件進行編輯更新,然後在將該數據Check In進去,以保持總數據庫的同步更新。

      數據庫要求

      數據源必須爲ArcSDE GDB的數據庫,既可以註冊版本也可以非註冊版本(ArcGIS10新特性),GDB裏面既可以是Simple Model也可以是Full Model(ArcGIS10新特性)

      簽入簽出只介紹兩個工具(需要將ArcSDE數據加載到ArcMap才能高亮):

    1. 創建複本
    2. 同步變化

       創建複本

       我們可以將數據庫的所有數據導出,也可以事先將某一區域(用戶可以利用查詢條件,高亮選中數據導出),也就是我們是支持範圍選擇的。

 

 

        其實在註冊版本數據Check Out時,利用的是版本的機制,創建了一個版本(複本),本例就是創建了一個MyCheckOut版本。勾選進一步可以得到更詳細的選擇信息。

        Simple Model:簡單的點線面

        Full Model:帶有拓撲、幾何網絡等複雜數據類型

 

 

       點擊完成後我們可以看到,生成的一個文件GDB是屬性是:this geodatabase contains single generation replica,說明該數據可以進行修改簽入,而且簽入之後,就不能再次進行簽入了。簽入之後狀態會發生變化爲:this is not a replica geodatabase。

       同步變化

      然後我們對Check Out的數據CheckOut_Output.mdb進行編輯修改,

      然後選擇同步複製按鈕,選擇同步的版本,同步的數據文件.

       上面的選擇我們在版本的使用看起來比較熟悉,這更說明了同步複製也使用了版本的原理。

       在ArcGIS10版本之後可以對非註冊版本進行簽入簽出,那麼就不存在版本的概念了,也就是說我們的數據直接同步到Default版本了。

      在將數據Check In後,我們在看該mdb數據狀態已經【This is not a replica geodatabase】

2. OneWay在線數據同步

     創建複本

     在線數據同步

3. OneWay離線數據同步

    創建複本

    離線數據同步

    父庫數據編輯-導出數據(數據或者XML)-子庫接受數據-子庫導出確認消息-父庫接受確認消息

 

注意:

    DataSender才能導出數據

4. TwoWay在線數據同步

    創建複本

    在線數據同步

5. TwoWay離線數據同步

    創建複本

    離線數據同步

    父庫數據編輯-導出數據(數據或者XML)-子庫接受數據-子庫導出確認消息-父庫接受確認消息

注意:

    DataSender才能導出數據

    下面三個圖即爲DataReceive方不能導出變化數據

 

 

 

 參考:https://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/geodatabases/what-is-a-geodatabase.htm

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章