ArcGISでは様々なGISデータやDBMSをサポートしています。ArcGISで使用する際には変換が必要なものも存在しますが、多くのデータは直接表示や解析を行うことができます。ファイルベースのデータはArcGIS Proのカタログ ウィンドウから直接アクセスすることで使用できますが、データベースに格納されているデータはデータベースに接続してクエリ レイヤーとして使用します。
ここではクエリ レイヤーを使用するための前提となる情報と、クエリ レイヤーと実際に使用する方法について2回にわたってご紹介します。
1回目となるこの記事ではジオデータベースとデータベースの違いなど前提となる情報についてご紹介します。
ジオデータベースはEsriがGISデータを格納するために考案したArcGISの標準データフォーマットです。ArcGISをご利用のほとんどの方はファイルジオデータベースを使用されていると思いますが、ジオデータベース名のフォルダ下の複数のファイルから構成されているものがファイル ジオデータベースとなり、データベース上に実装したものがエンタープライズ ジオデータベースとなります。
エンタープライズ ジオデータベースは[エンタープライズジオデータベースの作成]ジオプロセッシングツール等を使用してPostgreSQL等のデータベースにジオデータベースを作成し、データベースコネクションを介して接続します。
一方でRDBMSに直接接続する場合もエンタープライズ ジオデータベースと同様にデータベース コネクションを介して接続することができます。
下記はArcGIS Proから新規にデータベースコネクションを作成する画面ですが、このようにArcGISからのジオデータベースとデータベースには同じ操作で接続することができます。
同じように接続できるエンタープライズ ジオデータベースとデータベースの違いは、[エンタープライズジオデータベースの作成]ジオプロセッシングツールにあります。このツールではデータベースをジオデータベースとして使用できるようにするための設定(管理テーブル、ストアドプロシージャ等の作成)を行います。ArcGISはデータベースに接続したときに、ジオデータベースの設定の有無をチェックして設定が行われていれば接続先のデータベースをジオデータベースとして認識します。
ArcGIS Proではデータベース コネクションを右クリックして[プロパティ]をクリックすることで[データベース プロパティ]ダイアログが表示され、[一般]の[タイプ]で接続しているデータベースが種類を確認することができます。ジオデータベースの場合は接続しているRDBMS名に続いて「エンタープライズ ジオデータベース」と表示されます。
ジオデータベース テーブルとテーブル
前のセクションではジオデータベースとデータベースの違いについて簡単に説明しました。ここからはジオデータベース テーブル(フィーチャクラス)とデータベースのテーブルについて説明します。
まず、データベースのテーブルはDDLを実行して作成されたデータベースのテーブルです。空間列(SQL Serverのgeometry型やgeography型の列)を含むテーブルをレイヤーや空間テーブルと呼ぶ場合があります。
一方でジオデータベースのテーブルはArcGIS製品を使用して作成されたテーブルです。[フィーチャクラスの作成]ジオプロセシング ツール等を使用して作成した、空間情報(空間列)を持つテーブルはArcGISではフィーチャクラスとなります。
データベースのテーブルとジオデータベースのテーブル(フィーチャクラス)は、ジオデータベースにそのテーブルの設定情報が格納されているかどうかで区別されます。これらの区別は設定の有無、もしくは概念的なもののため下記のArcGIS ProでPostgreSQLデータベース(geodb)に接続したカタログウィンドのように、同じデータベースユーザー(gisuser)に、ジオデータベースのフィーチャクラス(日本、日本_1)とデータベースのテーブルと空間テーブル(それぞれsampledata、munipt)が存在する状態もあります。
エンタープライズ ジオデータベースではないデータベースのテーブルはデータベーステーブルです。ジオデータベースのテーブルはArcGISを使用して作成された場合は、ArcGISが自動的にジオデータベースに設定情報を登録するためジオデータベース テーブルとなります。ジオデータベースとして使用しているデータベースにDBMSのSQLクライアントでログインしてDDLを実行して作成されたテーブルは、ジオデータベースに設定情報が登録されていないためデータベースのテーブルとなります。
作成方法 |
ArcGISを使用して作成 |
SQLを使用して作成 |
名称(空間列なし) |
ジオデータベース テーブル |
データベース テーブル |
名称(空間列あり) |
フィーチャクラス |
レイヤー/空間テーブル |
これらの違いについては下記のヘルプをご参照ください。
ジオデータベースに登録されていないテーブルで使用できる ArcGIS の機能
まとめ
本記事ではクエリ レイヤーを使用する前に、フィーチャクラスや空間テーブルの概要を説明しました。次回の記事ではクエリ レイヤーがどういうものであるのか、どのように使用するのかをご説明します。
参考情報