JDBC
Spectrum Spatial は、SQL Server、Oracle、PostGres/PostGIS、GeoPackage を含む複数の JDBC データ ソースを直接サポートしています。タイプ 3 以降のドライバがサポートされています。
また、Spectrum Spatial では、mySQL、DB2 などのサポート対象外の JDBC データ ソースにもアクセスできます。これらのデータ ソースは、XY テーブルとしてアクセスしない限り、非空間テーブルになります。
Spectrum Spatial では、JDBC ベースのデータ ソースを読み取り/書き込み用データ ソースとして扱います。
JDBC ベースのデータ ソース プロバイダにアクセスするには、データベース JDBC ドライバを /<spectrum root>/server/modules/spatial/lib と /<spectrum root>/server/app/lib の両方のディレクトリに追加して、選択されたデータベースを使用できるようにします。
サポートされるデータ タイプ
Spectrum Spatial は、JDBC データ ソースから文字列、日付、数値を読み取ります。以下の表に、JDBC タイプを Spectrum Spatial タイプにマップする方法を示します。
java.sql.Types | Spectrum Spatial のデータ タイプ |
bigint | LONG_INTEGER |
BINARY | BINARY |
BIT | BOOLEAN |
BLOB | BINARY |
BOOLEAN | BOOLEAN |
char | STRING |
DATE | DATE |
DECIMAL | DOUBLE |
DOUBLE | DOUBLE |
FLOAT | DOUBLE |
INTEGER | INTEGER |
LONGVARBINARY | BINARY |
LONGVARCHAR | STRING |
NUMERIC | DOUBLE |
real | DOUBLE |
SMALLINT | SHORT_INTEGER |
TIME | TIME |
TIMESTAMP | DATE_TIME |
tinyint | SHORT_INTEGER |
VARBINARY | BINARY |
VARCHAR | STRING |
NVARCHAR | STRING |
NCHAR | STRING |
OTHER (NVARCHAR2、NCHAR) | STRING |
プライマリ キー
テーブルのプライマリ キーは、常に明示的で、JDBC から返されるデータベースのメタデータによって決まります。
読み取り専用列
列は、データベースのメタデータに従って、読み取り専用とマーク付けされます。自動インクリメント列が、読み取り専用としてマーク付けされます。
MI SQL の最適化
JDBC データ ソース プロバイダには、次の MI SQL コンストラクトの最適化が含まれています。
- 属性演算子 (例)
- Between (例)
- IN List (例)
- Like (例)
- AND (例)
- OR および NOT (例)
- AVG、SUM、COUNT、MIN、MAX
- GROUP BY、ORDER BY
- LIMIT と OFFSET
詳細については、付録のデータ ソース プロバイダへの委任を参照してください。
可変性
Spectrum Spatial は、JDBC テーブルの可変性をサポートしていません。このデータ ソースからのテーブルはキャッシュされないため、Spectrum Spatial はテーブルのメタデータが変更されているかどうかを確認しません。ただし、名前付きテーブルの定義が変更されているかどうかは確認します。変更されている場合は、名前付きテーブルを破棄して再度読み込みます。変更されていない場合は、既存のテーブルを使用して、データ アクセス操作を実行します。
Spectrum Spatial のサポート対象の JDBC データ ソース プロバイダの可変性はサポートされています。
XY テーブルのサポート
JDBC テーブルは、XY テーブルのサポートに記載したルールを使用すると、XY テーブルとしてアクセスできます。
テーブルを XY テーブルとして識別する方法はいくつかあります。
- エントリが MAPINFO_MAPCATALOG 内にある場合は、X 列と Y 列および座標系が識別されます。X と Y 列は統合されてジオメトリ列になります。
- XY テーブルが Spectrum Spatial™ Manager を使用して作成された場合、MAPINFO_MAPCATALOG 内のエントリは必要ありません。XY テーブルの作成 を参照してください。
- 列と座標系を名前付きテーブル定義で明示的に定義します。