首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

使用 ArcExplorer 視覺化 DB2 空間資料完整指南

     編輯:DB2 教學

前言

空間資料儲存於 DB2 資料庫中時,透過地圖視覺化呈現對理解資料關係至關重要。IBM 與 ESRI 合作提供免費工具 ArcExplorer,支援在 Linux、UNIX、Windows 等平台上讀取 DB2 Spatial Extender (Linux/UNIX/Windows) 以及 DB2 for z/OS 的空間資料。本文詳細說明安裝部署、資料庫啟用、Shapefile 匯入、聯邦查詢設定與地圖視覺化操作。

一、ArcExplorer 部署與啟動

1. 取得檔案

從 DB2 Spatial Extender 網站下載 ZIP 封存,解壓縮後包含 5 個核心 JAR 檔:aeJava_help.jar、arcims_aej.jar、arcims_sdk.jar、sde_sql3.jar、XML.jar,以及啟動腳本 arcexplorer。

2. 環境需求

  • 系統已安裝 Java Runtime Environment (JRE)。
  • 設定 CLASSPATH 指向 DB2 JDBC 驅動 db2java.zip (通常位於 ~/sqllib/java/db2java.zip),而非複製至 ArcExplorer 目錄。

3. 啟動方式

$ cd /usr/local/arcexplorer
$ ./arcexplorer

啟動後將見到 ArcExplorer 主視窗 (圖 1)。

啟動的 ArcExplorer

二、資料庫空間功能啟用與資料匯入

1. DB2 for Linux, UNIX, and Windows

$ db2 create database spatial
$ db2se enable_db spatial

忽略警告 GSE1036W (僅建議調整配置參數)。

匯入 Shapefile 範例 (以 sjMainStreets 為例)

$ db2se import_shape SPATIAL -filename sjMainStreets -srsName NAD83_SRS_1 \
  -tableName MAIN_STREETS -createTableFlag 1 -spatialColumn SHAPE \
  -idColumn SE_ROW_ID -commitScope 1000 -client 1
$ db2se register_spatial_column SPATIAL -tableName MAIN_STREETS \
  -columnName SHAPE -srsName NAD83_SRS_1

關鍵點:

  • 資料表必須包含 SE_ROW_ID (INTEGER) 作為唯一識別欄,可由匯入工具自動產生。
  • 空間欄位必須註冊空間參考系統 (SRS),否則 ArcExplorer 無法辨識。

2. DB2 for z/OS

使用 JCL 腳本呼叫 DSN5SCLP 工具,Shapefile 需放置於 HFS (Hierarchical File System) 資料集。匯入與註冊步驟類似,但需指定 DB2 位置名稱 (如 STLEC1) 並透過 tableCreationParameters 指定目標資料庫。

三、聯邦查詢架構:讓 ArcExplorer 存取 z/OS 空間資料

ArcExplorer 僅支援 DB2 for Linux/UNIX/Windows 的目錄視圖與方法呼叫語法 (如 geometry.ST_Buffer(...)),無法直接存取 z/OS (僅支援函數呼叫語法)。解決方案:建立聯邦伺服器,在 Linux/UNIX/Windows 端建立 DB2 實例作為聯邦閘道。

架構流程 (圖 2)

聯邦設置架構圖

  1. ArcExplorer 查詢導向聯邦伺服器 (DB2 LUW) 的視圖 (如 MAIN_STREETS_HOST)。
  2. 視圖基於暱稱 (MAIN_STREETS_NICK),暱稱對應遠端視圖 MAIN_STREETS_VIEW。
  3. 遠端視圖使用 ST_AsBinary(shape) 將幾何轉為 WKB 格式傳輸。
  4. 聯邦伺服器接收 WKB,再以 ST_MultiLineString(wkb, srsId) 重建幾何供 ArcExplorer 使用。

SQL 實作範例 (清單 5)

CREATE WRAPPER drda;
CREATE SERVER host TYPE DB2/ZOS VERSION '9' WRAPPER DRDA
  AUTHORIZATION sysadm PASSWORD password OPTIONS ( DBNAME 'HOST' );
CREATE USER MAPPING FOR USER SERVER host
  OPTIONS ( REMOTE_AUTHID 'SYSADM', REMOTE_PASSWORD 'PASSWORD' );
SET PASSTHRU host;
CREATE VIEW main_streets_view AS
  SELECT ..., db2gse.ST_AsBinary(shape) AS wkb, db2gse.ST_SrId(shape) AS srsId
  FROM main_streets;
SET PASSTHRU RESET;
CREATE NICKNAME main_streets_nick FOR host.sysadm.main_streets_view;
CREATE VIEW main_streets_host AS
  SELECT ..., db2gse.ST_MultiLineString(wkb, srsId) AS shape
  FROM main_streets_nick;
! db2se register_spatial_column spatial -tableName MAIN_STREETS_HOST -columnName SHAPE -srsName NAD83_SRS_1;

四、空間資料視覺化操作

  1. 新增圖層:選單 Layer > Add Layers,建立資料庫連線 (需在本地 DB2 編目),輸入帳號密碼 (圖 3)。
  2. 選擇圖層:從連線物件展開,勾選欲顯示的空間欄位 (如 MAIN_STREETS, ZIP_CODES, CENSUS_BLOCKS) 加入 (圖 4)。
  3. 地圖操作:左側面板可勾選圖層顯示/隱藏、調整繪製順序、縮放、識別要素屬性 (圖 5)。
  4. 查詢建構器:依屬性過濾幾何 (如人口普查區 HOUSHO_29=6),圖 7 示範。

設定 DB2 連線

新增圖層

取得幾何屬性

呈現 z/OS 空間資料

Query Builder 過濾

五、效能考量

  • 大量資料時,建議在空間欄位建立適當空間索引。
  • 聯邦查詢會增加網路往返與轉換開銷,生產環境評估專用連線或資料複寫。
  • ArcExplorer 為 Java 應用,記憶體設定 (-Xmx) 需視資料量調整。

六、結語

透過 ArcExplorer 與 DB2 Spatial Extender、聯邦技術結合,可在單一介面整合視覺化分散於 LUW 與 z/OS 的空間資料,極大降低跨平台 GIS 應用開發門檻。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved