ある格納タイプから別の格納タイプへのデータの移行
[データ格納タイプの移行(Migrate Storage)] ジオプロセシング ツール、ArcSDE 管理コマンド、ArcObjects または ArcSDE API を使用して、既存のバイナリ列、空間列、またはラスタ列をある格納タイプから別の格納タイプに移行することができます。これを行うには、データ変換先の新しい格納タイプに設定された ATTRBUTE_BINARY、GEOMETRY_STORAGE、または RASTER_STORAGE パラメータが含まれるコンフィグレーション キーワードを指定します。
正しいパラメータと値が含まれるようにキーワードを適切に作成することが重要です。不正確な情報や欠落した情報のあるキーワードを指定すると、その情報が DEFAULTS キーワードから読み取られます。このため、移行専用のカスタム キーワードを作成し、そのキーワードにデータ移行先のパラメータと値、および UI_TEXT パラメータが含まれていることを確認することをお勧めします。UI_TEXT パラメータにより、キーワードは ArcGIS クライアントで利用できるようになります。
コンフィグレーション キーワードとコンフィグレーション パラメータの詳細については、「DBTUNE コンフィグレーション キーワードおよびコンフィグレーション パラメータとは」および、その関連項目をご参照ください。
以下は、DBMS(データベース管理システム)でサポートされている移行パスです。
DBMS |
コンフィグレーション パラメータ |
移行元/移行先 |
---|---|---|
Oracle |
ATTRIBUTE_BINARY |
LONG RAW → BLOB |
GEOMETRY_STORAGE |
LONG RAW (SDEBINARY) → BLOB (SDELOB) |
|
LONG RAW → ST_GEOMETRY |
||
BLOB → ST_GEOMETRY |
||
SDO_GEOMETRY → ST_GEOMETRY |
||
RASTER_STORAGE |
LONG RAW → BLOB |
|
LONG RAW → ST_RASTER* |
||
BLOB → ST_RASTER* |
||
PostgreSQL |
RASTER_STORAGE |
BYTEA → ST_RASTER* |
SQL Server |
RASTER_STORAGE |
IMAGE → ST_RASTER* |
GEOMETRY_STORAGE | SDEBINARY → GEOMETRY | |
SDEBINARY → GEOGRAPHY | ||
OGCWKB → GEOMETRY | ||
OGCWKB → GEOGRAPHY |
*ST_Raster は、ジオデータベースにインストールする必要があります。詳細は、「Oracle での ST_Raster タイプのインストール」、「PostgreSQL での ST_Raster タイプのインストール」、または「SQL Server での ST_Raster タイプのインストール」をご参照ください。
移行されるテーブルがバージョン対応登録されている場合は、別の格納タイプに移行すると ADD テーブルの対応する列も変更されます。フィーチャクラスの履歴管理が有効な場合は、履歴管理テーブルの列も変更されます。
データを移行する理由
データの移行には、1)SQL(Structured Query Language)を使用して空間データやラスタ データにアクセスできるようにする、2)将来サポートされなくなる可能性のあるデータ タイプからサポートされるデータ タイプに変更する、という 2 つの理由があります。
SQL アクセス
SQL によってジオデータベースの情報にアクセスすれば、ジオデータベースによって管理される表形式データを(ArcObjects 環境で開発されていない)外部アプリケーションから操作できます。これらのアプリケーションからジオデータベース内の空間データまたはラスタ データにアクセスする必要がある場合は、空間データまたはラスタ データを SQL アクセスが可能なデータ タイプで格納する必要があります。たとえば、ST_Raster 格納タイプを使用すると、ラスタ データが BLOB、LONG RAW、IMAGE、BINARY、または BYTEA のフィールドで格納されている場合は簡単にアクセスできないラスタ データに、SQL でアクセスすることができます。
将来のリリースでサポートされない可能性のあるタイプからの移行
Oracle は、自社のデータベースで LONG RAW データ タイプの代わりに、BLOB または BFILE データ タイプを使用することを推奨しています。LONG RAW 列はまだサポートされていますが、現在使用している Oracle の ArcSDE ジオデータベースに LONG RAW の属性、ジオメトリ、またはラスタ フィールドがある場合は、これらがサポートされなくなるときに備えて、別の形式に移行しておく必要があります。
ジオデータベースでの属性、ジオメトリ、およびラスタ列の格納は、DBTUNE パラメータの ATTRIBUTE_BINARY、GEOMETRY_STORAGE、および RASTER_STORAGE でそれぞれ制御されます。DBTUNE DEFAULTS コンフィグレーション キーワードにおけるこれらのパラメータのデフォルト値は、ジオデータベースの作成時に使用した ArcGIS のリリースによって異なります。次の表は、Oracle の ArcSDE ジオデータベースの DBTUNE テーブルの DEFAULTS キーワードにおけるデフォルトの設定を示しています。
パラメータ |
9.3 以降のリリースのデフォルト |
ArcGIS 9.2 のデフォルト |
ArcGIS 9.2 より前のデフォルト |
---|---|---|---|
ATTRIBUTE_BINARY |
BLOB |
BLOB |
LONG RAW |
GEOMETRY_STORAGE |
ST_GEOMETRY |
LONG RAW (SDEBINARY) |
LONG RAW (SDEBINARY) |
RASTER_STORAGE |
BLOB |
LONG RAW |
LONG RAW |
デフォルト パラメータ設定を使用して新しい(アップグレードされていない)9.3 以降のリリースのジオデータベースで作成されたデータは、LONG RAW 格納タイプを使用しません。ただし、作成時にこれらのパラメータのいずれかまたはすべてが LONG RAW に設定されている既存データ、あるいはアップグレード済みジオデータベース内でこれらのパラメータが LONG RAW に設定されている新規データには、依然として LONG RAW 列が含まれます。これらの列のデータ タイプを変更するには、DBTUNE 設定を変更してデータを移行する必要があります。
DBTUNE 設定を変更するには、sdedbtune コマンドを使用してパラメータを既存のキーワードに追加するか、または DBTUNE テーブルの内容をエクスポートして変更し、その後インポートします。sdedbtune コマンドを使用する方法については、『ArcSDE コマンド リファレンス』をご参照ください。
移行する前に
データを変換するには次の条件に従う必要があります。
- データを移行する前に、データのバックアップを作成します。
- 空間列タイプを変換する場合は、データを高精度で格納する必要があります。データが現在、低精度で格納されている場合は、最初にデータを高精度に移行してから、格納タイプを移行します。これは、[空間参照のアップグレード] ジオプロセシング ツールか、sdelayer コマンドの alter 操作のいずれかを使用して実行できます。データセットの精度の移行については、「高精度への移行」をご参照ください。
- 空間列を変換する場合は、テーブルにオブジェクト ID 列が含まれている必要があります。レイヤをジオデータベースに登録してこの列を自動的に追加するか、sdetable コマンドの alter_reg 操作を使用して追加できます。
- データ タイプの移行時に指定するコンフィグレーション キーワードでは、GEOMETRY_STORAGE、ATTRIBUTE_BINARY または RASTER_STORAGE パラメータに正しい値を設定する必要があります。たとえば、LONG RAW ジオメトリ列を ST_GEOMETRY に移行するのに、指定したキーワードで GEOMETRY_STORAGE パラメータが SDO_GEOMETRY に設定されている場合、これはサポートされている移行パスではないため、移行は失敗します。
- データがあるデータ タイプから別のデータ タイプに移行されると、データのコピー先のデータベースに新しいセグメントが作成されます。移行が完了すると、メタデータは新しいセグメントに再ポイントされ、古いセグメントは削除されます。これは、移行中にはデータのコピーが 2 つ存在することを意味します。このため、データベースに 2 つのデータ コピーを格納できる十分な空容量があることを確認してください。
- 属性、ラスタ、およびジオメトリの格納は、Oracle の BLOB データ タイプに移行することができるため、移行処理を進める前に「Oracle のジオデータベースの BLOB データ格納」を確認することをお勧めします。
- 移行中の列が含まれているテーブルの所有者としてログインしている必要があります。
- フィーチャクラスを SQL Server の GEOGRAPHY タイプに移行するには、データが GEOGRAPHY タイプでサポートされている地理座標系のいずれかであり、フィーチャクラスに Z 座標値または M 座標値が含まれていない必要があります。ヒント:
SQL Server の GEOGRAPHY タイプで使用可能なサポートされている座標系のリストは、SQL Server のシステム ビュー sys.spatial_reference_systems にあります。
移行用のツール
データを移行する方法については、以下のトピックをご参照ください。