MapInfo ネイティブ TAB
ネイティブ TAB は、最も一般的な TAB 形式です。拡張ネイティブ TAB は、非常に大きなファイル (> 2 GB) と複数の言語をサポートすることを除けば、ネイティブ TAB と同じです。両方のネイティブ TAB 形式は同じ振る舞いをします。
Spectrum Spatial では、ネイティブ TAB を読み取り専用のデータ ソースとして扱います。
データ タイプ
Spectrum Spatial は、ネイティブな TAB ファイルにおいて、Point、MultiPoint、Linestring、MultiLineString、Polygon、MultiPolygon、MultiFeatureGeometry の各ジオメトリ タイプをサポートしています。TAB データ タイプから Spectrum Spatial の同等のデータ タイプへのマッピングを以下に示します。
TAB データ タイプ | Spectrum Spatial のデータ タイプ |
---|---|
OBJ | Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection。 レンダリングのみのコンストラクトとしてサポートされている長方形、面取り矩形、楕円、円弧、およびテキスト オブジェクト。 |
integer | Integer |
smallint | Short |
float | Double |
decimal | Double |
char | String |
largeint | Long |
integer64 | Long |
date | Date |
time | Time |
datetime | Date_Time |
logical | Boolean |
プライマリ キー
ネイティブ TAB には暗黙的なプライマリ キーがあります。それは行 ID です。この列は、Oracle の ROWNUM と同様で、データには表示されません。
MI SQL の最適化
ネイティブ TAB データ ソース プロバイダには、次の MI SQL コンストラクトの最適化が含まれています。
- EnvelopesIntersect
- IN List
- 属性演算子 (=、< >、<、<=、>、>=)
詳細については、付録のデータ ソース プロバイダへの委任を参照してください。
データ ソースの可変性
ネイティブ TAB データ ソースの場合、タイムスタンプの変更によって確認される、テーブルのスキーマまたはレコードに対する任意の変更が可変性にあたります。可変性を有効 (true) にすると、データ ソース プロバイダでは、特定の TAB グループのファイルに関する情報がキャッシュされます。キャッシュされた情報のタイム スタンプと、アクセスするファイルのタイム スタンプが比較されます。これらのタイム スタンプが異なる場合、キャッシュから情報がフラッシュされ、再度読み込まれます。
可変性がチェックされるネイティブ TAB ファイルは、.TAB、.DAT、.MAP です。
詳細については、データ ソースの可変性を参照してください。
ファイル ハンドル プール
ネイティブ TAB ファイルが頻繁に変更されない場合は、可変性を false に設定して、ファイル ハンドル プールを利用します。これにより、操作時のファイルの開閉を最小限に抑えることができます。これは、非可変性のネイティブおよびシームレス TAB ファイルとシェイプファイルにのみ使用できます。
ファイル ハンドル プールは、デフォルトで有効になります。ファイル ハンドル プールの設定は、tab-file-handle-pool.properties ファイルを使って行います。このファイルは \server\modules\spatial フォルダにあります。使用できるプロパティとして、プールに割り当てることができるハンドルの最大数 (maxTotal)、1 つのファイルに割り当てることができるハンドルの最大数 (maxTotalPerKey)、プールに保持されたファイル ハンドルが閉じられるまでの最小不使用時間 (minEvictableIdleTimeMillis) などがあります。ネイティブ TAB のファイル ハンドル キャッシュの統計情報は、JMX コンソールで参照できます (詳細は、『Spectrum Spatial ガイド』の「管理」セクションの「JMX コンソールによる、ファイル ハンドル キャッシュ統計の監視」を参照してください)。
ファイル ハンドル プールをオフにするには、\server\modules\spatial\pool-tab.properties ファイルを開き、tab.cache.enabled に false を設定します。この設定変更を反映するには、サーバーを再起動する必要があります。または、JMX コンソールを使用して、サーバーを再起動することなく、ファイル ハンドル プールを無効にし、ファイル ハンドル キャッシュをクリアすることができます。