Teradata と ArcGIS

ArcGIS から Teradata データ ウェアハウスに接続し、データのサブセットに対して高度な空間分析を実行できます。

Teradata ST_Geometry タイプを使用して、空間データを Teradata に格納できます。ST_Geometry は、Teradata データ ウェアハウスのデフォルトのインストールに含まれています。

ArcGIS から Teradata データベースに接続するには、ArcGIS クライアント コンピュータに、Teradata GSS クライアント、ICU ライブラリ、および ODBC ドライバをインストールする必要があります。詳細については、「Teradata への接続の設定」をご参照ください。

サポートされている Teradata データ ウェアハウスとクライアント ライブラリのバージョンの一覧については、「ArcGIS の Teradata データ ウェアハウス アプライアンス要件」をご参照ください。

データの操作

ほとんどの場合、Teradataには大量のデータが格納されます。ArcGIS から分析を実行するには、分析対象のデータのみを含むサブセットを使用します。サブセットはクエリ レイヤの定義として定義するか、またはデータのサブセットのみを返すデータベース ビューを作成することができます。

クエリ レイヤの定義を使用する場合、ArcMap で定義ファイルを作成します。[ファイル] [データの追加] [クエリ レイヤの追加] の順にクリックして、[新規クエリ レイヤ] ダイアログ ボックスを開き、データベースに接続してから、SQL ステートメントを入力し、データのサブセットを定義します。

注意注意:

まだデータのサブセットを定義していない場合は、ArcMap のカタログ ウィンドウのデータベース コネクションからマップへ直接データをドラッグしないでください。データ ウェアハウス アプライアンスに保存されているような非常に大きなデータセットは、マップに表示されるのに非常に長い時間がかかるためです。

データベース ビューを使用する場合、[データベース ビューの作成(Create Database View)] ジオプロセシング ツールを使用するか、または SQL を使用して、分析するデ。ータのサブセットを定義できます。

ArcGIS で Teradata のデータを使用するためのガイドライン

ArcGIS で Teradata を使用するためのガイドラインを以下のリストに示します。

  • テーブル内の空間列に「shape」という名前を付けるか、ビュー内で「shape」というエイリアスを作成する必要があります。

    Teradata ST_Geometry の基礎となる格納タイプは、CLOB です。そのため、列に空間データが格納されていることを ArcGIS が識別できるように、「shape」という列名または列のエイリアスを作成する必要があります。

  • Teradata ST_Geometry 列に空間インデックスを作成して維持するには、Teradata から提供されるテッセレーション関数を使用する必要があります。

    テッセレーション空間インデックスは、定義済みの対象領域と共に使用される事を意図しています。そのため、動的な入力に基づく拡大、縮小、画面移動などの ArcGIS の空間処理で、テッセレーション インデックスを使用することはできません。しかし、クエリ レイヤを定義する SQL ステートメントにおいて明示的にテッセレーション インデックスを使用し、対象領域に基づいてデータのサブセットを検索する場合は、テッセレーション インデックスをクエリ レイヤで使用できます。

  • ArcGIS には、マップのフィーチャをレンダリングする一意の ID フィールドが必要です。マップに空間テーブルを追加するとき、この一意の ID フィールドを指定するよう求められます。

    ArcGIS ツールは、データベースの一意の ID フィールドに新しい値を挿入しません。フィールドに値を挿入するには、データベースを使用します。Teradata は、データ タイプも、ID フィールドに値を入力するための組み込み機能も持たないため、データベース テーブルの新しい行を作成する ArcGIS ツールは、Teradata で使用できません。

  • Teradata ST_Geometry は 2 次元空間データのみをサポートします。そのため、Z 座標または M 座標を含む空間データを Teradata にコピーすることはできません。
  • ArcGIS を使用してフィーチャクラスを Teradata データベースに追加した場合、そのフィーチャクラスに対して指定した空間参照が Teradata システム テーブル内に存在しなければ、ArcGIS は、Teradata SPATIAL_REF_SYS テーブルと(結果的に)GEOMETRY_COLUMNS テーブルにレコードを追加します。

    これによって、デフォルトで Teradata で提供される空間参照よりも多くの空間参照を使用できるようになります。ただし、Teradata のメジャー リリースにアップグレードすると、これらのテーブルが削除され、デフォルトの値のみを使用して再作成される場合があります。

    アップグレードする前に、使用しているデータベースを必ずバックアップしてください。Teradata のアップグレード後、必要な場合にテーブルを復元できるように、それらのテーブルのレコードを必ずバックアップに含めてください。データベースのアップグレード操作を行う際に、以下の一般的な手順に従って SPATIAL_REF_SYS レコードと GEOMETRY_COLUMNS レコードをバックアップおよび復元できます。

    1. データベースのバックアップを作成します。
    2. SPATIAL_REF_SYS テーブルと GEOMETRY_COLUMNS テーブルのコピーを作成するデータベースに接続します。

      この例では、データベース名は mybackupdb です。

      database mybackupdb;
      

    3. テーブルのバックアップ コピーを作成します。

      この例では、コピー元のテーブルは 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;
      

    4. Teradata データベースをアップグレードします。
    5. テーブルのコピー先のデータベースに接続します。
    6. テーブルを、アップグレード済みのデータベースに復元します。

      --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;
      

    7. テーブルの内容が復元されたら、そのテーブルのバックアップ コピーを削除できます。

      DROP TABLE mybackupdb.spatial_ref_sys;
      
      DROP TABLE mybackupdb.geometry_columns;
      

関連トピック

5/12/2014