ある格納タイプから別の格納タイプへのデータの移行
[データ格納タイプの移行(Migrate Storage)] ジオプロセシング ツールを使用して、既存のバイナリ、空間、またはラスタ列を格納タイプ間で移行することができます。これを行うには、データ変換先の新しい格納タイプが設定された ATTRBUTE_BINARY、GEOMETRY_STORAGE、または RASTER_STORAGE パラメータを含むコンフィグレーション キーワードを指定します。
正しいパラメータと値が含まれるようにキーワードを適切に作成することが重要です。不正確な情報や欠落した情報のあるキーワードを指定すると、その情報が DEFAULTS キーワードから読み取られます。このため、移行専用のカスタム キーワードを作成し、そのキーワードにデータ移行先のパラメータと値、および UI_TEXT パラメータが含まれていることを確認することをお勧めします。UI_TEXT パラメータにより、キーワードは ArcGIS クライアントで利用できるようになります。
キーワードを DBTUNE テーブルに追加するには、sdedbtune コマンドが必要です。ArcSDE 管理コマンド ツールは、ArcSDE アプリケーション サーバと一緒にインストールできます。
コンフィグレーション キーワードとコンフィグレーション パラメータの詳細については、「DBTUNE コンフィグレーション キーワードおよびコンフィグレーション パラメータとは」および、その関連項目をご参照ください。
以下は、DBMS(データベース管理システム)でサポートされている移行パスです。
DBMS |
コンフィグレーション パラメータ |
移行元/移行先 |
---|---|---|
Oracle |
ATTRIBUTE_BINARY |
LONG RAW → BLOB |
GEOMETRY_STORAGE |
LONG RAW (SDEBINARY) → BLOB (SDELOB) |
|
LONG RAW(SDEBINARY)→ ST_GEOMETRY |
||
BLOB(SDELOB)→ 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 テーブルの対応する列も変更されます。フィーチャクラスの履歴管理が有効な場合は、履歴管理テーブルの列も変更されます。
データを移行する理由
データを移行する理由としては、次の 2 つがあります。1)SQL(Structured Query Language)を使用して空間データやラスタ データにアクセスできるようにする、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 設定を変更してデータを移行する必要があります。
ArcGIS 10.1 以降、SQL Server のジオデータベースで作成されたフィーチャクラスはデフォルトで Microsoft ジオメトリ タイプを使用するようになります。既存のフィーチャクラスをジオメトリ ストレージ タイプに移行するには、[データ格納タイプの移行(Migrate Storage)] ジオプロセシング ツールか Python スクリプトを使用します。
DBTUNE 設定を変更するには、sdedbtune コマンドを使用してパラメータを既存のキーワードに追加するか、または DBTUNE テーブルの内容をエクスポートして変更し、その後インポートします。sdedbtune コマンドを使用する方法については、『ArcSDE コマンド リファレンス』をご参照ください。前述したように、コマンドとリファレンスは個別にインストールされ、それぞれ、Esri Customer Care ポータルからダウンロードできます。
移行する前に
データを変換するには次の条件に従う必要があります。
- データを移行する前に、データのバックアップを作成します。
- 空間列タイプを変換する場合は、データを高精度で格納する必要があります。データが現在、低精度で格納されている場合は、最初にデータを高精度に移行してから、格納タイプを移行します。これは、[空間参照の更新(Upgrade Spatial Reference)] ジオプロセシング ツールか、sdelayer コマンドの alter 操作のいずれかを使用して実行できます。データセットの精度の移行については、「高精度への移行」をご参照ください。
- 空間列を変換する場合は、テーブルにオブジェクト ID 列が含まれている必要があります。レイヤをジオデータベースに登録すると、この列が自動的に追加されます。
- データ タイプの移行時に指定するコンフィグレーション キーワードでは、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 にあります。