ArcGIS から Teradata データ ウェアハウスに接続し、データのサブセットに対して複雑な空間分析を実行できます。また、編集可能なフィーチャ サービスとしてデータのサブセットを ArcGIS for Server に公開することもできます。これらのフィーチャ サービスは、編集者がデータの更新に使用するクライアント アプリケーションに追加できます。
ArcGIS から Teradata データベースに接続するには、ArcGIS クライアント コンピューターに、Teradata GSS クライアント、ICU ライブラリ、および ODBC ドライバーをインストールします。詳細については、「Teradata への接続」をご参照ください。
サポートされる Teradata データ ウェアハウスおよびクライアント ライブラリのバージョンのリストについては、「ArcGIS の Teradata データ ウェアハウス アプライアンス要件」をご参照ください。
Teradata ST_Geometry タイプを使用して、空間データを Teradata に格納できます。ST_Geometry は、Teradata データ ウェアハウスのデフォルトのインストールに含まれています。
データのサブセットの使用
多くの場合、Teradata には大量のデータが格納されます。ArcGIS から分析を実行したりデータを公開したりするには、データのサブセットを使用します。使用方法は、データで何をしたいかによって異なります。
- マップ内での表示と解析のためにデータを ArcMap に追加する場合、クエリ レイヤーを追加して、データのサブセットのみを返すクエリ レイヤー式を定義します。
- マップ サービスを公開するためにデータを ArcMap に追加する場合、データのサブセットのみを含むデータベース ビューを定義します。データベース ビューはデータベースに格納されます。ビューの定義には、[データベース ビューの作成 (Create Database View)] ジオプロセシング ツールまたは SQL クライアントを使用できます。
- フィーチャ サービスを公開するためにデータを ArcMap に追加する場合は、新しく追加したレイヤーをデフォルトで表示するオプションをオフにしてから、データをマップに追加します。次に、[検索条件設定] ダイアログ ボックスを開き、SQL を使用してデータのサブセットを定義します。ArcMap に表示されるデータの量を制限したら、レイヤーを表示して、公開するマップを準備します。
ArcGIS で Teradata データを使用するための追加のガイドライン
ArcGIS で Teradata を使用するためのガイドラインを以下のリストに示します。
- テーブル内の空間列に「shape」という名前を付けるか、ビュー内で「shape」というエイリアスを作成する必要があります。
Teradata ST_Geometry の基礎となる格納タイプは、CLOB です。そのため、列に空間データが格納されていることを ArcGIS が識別できるように、「shape」という列名または列のエイリアスを作成する必要があります。
- Teradata ST_Geometry 列に空間インデックスを作成して維持するには、Teradata から提供されるテッセレーション関数を使用する必要があります。
Teradata では、定義済みの対象領域を含むテッセレーション空間インデックスを使用します。そのため、拡大、縮小、画面移動など、動的な入力に基づく ArcGIS の空間処理では、テッセレーション インデックスを使用することはできません。しかし、クエリ レイヤーを定義する SQL ステートメントが明示的にテッセレーション インデックスを使用し、対象領域に基づいてデータのサブセットを検索する場合は、テッセレーション インデックスをクエリ レイヤーで使用できます。
- ArcGIS には、マップのフィーチャをレンダリングしたり Web サービスを公開したりするために、一意の ID フィールドが必要です。ArcMap では、マップに空間テーブルを追加するとき、この一意の ID フィールドを指定するよう求められます。
ArcGIS ツールは、データベースの一意の ID フィールドに新しい値を挿入しません。フィールドに値を挿入するには、データベースを使用します。Teradata は、データ タイプも、ID フィールドに値を入力するための組み込み機能も持たないため、データベース テーブルの新しい行を作成する ArcGIS ツールは、Teradata で使用できません。
- Teradata ユーザーであればわかるように、Teradata 14.x ST_Geometry は 2 次元空間データのみをサポートします。そのため、Z 座標または M 座標を含む空間データを Teradata 14.x に貼り付けることはできません。Teradata 15.0 ST_Geometry はZ 座標をサポートしていますが、M 座標はサポートしていません。そのため、M 座標を含む空間データを Teradata 15.0 に貼り付けることはできません。
- ArcGIS を使用してフィーチャクラスを Teradata データベースに追加した場合、そのフィーチャクラスに対して指定した空間参照が Teradata システム テーブル内に存在しなければ、ArcGIS は、Teradata SPATIAL_REF_SYS テーブルと (結果的に) GEOMETRY_COLUMNS テーブルにレコードを追加します。
これによって、デフォルトで Teradata で提供される空間参照よりも多くの空間参照を使用できるようになります。ただし、Teradata のメジャー リリースにアップグレードすると、これらのテーブルが削除され、デフォルトの値のみを使用して再作成される場合があります。
Teradata をアップグレードする前に、使用しているデータベースを必ずバックアップしてください。Teradata のアップグレード後、必要な場合にテーブルを復元できるように、それらのテーブルのレコードを必ずバックアップに含めてください。データベースのアップグレード操作を行う際に、以下の一般的な手順に従って SPATIAL_REF_SYS レコードと GEOMETRY_COLUMNS レコードをバックアップおよび復元できます。
- データベースのバックアップを作成します。
- SPATIAL_REF_SYS テーブルと GEOMETRY_COLUMNS テーブルのコピーを作成するデータベースに接続します。
この例では、データベース名は mybackupdb です。
database mybackupdb;
- テーブルのバックアップ コピーを作成します。
この例では、コピー元のテーブルは sysspatial データベース内にあります。
CREATE TABLE mybackupdb.spatial_ref_sys AS sysspatial.spatial_ref_sys WITH DATA; CREATE TABLE mybackupdb.geometry_columns AS sysspatial.geometry_columns WITH DATA;
- Teradata ソース データベースをアップグレードします。
- テーブルのコピー先のデータベースに接続します。
- テーブルを、アップグレード済みのデータベースに復元します。
--Restore the geometry columns table. INSERT INTO sysspatial.geometry_columns SELECT * FROM mybackupdb.geometry_columns; --Restore the spatial_ref_sys table. INSERT INTO sysspatial.spatial_ref_sys SELECT * FROM mybackupdb.spatial_ref_sys MINUS SELECT * FROM sysspatial.spatial_ref_sys;
- テーブルの内容が復元されたら、そのテーブルのバックアップ コピーを削除できます。
DROP TABLE mybackupdb.spatial_ref_sys; DROP TABLE mybackupdb.geometry_columns;
- 必要に応じて、これらのテーブルに対する権限を、データベースにデータを作成するユーザーに再度付与してください。