ある格納タイプから別の格納タイプへのデータの移行
[データ格納タイプの移行(Migrate Storage)] ジオプロセシング ツールを使用して、既存のバイナリ、空間、またはラスタ列を格納タイプ間で移行することができます。これを行うには、データ変換先の新しい格納タイプに設定された ATTRBUTE_BINARY、GEOMETRY_STORAGE、または RASTER_STORAGE パラメータを含むコンフィグレーション キーワードを指定します。
コンフィグレーション キーワードとコンフィグレーション パラメータの詳細については、「DBTUNE コンフィグレーション キーワードおよびコンフィグレーション パラメータとは」および、その関連項目をご参照ください。
正しいパラメータと値が含まれるようにキーワードを適切に作成することが重要です。不正確な情報や欠落した情報のあるキーワードを指定すると、その情報が DEFAULTS キーワードから読み取られます。移行専用のカスタム キーワードを作成することをお勧めします。キーワードには、データの移行先のパラメータと値、UI_TEXT パラメータを含めるよう留意します。UI_TEXT パラメータにより、キーワードは ArcGIS クライアントで利用できるようになります。
sdedbtune コマンドを使用して、キーワードを追加するか、または既存のキーワードおよびパラメータ設定を変更します。ArcSDE 管理コマンド ツールとドキュメントは、ArcSDE アプリケーション サーバと一緒にインストールされます。
以下は、各 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 つがあります。
- SQL(Structured Query Language)を使用して空間データやラスタ データにアクセスするため
- 将来サポートされなくなる可能性のあるデータ タイプからサポートされるデータ タイプに変更するため
SQL を使用したデータへのアクセス
SQL によってジオデータベースの情報にアクセスすれば、ジオデータベースによって管理される表形式データを(ArcObjects 環境で開発されていない)外部アプリケーションから操作できます。これらのアプリケーションからジオデータベース内の空間データまたはラスタ データにアクセスする必要がある場合は、空間データまたはラスタ データを SQL アクセスが可能なデータ タイプで格納する必要があります。たとえば、ST_Raster 格納タイプを使用すると、ラスタ データが BLOB、LONG RAW、IMAGE、BINARY、または BYTEA フィールドで格納されている場合、この格納タイプを用いないと SQL でラスタ データに容易にはアクセスできません。
将来のリリースでサポートされない可能性のあるタイプからの移行
Oracle は、自社のデータベースで LONG RAW データ タイプの代わりに、BLOB または BFILE データ タイプを使用することを推奨しています。LONG RAW 列はまだサポートされていますが、現在使用している Oracle のジオデータベースに LONG RAW の属性、ジオメトリ、またはラスタ フィールドがある場合は、これらがサポートされなくなるときに備えて、別の形式に移行しておく必要があります。
ジオデータベースでの属性、ジオメトリ、およびラスタ列の格納は、DBTUNE パラメータの ATTRIBUTE_BINARY、GEOMETRY_STORAGE、および RASTER_STORAGE でそれぞれ制御されます。DBTUNE DEFAULTS コンフィグレーション キーワードにおけるこれらのパラメータのデフォルト値は、ジオデータベースの作成時に使用した ArcGIS のリリースによって異なります。次の表は、Oracle のジオデータベースの DBTUNE テーブルの DEFAULTS キーワードにおけるデフォルトの設定を示しています。
Parameter |
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 スクリプトを使用します。
移行する前に
データを変換するには次の条件を満たす必要があります。
- データを移行する前に、データのバックアップを作成します。
- 空間列データ タイプを変換する場合は、データを高精度で格納する必要があります。データが現在、低精度で格納されている場合は、最初にデータを高精度に移行してから、格納タイプを移行します。これは、[空間参照の更新(Upgrade Spatial Reference)] ジオプロセシング ツールか、sdelayer コマンドの alter 操作のいずれかを使用して実行できます。データセットの精度の移行については、「高精度への移行」をご参照ください。
- 空間列を変換する場合は、テーブルにオブジェクト ID 列が含まれている必要があります。レイヤをジオデータベースに登録すると、この列が自動的に追加されます。
- データ タイプの移行時に指定するコンフィグレーション キーワードでは、GEOMETRY_STORAGE、ATTRIBUTE_BINARY または RASTER_STORAGE パラメータに正しい値を設定する必要があります。たとえば、LONG RAW ジオメトリ列を ST_GEOMETRY に移行するのに、指定したキーワードで GEOMETRY_STORAGE パラメータが SDO_GEOMETRY に設定されている場合、これはサポートされている移行パスではないため、移行は失敗します。
- 属性、ラスタ、およびジオメトリの格納は、Oracle の BLOB データ タイプに移行することができるため、移行処理を進める前に「Oracle のジオデータベースの BLOB データ格納」を確認することをお勧めします。
- 移行中の列が含まれているテーブルの所有者としてログインしている必要があります。
- フィーチャクラスを SQL Server の GEOGRAPHY タイプに移行するには、データが GEOGRAPHY タイプでサポートされている地理座標系のいずれかである必要があります。ヒント:
SQL Server の GEOGRAPHY タイプで使用可能なサポートされている座標系のリストは、SQL Server のシステム ビュー sys.spatial_reference_systems にあります。
- ジオデータベースが SQL Server 2008 または 2008 R2 にある場合、SQL Server の GEOGRAPHY タイプに移行されるフィーチャクラスに、Z 座標値または M 座標値を含めることはできません。