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 コンストラクトの最適化が含まれています。

詳細については、付録のデータ ソース プロバイダへの委任を参照してください。

データ ソースの可変性

ネイティブ 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 コンソールを使用して、サーバーを再起動することなく、ファイル ハンドル プールを無効にし、ファイル ハンドル キャッシュをクリアすることができます。